Pour l'authentification unique (SSO) basée sur les rôles, la réponse et l'assertion SAML provenant de votre fournisseur d'identité (IdP) doivent inclure des éléments spécifiques afin qu'Alibaba Cloud puisse authentifier les utilisateurs.
Informations générales
Dans un flux SSO basé sur SAML 2,0, après la connexion d'un utilisateur d'entreprise à un IdP, ce dernier génère une réponse d'authentification contenant une assertion SAML conformément à la liaison HTTP-POST de SAML 2,0. Le navigateur ou l'application transmet automatiquement cette réponse à Alibaba Cloud, qui utilise l'assertion pour vérifier l'état de connexion de l'utilisateur et extraire le sujet de la connexion. L'assertion doit inclure tous les éléments requis par Alibaba Cloud, sans quoi l'authentification unique échoue.
Réponse SAML
Votre IdP doit envoyer une réponse SAML à Alibaba Cloud comportant tous les éléments obligatoires répertoriés ci-dessous. Si un élément est manquant, l'authentification unique échoue.
<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:AttributeStatement>
<saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName">
...
</saml2:Attribute>
<saml2:Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role">
...
</saml2:Attribute>
</saml2:AttributeStatement>
</saml2:Assertion>
</saml2p:Response>
Éléments de l'assertion SAML
-
Standard SAML 2.0 elements
Ces éléments respectent la spécification du protocole SAML 2.0.
Element
Description
IssuerLa valeur de
Issuerdoit correspondre auEntityIDprésent dans le fichier de métadonnées de l'IdP que vous avez téléchargé lors de la création de l'entité IdP sur Alibaba Cloud.SignatureAlibaba Cloud exige une assertion SAML signée pour prévenir toute falsification. L'élément
Signatureet ses éléments enfants doivent inclure la valeur de signature et l'algorithme de signature.SubjectL'élément
Subjectdoit contenir les éléments suivants :-
Exactement un élément
NameID. Définissez la valeur deNameIDconformément au protocole SAML 2,0, généralement en utilisant l'identifiant de l'utilisateur sur l'IdP. Alibaba Cloud n'utilise pas cette valeur pour identifier le sujet de la connexion. -
Exactement un élément
SubjectConfirmationcontenant un élémentSubjectConfirmationData. L'élémentSubjectConfirmationDatarequiert les attributs suivants :-
NotOnOrAfter: heure d'expiration de l'assertion SAML. -
Recipient: Alibaba Cloud utilise cet attribut pour vérifier que l'assertion lui est destinée. La valeur doit êtrehttps://signin.alibabacloud.com/saml-role/sso.
Exemple d'élément
Subject:<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">administrator</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin.alibabacloud.com/saml-role/sso"/> </SubjectConfirmation> </Subject> -
ConditionsL'élément
Conditionsdoit inclure un élémentAudienceRestrictionavec au moins un élémentAudience. L'un des élémentsAudiencedoit avoir la valeururn:alibaba:cloudcomputing:international.RemarqueSi vous configurez plusieurs applications SAML dans votre IdP pointant vers RAM Alibaba Cloud et utilisez des ID d'entité avec des paramètres (par exemple,
urn:alibaba:cloudcomputing:international#abc.123), l'élémentAudiencedoit correspondre exactement à l'ID d'entité, y compris le suffixe de paramètre.Exemple d'élément
Conditions:<Conditions> <AudienceRestriction> <Audience>urn:alibaba:cloudcomputing:international</Audience> </AudienceRestriction> </Conditions> -
-
Alibaba Cloud custom elements
L'élément
AttributeStatementdoit inclure les élémentsAttributespécifiques à Alibaba Cloud suivants :-
Un élément
Attributedont l'attributNameesthttps://www.aliyun.com/SAML-Role/Attributes/RoleCet élément est obligatoire et prend en charge plusieurs valeurs. Chaque
AttributeValuespécifie un rôle que l'utilisateur peut endosser, formaté comme l'ARN du rôle RAM et l'ARN de l'IdP séparés par une virgule (,). Obtenez les deux ARN depuis la console :ARN du rôle RAM : sur la page Roles, cliquez sur le nom du rôle RAM, puis recherchez l'ARN dans la section Basic Information.
ARN de l'IdP : sur la page SSO, sous l'onglet Role-based SSO, cliquez sur le nom de l'IdP, puis recherchez l'ARN dans la section Details.
RemarqueSi plusieurs valeurs sont fournies, les utilisateurs se connectant à la console peuvent sélectionner un rôle dans la liste affichée.
Exemple d'élément Role
Attribute:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/Role"> <AttributeValue>acs:ram::$account_id:role/role1,acs:ram::$account_id:saml-provider/provider1</AttributeValue> <AttributeValue>acs:ram::$account_id:role/role2,acs:ram::$account_id:saml-provider/provider1</AttributeValue> </Attribute>Remarque$account_idcorrespond à l'ID du compte Alibaba Cloud propriétaire des rôles RAM et de l'IdP. -
Un élément
Attributedont l'attributNameesthttps://www.aliyun.com/SAML-Role/Attributes/RoleSessionNameCet élément est obligatoire et n'accepte qu'une seule valeur. La
AttributeValueapparaît dans les informations utilisateur de la console et les journaux ActionTrail. Utilisez unRoleSessionNameunique par utilisateur, tel qu'un identifiant employé ou une adresse e-mail, pour distinguer les utilisateurs endossant le même rôle.La
AttributeValuedoit comporter entre 2 et 64 caractères et peut contenir des lettres, des chiffres et les caractères spéciaux suivants :-_.@=.Exemple d'élément RoleSessionName
Attribute:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName"> <AttributeValue>user_id</AttributeValue> </Attribute> -
Un élément
Attributedont l'attributNameesthttps://www.aliyun.com/SAML-Role/Attributes/SessionDurationCet élément est facultatif et accepte au maximum une valeur. La
AttributeValueest un entier représentant la durée de session en secondes. Le minimum est de 900 et le maximum ne peut pas dépasser la durée de session maximale configurée pour le rôle RAM spécifié dans l'attributRole.Exemple d'élément SessionDuration
Attribute:<Attribute Name="https://www.aliyun.com/SAML-Role/Attributes/SessionDuration"> <AttributeValue>1800</AttributeValue> </Attribute>
-
-
Session duration
Pour la connexion à la console, la
SessionDurationissue de l'assertion SAML est utilisée comme durée de session. Si l'élémentAuthnStatementdéfinit égalementSessionNotOnOrAfter, la durée appliquée est la plus courte entreSessionDurationetSessionNotOnOrAfter. Si aucune n'est spécifiée, la durée de session par défaut correspond au paramètre Maximum Session Duration du rôle, plafonné par le paramètre Login session duration. Gérer les paramètres de sécurité des utilisateurs RAM. Définir la durée de session maximale d'un rôle RAM.Pour la connexion programmatique, si vous spécifiez
DurationSecondslors de l'appel à AssumeRoleWithSAML et définissez égalementSessionNotOnOrAfterdans l'élémentAuthnStatement, la validité du jeton STS correspond à la durée la plus courte entreDurationSecondsetSessionNotOnOrAfter. Si aucune n'est spécifiée, la validité par défaut est de 3 600 secondes.