Une réponse SAML destinée au SSO basé sur l'utilisateur doit contenir des éléments d'assertion spécifiques afin qu'Alibaba Cloud puisse vérifier l'identité de l'utilisateur.
Contexte
Dans un flux SSO basé sur SAML 2,0, une fois que l'utilisateur s'est connecté au fournisseur d'identité (IdP), ce dernier génère une réponse d'authentification contenant une assertion SAML selon la liaison HTTP-POST. Le navigateur ou l'application transmet automatiquement cette réponse à Alibaba Cloud, qui utilise l'assertion pour vérifier l'identité de l'utilisateur. Si l'assertion n'inclut pas les éléments requis, le SSO échoue.
Réponse SAML
Votre IdP doit envoyer à Alibaba Cloud une réponse SAML incluant les éléments obligatoires suivants.
<saml2p:Response>
<saml2:Issuer>...</saml2:Issuer>
<saml2p:Status>
...
</saml2p:Status>
<saml2:Assertion>
<saml2:Issuer>...</saml2:Issuer>
<ds:Signature>
...
</ds:Signature>
<saml2:Subject>
<saml2:NameID>${NameID}</saml2:NameID>
<saml2:SubjectConfirmation>
...
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions>
<saml2:AudienceRestriction>
<saml2:Audience>${Audience}</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement>
...
</saml2:AuthnStatement>
</saml2:Assertion>
</saml2p:Response>
Éléments de l'assertion SAML
-
General elements of the SAML 2.0 protocol
La spécification SAML 2,0 fournit tous les détails du protocole.
Élément
Description
IssuerLa valeur de
Issuerdoit correspondre auEntityIDfigurant dans le fichier de métadonnées que vous avez chargé dans les paramètres de SSO basé sur l'utilisateur d'Alibaba Cloud.SignatureL'assertion SAML doit être signée pour prévenir toute falsification. L'élément
Signatureet ses enfants doivent contenir la valeur de signature, l'algorithme de signature et les informations associées.SubjectL'élément
Subjectdoit contenir les éléments suivants :-
Exactement un élément
NameID, qui identifie un utilisateur RAM dans votre compte Alibaba Cloud. Les sections « Élément NameID » et « Exemples NameID » ci-dessous décrivent les exigences de format. -
Exactement un élément
SubjectConfirmationcontenant un élémentSubjectConfirmationData. L'élémentSubjectConfirmationDatadoit comporter les attributs suivants :-
NotOnOrAfter: période de validité de l'assertion SAML. -
Recipient: Alibaba Cloud vérifie cette valeur pour confirmer qu'il est bien le destinataire prévu. La valeur doit êtrehttps://signin-intl.aliyun.com/saml/SSO.
Exemple d'élément
Subject:<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">Alice@example.onaliyun.com</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin-intl.aliyun.com/saml/SSO"/> </SubjectConfirmation> </Subject> -
ConditionsL'élément
Conditionsdoit contenir un élémentAudienceRestriction, avec un ou plusieurs élémentsAudience. Au moins un élémentAudiencedoit avoir la valeurhttps://signin-intl.aliyun.com/${accountId}/saml/SSO, où${accountId}correspond à l'ID du compte Alibaba Cloud.Exemple d'élément
Conditions:<Conditions> <AudienceRestriction> <Audience>https://signin-intl.aliyun.com/${accountId}/saml/SSO</Audience> </AudienceRestriction> </Conditions> -
-
NameID element
Alibaba Cloud utilise le User Principal Name (UPN) pour localiser les utilisateurs RAM. L'assertion SAML provenant de votre IdP doit contenir le UPN de l'utilisateur RAM dans l'élément
NameID.Dans votre IdP, mappez le champ correspondant au UPN de l'utilisateur RAM vers l'élément
NameID.La valeur de l'élément
NameIDdoit utiliser l'un des formats suivants :Utilisez l'Domain Alias comme suffixe pour l'élément
NameIDau format<username>@<domain_alias>. Dans ce format,<username>représente le nom d'utilisateur d'un utilisateur RAM et<domain_alias>le suffixe de connexion personnalisé. Créer et vérifier un suffixe de connexion personnalisé.-
Utilisez l'Auxiliary Domain Name comme suffixe pour l'élément
NameIDau format<username>@<auxiliary_domain>. Dans ce format,<username>représente le nom d'utilisateur d'un utilisateur RAM et<auxiliary_domain>le suffixe de connexion auxiliaire. Configurer SAML pour le fournisseur de services Alibaba Cloud pour le SSO basé sur l'utilisateur.RemarqueSi vous configurez à la fois un alias de domaine et un domaine auxiliaire, le domaine auxiliaire est ignoré. Dans ce cas, vous ne pouvez utiliser que l'alias de domaine pour l'élément
NameID. -
Utilisez le Default Domain comme suffixe pour l'élément
NameID. Le format est<username>@<default_domain>, où<username>représente le nom d'utilisateur de l'utilisateur RAM et<default_domain>le suffixe de connexion par défaut. Gérer le nom de domaine de connexion pour un utilisateur RAM.RemarqueLe suffixe de connexion par défaut reste valide pour
NameIDmême si vous définissez un suffixe de connexion personnalisé ou auxiliaire.
-
NameID examples
Le nom d'utilisateur RAM est
Aliceet le suffixe de connexion par défaut estexample.onaliyun.com.Si le suffixe de connexion personnalisé est défini sur
example.com, la valeur deNameIDestAlice@example.onaliyun.comouAlice@example.com.Si aucun suffixe de connexion personnalisé n'est défini et que le suffixe de connexion auxiliaire est défini sur
example.net, la valeur deNameIDpeut êtreAlice@example.onaliyun.comouAlice@example.net.Si vous définissez le suffixe de connexion personnalisé sur
example.compuis le suffixe de connexion auxiliaire surexample.net, la valeur deNameIDestAlice@example.onaliyun.comouAlice@example.com. Le suffixe de connexion auxiliaire ne prend pas effet dans ce cas.