阿里云

更新时间:
复制为 MD 格式

本文为您介绍如何将阿里云配置为Agent Identity的身份提供商。

前提条件

建议为操作人员分配Agent Identity管理员AliyunAgentIdentityFullAccess权限。

步骤一:在阿里云RAM侧创建OAuth应用

执行本步骤及步骤二的操作人员需要具备以下RAM权限:

  • ram:ListApplications

  • ram:CreateApplication

  • ram:GetApplication

  • ram:UpdateApplication

参考策略:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ram:ListApplications",
        "ram:GetApplication",
        "ram:CreateApplication",
        "ram:UpdateApplication"
      ],
      "Resource": "*"
    }
  ]
}
  1. 登录RAM控制台,在左侧导航栏选择集成管理 > OAuth应用(公测)

  2. OAuth应用列表页,保持默认的企业应用页签。单击创建应用

  3. 在创建应用页,设置应用参数。

    1. 输入应用名称显示名称

    2. 选择OAuth协议版本2.1

    3. 选择应用类型Web应用。

    4. 设置访问令牌有效期(可选)。该参数影响阿里云签发的id_tokenaccess_token的有效期。

    5. 回调地址:用户授权成功后,授权服务器重定向的目标地址,用于接收授权码并向阿里云OAuth令牌端点交换id_tokenaccess_token。例如:https://your-app-fqdn/authcallback

    6. OAuth范围:保持默认选中的openid。如果应用需要获取RAM用户的登录名称(UPN)、显示名称等信息,需勾选profile

  4. 单击创建应用

  5. 单击创建的应用,在OAuth应用详情页的基本信息区域,复制并保存应用ID。

步骤二:测试获取ID Token(可选)

手动构造OAuth请求以获取ID Token,用于测试OAuth验证流程或调试应用。

重要

以下内容仅用于测试或调试,生产环境中建议使用支持OAuth的相关SDK请求ID Token。

  1. RAM控制台打开步骤一中创建的OAuth应用。在基本信息区域单击回调地址右侧的编辑

  2. 单击添加,输入http://localhost:8080,单击确定

  3. 复制以下HTTP请求,将<YOUR-OAUTH-APPLICATION-ID>替换为步骤一中保存的应用ID。

    https://signin.aliyun.com/oauth2/v1/auth?
    client_id=<your-oauth-application-id>
    &redirect_uri=http://localhost:8080
    &response_type=code
    &scope=openid
    &state=12345
    &code_challenge=XLtBsMIdIa2SGFvlnDsWLBrtPxVtSekmqUbVDB8a1Pc
    &code_challenge_method=S256
  4. 在浏览器中访问上述请求地址。根据页面提示,完成RAM用户登录和用户授权。完成后,浏览器将重定向至http://localhost:8080,并在URL中返回授权码code。复制URL中的code值并保存。

    http://localhost:8080/?state=12345&code=eZ6Xq***
  5. 复制并执行以下命令。将<your-authorization-code><your-oauth-application-id>分别替换为上一步获取的授权码和步骤一中保存的OAuth应用ID。

    curl -X POST "https://oauth.aliyun.com/v1/token" \
         -H "Content-Type: application/x-www-form-urlencoded" \
         -d "code=<your-authorization-code>" \
         -d "client_id=<your-oauth-application-id>" \
         -d "redirect_uri=http://localhost:8080" \
         -d "grant_type=authorization_code" \
         -d "code_verifier=ZURxphBVsaMxQXMbRGA4lkUr9myW5jvwLKR5l1dYnsc"
    说明

    阿里云OAuth授权码的有效期为10分钟。需在获取授权码后的10分钟内,完成ID Token的换取操作。授权码超时失效后,需重新发起授权流程获取。

  6. 命令执行成功后,返回结果中包含id_tokenaccess_token

    {
      "scope": "openid",
      "request_id": "0cb612ae-4210-4a57-bec1-86f57f5d****",
      "access_token": "eyJhbGciOiJSUzI1NiIsImsyaWQ...bGwBLQ",
      "token_type": "Bearer",
      "id_token": "eyJraWQiOiJQY1BjK29hamVsRnRnUW5...5w9GTw",
      "expires_in": 3599
    }
  7. id_token的值复制到JWT解析网站(例如https://www.jwt.io/),可查看解码后的ID Token。其中aud字段的值应与OAuth应用ID完全匹配。

    {
      "aud": "401050526640555****",
      "sub": "iiCsOvhjNZX/hK0x1jl9****",
      "iss": "https://oauth.aliyun.com",
      "exp": 1766463919,
      "iat": 1766460319
    }

步骤三:在Agent Identity中创建身份提供商

  1. 登录AgentIdentity控制台,在左侧导航栏选择入站 > 身份提供商

  2. 身份提供商列表页,单击创建身份提供商

  3. 创建身份提供商页面,依次填入以下信息:

    • 身份提供商名称。输入自定义的身份提供商名称。

    • 描述(可选)。

    • OIDC元数据地址。输入阿里云OIDC元数据地址https://oauth.aliyun.com/.well-known/openid-configuration

    • 允许的目标受众。保持默认的指定受众白名单选项,并输入步骤一中创建的阿里云OAuth应用ID。如需支持多个目标受众,可输入多个OAuth应用ID,并以换行符分隔。

  4. 单击创建身份提供商

步骤四:在Agent Identity中将身份提供商关联到工作负载身份

身份提供商必须要关联到工作负载身份才可以完成入站授权。如果您还没有创建工作负载身份,请参考创建工作负载身份完成创建。

  1. 登录AgentIdentity控制台,在左侧导航栏选择工作负载身份

  2. 工作负载身份列表页,单击目标工作负载身份。

  3. 在工作负载身份详情页的认证流程区域,单击身份提供商下的关联身份提供商

    image

  4. 关联身份提供商对话框中,从下拉菜单选择步骤三中创建的身份提供商。

  5. 单击确定