Tous les produits
Search
Centre de documentation

Resource Access Management:Réponse SAML pour l'authentification unique basée sur les rôles

Dernière mise à jour :Aug 09, 2026

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

    Issuer

    La valeur de Issuer doit correspondre au EntityID pré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.

    Signature

    Alibaba Cloud exige une assertion SAML signée pour prévenir toute falsification. L'élément Signature et ses éléments enfants doivent inclure la valeur de signature et l'algorithme de signature.

    Subject

    L'élément Subject doit contenir les éléments suivants :

    • Exactement un élément NameID. Définissez la valeur de NameID conformé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 SubjectConfirmation contenant un élément SubjectConfirmationData. L'élément SubjectConfirmationData requiert 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 être https://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>

    Conditions

    L'élément Conditions doit inclure un élément AudienceRestriction avec au moins un élément Audience. L'un des éléments Audience doit avoir la valeur urn:alibaba:cloudcomputing:international.

    Remarque

    Si 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ément Audience doit 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 AttributeStatement doit inclure les éléments Attribute spécifiques à Alibaba Cloud suivants :

    • Un élément Attribute dont l'attribut Name est https://www.aliyun.com/SAML-Role/Attributes/Role

      Cet élément est obligatoire et prend en charge plusieurs valeurs. Chaque AttributeValue spé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.

      Remarque

      Si 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_id correspond à l'ID du compte Alibaba Cloud propriétaire des rôles RAM et de l'IdP.

    • Un élément Attribute dont l'attribut Name est https://www.aliyun.com/SAML-Role/Attributes/RoleSessionName

      Cet élément est obligatoire et n'accepte qu'une seule valeur. La AttributeValue apparaît dans les informations utilisateur de la console et les journaux ActionTrail. Utilisez un RoleSessionName unique par utilisateur, tel qu'un identifiant employé ou une adresse e-mail, pour distinguer les utilisateurs endossant le même rôle.

      La AttributeValue doit 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 Attribute dont l'attribut Name est https://www.aliyun.com/SAML-Role/Attributes/SessionDuration

      Cet élément est facultatif et accepte au maximum une valeur. La AttributeValue est 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'attribut Role.

      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 SessionDuration issue de l'assertion SAML est utilisée comme durée de session. Si l'élément AuthnStatement définit également SessionNotOnOrAfter, la durée appliquée est la plus courte entre SessionDuration et SessionNotOnOrAfter. 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 DurationSeconds lors de l'appel à AssumeRoleWithSAML et définissez également SessionNotOnOrAfter dans l'élément AuthnStatement, la validité du jeton STS correspond à la durée la plus courte entre DurationSeconds et SessionNotOnOrAfter. Si aucune n'est spécifiée, la validité par défaut est de 3 600 secondes.

Documents connexes

Comment afficher une réponse SAML dans un navigateur ?