华为云集成
XAuth 应用市场中包含数千个预集成好的应用,管理员可以将这些集成快速的添加到您的组织,并将它们分配给您的最终用户。
添加「华为云」应用
进入应用市场
管理登录 XAuth 的控制台,导航至 【应用】-【应用市场】
可以看到应用市场里的应用,以华为云为例:
打开 应用 / 应用市场页面,选择华为云,点击添加应用、设置应用名称并保存。
华为云控制台配置身份提供商
使用管理员权限账号登录「华为云」控制台,点击右上角下拉菜单中的统一身份认证后,打开身份提供商页面创建身份提供商:
创建身份提供商:请选择 OpenID Connect 协议,即 OIDC 类型。
创建完成后,点击修改编辑配置信息:
以上的信息从 XAuth 获取的方法:
- 客户端 ID,即 Client ID,请在 XAuth 的刚刚创建的「华为云控制台」获取,在应用详情页面中复制
身份提供商URL
,请填写 OIDC 中的 Issuer,导航至【API】-【授权服务器】,XAuth 提供了默认的授权服务器,点击查看,复制 Issue:
https://{yoursubdomain}.xauth.cloud/oauth/v1/default,其中{yoursubdomain}请使用您租户的子域名
-
授权请求 Endpoint,即 Authorize Endpoint ,XAuth 中授权请求 Endpoint 为 https://{yoursubdomain}.xauth.cloud/oauth/v1/default/authorize,其中{yoursubdomain}请使用您租户的子域名。
或者,可以复制Metadata,粘贴到浏览器中,查看Authorize Endpoint
-
签名公钥的获取,请访问地址
https://{yoursubdomain}.xauth.cloud/oauth/v1/default/keys
获取,如:或者从 Metadata 复制 jwks_uri,将其 粘贴到浏览器中
如下,将请求到的信息复制,粘贴到华为云
-
授权请求 Response mode,请修改为
fragment
XAuth 配置登陆地址
导航至【 华为云】-【身份提供商】页面,点击查看,并复制登录链接
将复制的链接填写到 XAuth 的「华为云控制台」应用下的 基本信息选项卡—应用地址一览,点击保存
配置授权与权限
我们举例来说明授权的应用场景,例如:我们在 XAuth 创建“Fin” 用户组,并且将该用户组授权华为云的账单管理权限,进行如下配置
在 XAuth 用户组,创建 Fin , 并将 wangfei 加入 Fin 组,并将「华为云控制台」应用添加到 Fin 组。
将 wangfei 加入 Fin 组
将「华为云控制台」应用添加到 Fin 组
在授权服务器中,添加 Groups 的 Claim,包含在 id_token 中,过滤条件为“等于=Fin”,这意味着,如果用户在 Fin 组,将会在 id_token 包含 Fin 的值。
在【授权服务器】-【访问策略】下,添加一条规则,设置 AccessToken 和 Refresh Token 的有效期。
在 XAuth 授权完成后,在华为云配置 Fin 对应的权限。
首先,在华为云【统一身份服务】-【用户组】下,创建名称为“Fin”的用户组,然后为该用户组授权,按如下步骤操作,在授权时,搜索财务,可以找到账单对应的权限。
完成授权后,需要配置华为云的身份转换规则,找到之前配置好的 XAuth 身份提供商,点击编辑。
打开页面后在最下方,编辑规则。按照图片的说明,填写入转换的规则。
转换规则详细解释:
以上规则配置是为了将 XAuth id_token 中用户的属性,映射到华为云的用户属性,以完成权限的授予。
例如 王菲的映射:
在 XAuth 中,
sub= wangfei, Groups = Fin,
在华为云中
name= wangfei,group=Fin,则权限根据以上配置,对应为账单的权限。
详细的映射,参考华为云转换规则帮助文档
最终实现的效果
用王菲的账号登陆租户的 Dashboard,可以看到华为云展示在应用面板
点击面板上的华为云应用,直接跳转到华为云的控制台。
访问费用中心,可以正常访问。
如果访问非财务的权限,则该用户显示为无权限。
到此,我们完整的配置了如何通过 XAuth 设置访问华为云的权限控制。