本文将结合阿里云RAM访问控制,向您演示如何配置M2M应用的无AK访问方式,并获取STS Token的流程。
前提条件
已完成M2M应用的相关配置。了解M2M相关应用及配置,请参考:M2M应用(机器间权限管理)。
创建OIDC身份提供商
前往阿里云RAM访问控制,选择 ,开始创建。
依次填写身份提供商名称、颁发者URL并点击获取验证指纹信息、添加客户端ID等信息。
说明颁发者URL:您需要填入已经创建好的M2M应用Server端的Issuer URL。如何添加M2M应用及查看Issuer信息,请参考:M2M应用(机器间权限管理)。
客户端ID:请务必确认填写M2M应用服务端受众标识。最多可添加20个。
指纹信息获取成功后,单击确定,即可完成创建。
创建OIDC身份提供商角色
前往阿里云RAM访问控制控制台,选择 。
在编辑器页面,按照下图的步骤,开始添加身份提供者。
在添加主体弹出框中,选择上文中已经创建好的身份提供者,点击确定完成添加。
身份提供者添加完成后,会默认生成iss和aud条件,您可以选择编辑或删除这两个条件,也可以继续添加新的条件。
下文以添加sub条件表达式为例,向您演示如何添加条件,您可按实际需要选择是否添加。编辑完成后,点击确定,即可完成添加。
说明条件值:您需要填入已经创建好的M2M应用Server端的受众标识。如何添加M2M应用及查看受众标识等信息,请参考:M2M应用(机器间权限管理)。
如果您需要了解更多条件表达式的信息,请参考:权限策略基本元素。
当前RAM OIDC中仅支持三种条件:oidc:iss、oidc:aud、oidc:sub。
单击底部的确定,在创建角色弹出框中,填入您要创建的角色名称,单击确定,即可完成角色创建。
角色授权
您可以根据需要,向已创建的角色新增授权。
获取M2M Token
通过curl命令方式获取
请将以下占位参数替换为您的应用配置后,执行curl命令,获取Token。
# 请将<app_issuer_endpoint>、<your_app_client_id>、<your_app_client_secret>和<your_server_aud_identifier>替换为您M2M应用的具体配置值。 # # <your_server_issuer_endpoint>:Issuer,“Resources Server应用 > 通用配置 > Issuer“中查看Endpoint并替换。 # <your_app_client_id>:客户端ID,在“Client应用 > 通用配置 > 凭证管理“中查看client_id并替换。 # <your_app_client_secret>:客户端Secret,在“Client应用 > 通用配置 > 凭证管理“中查看client_secret并替换。 # <your_server_aud_identifier>:服务端受众标识,在“Resources Server应用 > 通用配置 > 权限应用 > 受众标识“中,查找受众标识并替换。 # curl --location --request POST 'https://<your_server_issuer_endpoint>.aliyunidaas.com/api/v2/iauths_system/oauth2/token' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'client_id=<your_app_client_id>' \ --data-urlencode 'client_secret=<your_app_client_secret>' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'scope=<your_server_aud_identifier>|.all'
Token获取成功时结果如下。
通过Postman工具获取
如下图所示,请将各参数替换为您的应用配置参数后,通过Postman发起请求获取token。
通过M2M Token获取RAM角色的临时身份凭证(STS Token)
如果您暂时不了解阿里云STS,请先前往了解什么是STS。
OpenAPI方式获取
前往OpenAPI门户,找到AssumeRoleWithOIDC接口。
说明本文仅演示获取,更多关于AssumeRoleWithOIDC接口的详细信息,请参见:AssumeRoleWithOIDC - OIDC角色SSO时获取扮演角色的临时身份凭证。
填写接口所需的必要参数,确认无误后点击发起调用,即可获取到STS Token。调用成功时,如下图:
重要OIDCProviderArn:请前往您已创建的OIDC身份服务提供商角色的基本信息中,从信任策略中获取。
RoleArn:请前往您已创建的OIDC身份服务提供商角色的基本信息中,找到ARN并获取。
OIDCToken:填入您上文中已获取成功的M2M Token。
RoleSessionName:无特殊要求,用户自定义字段,仅作为角色标识。