Tencent Cloud
Casdoor comme IdP SAML dans Tencent Cloud
Ce guide vous montrera comment configurer Casdoor et Tencent Cloud pour ajouter Casdoor comme IdP SAML dans Tencent Cloud.
Copier les métadonnées Saml
Dans Casdoor, ajoutez un certificat de type X.509 avec l'algorithme cryptographique RSA.
Ensuite, copiez les SamlMetadata dans Casdoor.
Ajout d'IdP SAML dans Tencent Cloud
Connectez-vous à Tencent Cloud et entrez dans l'interface de gestion des accès.
Créez un nouveau Fournisseurs d'Identité et téléchargez les métadonnées saml précédemment copiées sur Tencent Cloud.
Ensuite, créez un nouveau RÔLE et sélectionnez le Fournisseurs d'Identité précédent comme fournisseur idp.
Configuration de l'application SAML dans Casdoor
Sur la page de modification de l'application, sélectionnez le certificat que vous venez de créer. Ajoutez le nom de domaine de l'application Tencent Cloud que vous utiliserez dans les URL de redirection.
Sur la page de modification de l'application, entrez l'URL ACS et configurez l'Attribut Saml.
Les informations de configuration pour l'Attribut Saml sont les suivantes :
Nom | Format du nom | Valeur |
---|---|---|
https://cloud.tencent.com/SAML/Attributes/Role | Non spécifié | qcs::cam::uin/{AccountID}:roleName/{RoleName1};qcs::cam::uin/{AccountID}:roleName/{RoleName2},qcs::cam::uin/{AccountID}:saml-provider/{ProviderName} |
https://cloud.tencent.com/SAML/Attributes/RoleSessionName | Non spécifié | casdoor |
- Dans l'attribut source du rôle, remplacez {AccountID}, {RoleName} et {ProviderName} par le contenu suivant :
- Remplacez {AccountID} par votre ID de compte Tencent Cloud, qui peut être consulté dans le Informations sur le compte - Console.
- Remplacez {RoleName} par le nom du rôle que vous avez créé dans Tencent Cloud, qui peut être consulté dans le Rôles - Console.
- Remplacez {ProviderName} par le nom du fournisseur d'identité SAML que vous avez créé dans Tencent Cloud, qui peut être consulté dans le Fournisseurs d'Identité - Console.
Vous pouvez visiter la documentation des Fournisseurs d'Identité SAML de Tencent Cloud documentation pour obtenir des informations plus détaillées.
Connexion en utilisant Casdoor SAML
Les étapes générales de connexion pour SAML sont les suivantes : Utilisateur -> Tencent Cloud (non connecté) -> Redirection vers Casdoor pour la connexion -> Tencent Cloud (connecté). Maintenant, utilisez du code externe pour simuler les deux premières étapes et générer une URL qui redirige vers Casdoor. Code d'exemple :
func main() {
res, err := http.Get("your casdoor application saml metadata url")
if err != nil {
panic(err)
}
rawMetadata, err := ioutil.ReadAll(res.Body)
if err != nil {
panic(err)
}
metadata := &types.EntityDescriptor{}
err = xml.Unmarshal(rawMetadata, metadata)
if err != nil {
panic(err)
}
certStore := dsig.MemoryX509CertificateStore{
Roots: []*x509.Certificate{},
}
for _, kd := range metadata.IDPSSODescriptor.KeyDescriptors {
for idx, xcert := range kd.KeyInfo.X509Data.X509Certificates {
if xcert.Data == "" {
panic(fmt.Errorf("metadata certificate(%d) must not be empty", idx))
}
certData, err := base64.StdEncoding.DecodeString(xcert.Data)
if err != nil {
panic(err)
}
idpCert, err := x509.ParseCertificate(certData)
if err != nil {
panic(err)
}
certStore.Roots = append(certStore.Roots, idpCert)
}
}
randomKeyStore := dsig.RandomKeyStoreForTest()
sp := &saml2.SAMLServiceProvider{
IdentityProviderSSOURL: metadata.IDPSSODescriptor.SingleSignOnServices[0].Location,
IdentityProviderIssuer: metadata.EntityID,
ServiceProviderIssuer: "https://cloud.tencent.com",
AssertionConsumerServiceURL: "https://cloud.tencent.com/login/saml",
SignAuthnRequests: true,
AudienceURI: "https://cloud.tencent.com",
IDPCertificateStore: &certStore,
SPKeyStore: randomKeyStore,
}
println("Visit this URL To Authenticate:")
authURL, err := sp.BuildAuthURL("")
if err != nil {
panic(err)
}
println(authURL)
}
Une fois que nous exécutons le code et obtenons l'URL d'authentification, cliquer sur l'URL nous permettra de tester la connexion. nous fournissons une démo de ce processus.