属性映射
在 XAuth 中用户账号属性的传递关系可以概括为 IdP -> XAuth -> 应用
。
我们通过属性映射来控制传递过程中两端的属性关系。
因此,将分为 IdP To XAuth
和 XAuth To 应用
分别介绍。
IdP To XAuth
IdP To XAuth
的情况一般是在由AD/LDAP、HR系统、钉钉或企业微信等外部源导入账号到 XAuth 的场景。
此时属性映射配置将决定了账号从上述的源导入到 XAuth 后创建和更新账号的数据。
在下图中,从 Active Directory (AD) 导入用户到 XAuth ,以 AD 的 UserPrincipalName
作为 XAuth 中的用户账号(account)
。AD 属性 cn
、givenName
、sn
分别映射到 XAuth 属性 姓名(displayName)
、姓(firstName
)、名(lastName)
,其它属性的映射关系如图所示。
XAuth To 应用
XAuth To 应用
用于用户数据从 XAuth 推送到其它应用系统创建或更新用户账户。
如下图所示,选择左侧的 XAuth 属性映射到与其同一行的 GitLab 属性。
在 用户详情/授权应用
或 应用详情/授权用户
中可查看指定用户映射到应用中的具体属性值,如下图所示。
属性映射中的表达式
表达式为 XAuth 中身份字典的属性映射提供了更灵活的配置。
例如,
- 在 XAuth 中添加了应用
GitLab
; - 在 GitLab 中的用户账号的形式为邮箱前缀;
- 在 XAuth 中存在用户的邮箱,但是没有单独的邮箱前缀属性。
使用表达式 split({email},"@")[0]
可以满足该需求,如下图所示
表达式示例:
表达式 | 输入 | 输出 | 描述 |
split({email},"@")[0] | zhangsan@example.com | zhangsan | 以'@'分割字符串,获取第1段字符串 |
split({email},"@")[1] | zhangsan@example.com | example.com | 以'@'分割字符串,获取第2段字符串 |
lower({displayName}) | zhangSan | zhangsan | 字符串转为小写 |
upper({displayName}) | zhangsan | ZHANGSAN | 字符串转为大写 |
replace({jobNumber},"#","") | 1#0002 | 10002 | 移除字符串中指定的字符"#" |
strip({customName},"$") | $street$ | street | 去掉字符串首尾的字符"$" |