首页 访问控制 开发参考 API参考 API参考(STS) API目录 角色扮演 AssumeRoleWithOIDC - OIDC角色SSO时获取扮演角色的临时身份凭证

AssumeRoleWithOIDC - OIDC角色SSO时获取扮演角色的临时身份凭证

更新时间: 2023-10-12 11:38:23

进行OIDC角色SSO时,通过调用AssumeRoleWithOIDC接口,获取扮演RAM角色的临时身份凭证(STS Token)。

接口说明

前提条件

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
sts:AssumeRoleRead
  • Role
    acs:ram::{#AccountId}:role/{#RoleName}

请求参数

名称类型必填描述示例值
OIDCProviderArnstring

OIDC身份提供商的ARN。

您可以通过RAM控制台或API查看OIDC身份提供商的ARN。具体如下:

acs:ram::113511544585****:oidc-provider/TestOidcIdp
RoleArnstring

需要扮演的RAM角色ARN。

您可以通过RAM控制台或API查看角色ARN。具体如下:

acs:ram::113511544585****:role/testoidc
OIDCTokenstring

由外部IdP签发的OIDC令牌(OIDC Token)。

长度:4~20000个字符。

说明 需要输入原始OIDC Token,无需Base64解码。
eyJraWQiOiJKQzl3eHpyaHFKMGd0****
Policystring

为STS Token额外添加的一个权限策略,进一步限制STS Token的权限。具体如下:

  • 如果指定该权限策略,则STS Token最终的权限取RAM角色权限策略与该权限策略的交集。
  • 如果不指定该权限策略,则STS Token最终的权限就是RAM角色的权限。

长度:1~2048个字符。

{"Statement": [{"Action": ["*"],"Effect": "Allow","Resource": ["*"]}],"Version":"1"}
DurationSecondslong

Token有效期。单位:秒。

默认值:3600。最小值:900。最大值:MaxSessionDuration设置的时间。

关于设置角色最大会话时间MaxSessionDuration的具体操作,请参见CreateRoleUpdateRole

3600
RoleSessionNamestring

角色会话名称。

该参数为用户自定义参数。通常设置为调用该API的用户身份,例如:用户名。在操作审计日志中,即使是同一个RAM角色执行的操作,也可以根据不同的RoleSessionName来区分实际操作者,以实现用户级别的访问审计。

格式:包含英文字母、数字、半角句号(.)、at(@)、短划线(-)和下划线(_)。

长度:2~64个字符。

TestOidcAssumedRoleSession
说明 由于AssumeRoleWithOIDC接口使用OIDC Token进行身份认证,可以匿名访问,因此不需要提供公共请求参数中的SignatureSignatureMethodSignatureVersionAccessKeyId参数。关于公共请求参数的详情,请参见公共请求参数

返回参数

名称类型描述示例值
object

返回参数。

RequestIdstring

请求ID。

3D57EAD2-8723-1F26-B69C-F8707D8B565D
OIDCTokenInfoobject

解析的OIDC Token信息。

Subjectstring

OIDC主体。

对应OIDC Token中的sub字段值。

KryrkIdjylZb7agUgCEf****
Issuerstring

OIDC颁发者URL。

对应OIDC Token中的iss字段值。

https://dev-xxxxxx.okta.com
ClientIdsstring

OIDC受众。多个之间用半角逗号(,)分隔。

对应OIDC Token中的aud字段值。

496271242565057****
ExpirationTimestring

OIDC Token的过期时间。

2021-10-20T04:27:09Z
IssuanceTimestring

OIDC Token的签发时间。

2021-10-20T03:27:09Z
VerificationInfostring

OIDC Token的检验信息。更多信息,请参见管理OIDC身份提供商

Success
AssumedRoleUserobject

角色扮演临时身份。

AssumedRoleIdstring

临时身份的ID。

33157794895460****
Arnstring

临时身份的ARN。

acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession
Credentialsobject

临时访问凭证(STS Token)。

SecurityTokenstring

安全令牌。

说明 安全令牌的长度不固定,我们强烈建议您不要对安全令牌的最大长度做任何限制。
CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz****
Expirationstring

Token到期失效时间(UTC时间)。

2021-10-20T04:27:09Z
AccessKeySecretstring

访问密钥。

CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2****
AccessKeyIdstring

访问密钥ID。

STS.NUgYrLnoC37mZZCNnAbez****

示例

正常返回示例

JSON格式

{
  "RequestId": "3D57EAD2-8723-1F26-B69C-F8707D8B565D",
  "OIDCTokenInfo": {
    "Subject": "KryrkIdjylZb7agUgCEf****",
    "Issuer": "https://dev-xxxxxx.okta.com",
    "ClientIds": "496271242565057****",
    "ExpirationTime": "2021-10-20T04:27:09Z",
    "IssuanceTime": "2021-10-20T03:27:09Z",
    "VerificationInfo": "Success"
  },
  "AssumedRoleUser": {
    "AssumedRoleId": "33157794895460****",
    "Arn": "acs:ram::113511544585****:role/testoidc/TestOidcAssumedRoleSession"
  },
  "Credentials": {
    "SecurityToken": "CAIShwJ1q6Ft5B2yfSjIr5bSEsj4g7BihPWGWHz****",
    "Expiration": "2021-10-20T04:27:09Z",
    "AccessKeySecret": "CVwjCkNzTMupZ8NbTCxCBRq3K16jtcWFTJAyBEv2****",
    "AccessKeyId": "STS.NUgYrLnoC37mZZCNnAbez****"
  }
}

错误码

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2023-09-27OpenAPI 返回结构发生变更看变更集
变更项变更内容
出参OpenAPI 返回结构发生变更
阿里云首页 访问控制 相关技术圈