Link Search Menu Expand Document

集成第一个 SSO 应用

  1. 集成第一个 SSO 应用
  2. 期望
  3. 如何集成
  4. Hands-On 示范
    1. 添加「华为云」应用
    2. 华为云控制台配置身份提供商
    3. XAuth 配置登陆地址
    4. 配置授权与权限
    5. 最终实现的效果

期望

XAuth 通过 SSO 应用面板来展示用户所有权限的应用程序,应用面板为用户提供出色的登录体验。用户只需要认证一次以后,其他已经集成的应用便无需登录,即可访问。

对于集成在应用面板中的应用,最终用户通过拖拽的方式,灵活的编排哪些应用程序放在哪里,他们可以将它们移动到不同的选项卡中以进一步管理他们所期望的体验。

expectation

如何集成

XAuth 提供了 2 类集成的方式:

XAuth 预集成了一批常见的应用,可以通过应用程序商店添加应用程序。

expectation

一种选择XAuth提供的标准应用集成方式来集成,包括OIDC、SAML、GWA等方式的集成。对于不同的认证方式,详细参考应用集成

expectation

Hands-On 示范

本示例以华为云为例:

添加「华为云」应用

进入应用市场

管理登录 XAuth 的控制台,导航至 【应用】-【应用市场】

image

可以看到应用市场里的应用,以华为云为例:

打开 应用 / 应用市场页面,选择华为云,点击添加应用、设置应用名称并保存。

image

image

华为云控制台配置身份提供商

使用管理员权限账号登录「华为云」控制台,点击右上角下拉菜单中的统一身份认证后,打开身份提供商页面创建身份提供商:

image

创建身份提供商:请选择 OpenID Connect 协议,即 OIDC 类型。

image

image

创建完成后,点击修改编辑配置信息:

image

以上的信息从 XAuth 获取的方法:

  • 客户端 ID,即 Client ID,请在 XAuth 的刚刚创建的「华为云控制台」获取,在应用详情页面中复制

image

  • 身份提供商URL,请填写 OIDC 中的 Issuer,导航至【API】-【授权服务器】,XAuth 提供了默认的授权服务器,点击查看,复制 Issue:

https://{yoursubdomain}.xauth.cloud/oauth/v1/default,其中{yoursubdomain}请使用您租户的子域名

image

  • 授权请求 Endpoint,即 Authorize Endpoint ,XAuth 中授权请求 Endpoint 为 https://{yoursubdomain}.xauth.cloud/oauth/v1/default/authorize,其中{yoursubdomain}请使用您租户的子域名。

    或者,可以复制Metadata,粘贴到浏览器中,查看Authorize Endpoint
    

image

image

  • 签名公钥的获取,请访问地址https://{yoursubdomain}.xauth.cloud/oauth/v1/default/keys 获取,如:

    或者从 Metadata 复制 jwks_uri,将其 粘贴到浏览器中

    image

    如下,将请求到的信息复制,粘贴到华为云

    image

  • 授权请求 Response mode,请修改为fragment

XAuth 配置登陆地址

导航至【 华为云】-【身份提供商】页面,点击查看,并复制登录链接

image

image

将复制的链接填写到 XAuth 的「华为云控制台」应用下的 基本信息选项卡—应用地址一览,点击保存

image

配置授权与权限

我们举例来说明授权的应用场景,例如:我们在 XAuth 创建“Fin” 用户组,并且将该用户组授权华为云的账单管理权限,进行如下配置

在 XAuth 用户组,创建 Fin , 并将 wangfei 加入 Fin 组,并将「华为云控制台」应用添加到 Fin 组。

image

将 wangfei 加入 Fin 组

image

将「华为云控制台」应用添加到 Fin 组

image

在授权服务器中,添加 Groups 的 Claim,包含在 id_token 中,过滤条件为“等于=Fin”,这意味着,如果用户在 Fin 组,将会在 id_token 包含 Fin 的值。

image

在【授权服务器】-【访问策略】下,添加一条规则,设置 AccessToken 和 Refresh Token 的有效期。

image

在 XAuth 授权完成后,在华为云配置 Fin 对应的权限。

首先,在华为云【统一身份服务】-【用户组】下,创建名称为“Fin”的用户组,然后为该用户组授权,按如下步骤操作,在授权时,搜索财务,可以找到账单对应的权限。

image

image

image

image

完成授权后,需要配置华为云的身份转换规则,找到之前配置好的 XAuth 身份提供商,点击编辑。

打开页面后在最下方,编辑规则。按照图片的说明,填写入转换的规则。

image

image

转换规则详细解释:

以上规则配置是为了将 XAuth id_token 中用户的属性,映射到华为云的用户属性,以完成权限的授予。

例如 王菲的映射:

在 XAuth 中,

sub= wangfei, Groups = Fin,

在华为云中

name= wangfei,group=Fin,则权限根据以上配置,对应为账单的权限。

image

详细的映射,参考华为云转换规则帮助文档

最终实现的效果

用王菲的账号登陆租户的 Dashboard,可以看到华为云展示在应用面板

image

点击面板上的华为云应用,直接跳转到华为云的控制台。

image

访问费用中心,可以正常访问。

image

如果访问非财务的权限,则该用户显示为无权限。

image

到此,我们完整的配置了如何通过 XAuth 设置访问华为云的权限控制。