Pour l'authentification unique (SSO) basée sur les rôles utilisant le langage SAML (Security Assertion Markup Language), appelez l'opération AssumeRoleWithSAML afin d'obtenir des informations d'identification temporaires (un jeton STS, Security Token Service) pour un rôle RAM.
Description de l'opération
Prérequis
-
Obtenez une réponse SAML auprès d'un fournisseur d'identité (IdP) externe.
-
Créez un fournisseur d'identité SAML dans Resource Access Management (RAM). Pour plus d'informations, consultez Créer un fournisseur d'identité SAML ou CreateSAMLProvider.
-
Créez un rôle RAM pour un fournisseur d'identité SAML. Pour plus d'informations, consultez Créer un rôle RAM pour un fournisseur d'identité ou CreateRole.
Testez maintenant
Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.
Test
Autorisation RAM
Paramètres de requête
|
Paramètre |
Type |
Requis |
Description |
Exemple |
| SAMLProviderArn |
string |
Non |
L'Alibaba Cloud Resource Name (ARN) du fournisseur d'identité SAML créé dans RAM. Format : acs:ram::<account_id>:saml-provider/<saml_provider_name>. Vous pouvez consulter l'ARN du fournisseur d'identité dans la console RAM ou en appelant une opération d'API :
|
acs:ram::123456789012****:saml-provider/company1 |
| RoleArn |
string |
Non |
L'ARN du rôle RAM à endosser. L'entité de confiance du rôle RAM est un fournisseur d'identité SAML. Pour plus d'informations, consultez Créer un rôle RAM pour un fournisseur d'identité ou CreateRole. Format : acs:ram::<account_id>:role/<role_name>. Vous pouvez consulter l'ARN du rôle dans la console RAM ou en appelant une opération d'API :
|
acs:ram::123456789012****:role/adminrole |
| SAMLAssertion |
string |
Non |
L'assertion SAML encodée en Base64. La valeur doit comporter entre 4 et 100 000 caractères. Remarque
Obtenez la réponse SAML complète auprès du fournisseur d'identité. N'utilisez pas uniquement le champ d'assertion SAML. |
base64_encoded_saml_assertion |
| Policy |
string |
Non |
Une stratégie d'accès pour limiter davantage les autorisations du jeton STS. Ce paramètre fonctionne comme suit :
La valeur doit comporter entre 1 et 2 048 caractères. |
url_encoded_policy |
| DurationSeconds |
integer |
Non |
La durée d'expiration du jeton. Unité : secondes. La valeur minimale est de 900 secondes. La valeur maximale est celle du paramètre MaxSessionDuration. La valeur par défaut est de 3 600 secondes. Vous pouvez définir le paramètre MaxSessionDuration lorsque vous appelez l'opération CreateRole ou UpdateRole. Pour plus d'informations, consultez CreateRole ou UpdateRole. |
3600 |
Étant donné que l'opération AssumeRoleWithSAML utilise une assertion SAML pour l'authentification de l'identité et autorise l'accès anonyme, vous n'avez pas besoin de spécifier les paramètres de requête communs Signature, SignatureMethod, SignatureVersion ou AccessKeyId. Pour plus d'informations sur les paramètres de requête communs, consultez Paramètres de requête communs.
Éléments de réponse
|
Élément |
Type |
Description |
Exemple |
|
object |
Les paramètres de réponse. |
||
| RequestId |
string |
L'identifiant de la requête. |
6894B13B-6D71-4EF5-88FA-F32781734A7F |
| SAMLAssertionInfo |
object |
Les informations relatives à l'assertion SAML. |
|
| SubjectType |
string |
Le format de l'élément NameID dans l'assertion SAML. Si le préfixe est urn:oasis:names:tc:SAML:2.0:nameid-format:, le préfixe est supprimé. Exemples : persistent et transient. |
persistent |
| Subject |
string |
La valeur du champ Subject - NameID dans l'assertion SAML. |
alice@example.com |
| Issuer |
string |
La valeur du champ Issuer dans l'assertion SAML. |
http://example.com/adfs/services/trust |
| Recipient |
string |
La valeur de l'attribut Recipient dans le champ Subject - SubjectConfirmation - SubjectConfirmationData de l'assertion SAML. |
https://signin.aliyun.com/saml-role/SSO |
| AssumedRoleUser |
object |
L'identité temporaire du rôle endossé. |
|
| AssumedRoleId |
string |
L'identifiant de l'identité temporaire. |
34458433936495****:alice |
| Arn |
string |
L'ARN de l'identité temporaire. |
acs:sts::123456789012****:assumed-role/AdminRole/alice |
| Credentials |
object |
Les informations d'identification d'accès. |
|
| SecurityToken |
string |
Le jeton de sécurité. Remarque
Le jeton de sécurité a une longueur variable. N'imposez pas de limite de longueur maximale au jeton de sécurité. |
******** |
| Expiration |
string |
L'heure d'expiration du jeton. L'heure est au format UTC. |
2015-04-09T11:52:19Z |
| AccessKeySecret |
string |
Le secret AccessKey. |
wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK**** |
| AccessKeyId |
string |
L'identifiant AccessKey. |
STS.L4aBSCSJVMuKg5U1**** |
| SourceIdentity |
string |
L'identité source. Lorsque vous endossez un rôle, vous pouvez spécifier une identité source pour l'utilisateur du rôle. L'identité source est utilisée comme identité initiale de la session. La valeur de l'identité source persiste tout au long des sessions d'endossement de rôle en chaîne et ne peut pas être modifiée. Cela garantit la traçabilité et la sécurité des opérations. Ce paramètre n'est pas renvoyé si vous ne définissez pas d'identité source. |
Alice |
Exemples
JSON format
{
"RequestId": "6894B13B-6D71-4EF5-88FA-F32781734A7F",
"SAMLAssertionInfo": {
"SubjectType": "persistent",
"Subject": "alice@example.com",
"Issuer": "http://example.com/adfs/services/trust",
"Recipient": "https://signin.aliyun.com/saml-role/SSO"
},
"AssumedRoleUser": {
"AssumedRoleId": "34458433936495****:alice",
"Arn": "acs:sts::123456789012****:assumed-role/AdminRole/alice"
},
"Credentials": {
"SecurityToken": "********",
"Expiration": "2015-04-09T11:52:19Z",
"AccessKeySecret": "wyLTSmsyPGP1ohvvw8xYgB29dlGI8KMiH2pK****",
"AccessKeyId": "STS.L4aBSCSJVMuKg5U1****"
},
"SourceIdentity": "Alice"
}
Codes d'erreur
|
Code de statut HTTP |
Code d'erreur |
Message d'erreur |
Description |
|---|---|---|---|
| 500 | InternalError | STS Server Internal Error happened, please send the RequestId to us. |
Consultez Codes d'erreur pour la liste complète.
Notes de version
Consultez Notes de version pour la liste complète.