文档首页> 统一身份认证服务 IAM> 用户指南> 自定义身份代理> 使用token方式配置自定义身份代理配置步骤
更新时间:2023-06-20 GMT+08:00

使用token方式配置自定义身份代理配置步骤

如果您的企业IdP不支持SAML、OIDC协议,可以使用自定义身份代理,通过编写代码获得华为云登录链接,使企业用户通过企业IdP验证身份后,即可登录华为云。

自定义身份代理适用于不支持SAML、OIDC的企业IdP,如果您使用了支持SAML、OIDC的IdP(身份提供商),推荐您通过配置联邦身份认证实现用户使用企业管理系统帐号单点登录华为云。

前提条件

  • 企业已有企业管理系统。
  • 企业管理员在华为云上注册了可用的帐号(帐号名以DomainA为例)。

操作步骤

  1. 在DomainA中创建IAM用户(用户名以UserB为例),具体方法请参见:创建IAM用户
  2. (可选)将用户UserB加入用户组中(用户组名以GroupC为例),并为用户组授予必要的权限,具体方法请参见:创建用户组并授权
  3. 将UserB的访问密钥或用户名和密码(推荐使用访问密钥)配置到企业IdP的配置文件中,以便获取用户认证token。为了保障您的帐号安全,密码和访问密钥建议加密存储。
  4. 企业管理员登录企业管理系统后,访问自定义代理,从用户列表中选择需要登录华为云的企业用户,具体操作请参见企业管理系统帮助文档。此处以企业管理员选择2中配置的用户UserB为例。

    自定义代理的用户列表是在华为帐号下的IAM用户列表,将IAM用户的访问密钥或用户名和密码(推荐使用访问密钥)配置到企业IdP的配置文件中,即可将这些用户按需赋予不同企业用户。

  5. 企业IdP自定义代理携带IAM用户UserB的token调用API(POST /v3.0/OS-CREDENTIAL/securitytokens),获取临时访问密钥和securityToken,调用方法请参见:通过token获取临时访问密钥和securitytoken
  6. 企业IdP自定义代理携带获取到的临时访问密钥和securitytoken通过全局域名(iam.myhuaweicloud.com)调用API(POST /v3.0/OS-AUTH/securitytoken/logintokens)获取登录票据loginToken。登录票据位于Response Header中的X-Subject-LoginToken。获取方式请参见:获取自定义代理登录票据

    • 调用API(POST /v3.0/OS-AUTH/securitytoken/logintokens)获取登录票据loginToken时,需要使用全局域名:iam.myhuaweicloud.com
    • logintoken是系统颁发给自定义代理用户的登录票据,承载用户的身份、session等信息,默认有效期为10分钟。
    • 调用API(POST /v3.0/OS-AUTH/securitytoken/logintokens)时可以设置logintoken的有效时间,有效时间设置范围为10分钟~12小时。如果传入的值大于临时安全凭证securitytoken剩余的过期时间,则使用临时安全凭证securitytoken剩余的过期时间。

  7. 企业IdP自定义代理根据如下规范创建云服务代理登录地址,并作为Location返回给浏览器:

    https://auth.huaweicloud.com/authui/federation/login?idp_login_url={enterprise_system_loginURL}&service={console_service_region_url}&logintoken={logintoken}

    示例

    https://auth.huaweicloud.com/authui/federation/login?idp_login_url=https%3A%2F%2Fexample.com&service=https%3a%2f%2fconsole.huaweicloud.com%2fapm%2f%3fregion%3dcn-north-4%23%2fapm%2fatps%2ftopology&logintoken=******
    表1 参数说明

    参数

    说明

    idp_login_url

    企业管理系统登录地址。

    service

    需要访问的华为云服务地址。

    logintoken

    自定义代理登录票据。

    您可以参考以下Demo示例创建云服务登录地址:使用token方式创建云服务登录地址

    云服务代理登录地址中包含从IAM获得的登录票据loginToken,loginToken用于对访问的用户进行身份验证。云服务代理登录地址中每个参数的值都需要经过UrlEncode编码。

  8. 华为云认证登录票据loginToken成功后,浏览器自动重定向到需要访问的华为云服务地址,即云服务代理登录地址中service设定的地址,企业用户成功访问华为云的控制台。

    loginToken认证失败,则重定向到idp_login_url设定的地址。