本文为您介绍SAML协议配置说明。
背景信息
SAML(Security Assertion Markup Language 安全断言标记语言)是一个基于XML的开源标准数据格式,用于在不同的安全域间交换身份认证和授权数据,尤其是在身份提供者IDP(Identity Provider)和服务提供者SP(Service Provider)之间。这两者构成了前面所说的不同的安全域。
在Dataphin端填充SAML配置信息
生成配置项dataphin.sso.saml.properties
注意:先根据提供的SAML元数据,填充SAML配置信息模版,在进行base64编码,生成配置项dataphin.sso.saml.properties。
SAML配置信息模版
# dataphin(sp)标识ID(saml端新建应用时生成)
onelogin.saml2.sp.entityid={saml端新建应用时生成}
# dataphin(sp)回调地址
onelogin.saml2.sp.assertion_consumer_service.url=https://{dataphin地址}/sso/saml/ssoCallback
# dataphin(sp)登出地址
onelogin.saml2.sp.single_logout_service.url=https://{dataphin地址}/logout.htm
# saml(idp)配置文件地址
onelogin.saml2.idp.entityid=https://sts.windows.net/8ae0e787-99a4-40d8-aeda-bb7023b5e023/
# saml(idp)登录地址
onelogin.saml2.idp.single_sign_on_service.url={元数据SingleSignOnService标签 Locationd地址填充}
# saml(idp)退出登录地址
onelogin.saml2.idp.single_logout_service.url={元数据SingleLogoutService标签 Locationd地址填充}
# saml(idp)证书在(saml页面下载)
onelogin.saml2.idp.x509cert={原数据提供的x509cert密钥}
# smal用户信息解析key
onelogin.saml2.userInfoKeys={"sourceUserId":"http://schemas.microsoft.com/identity/claims/objectidentifier","displayName":"http://schemas.microsoft.com/identity/claims/displayname","email":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress","mobilePhone":""}
配置项 | 说明 |
onelogin.saml2.sp.entityid | SAML端新建应用时生成。 |
onelogin.saml2.sp.assertion_consumer_service.url | 回调地址。格式为: |
onelogin.saml2.sp.single_logout_service.url | 登出地址。格式为: |
onelogin.saml2.idp.entityid | IDP的唯一标识,可从下载的IDP元数据中获取。 |
onelogin.saml2.idp.single_sign_on_service.url | IDP的登录和退出地址,可从IDP的元数据中获取。 |
onelogin.saml2.idp.single_logout_service.ur | IDP的退出地址,获取方式同onelogin.saml和idp.single_sign_on_service.url。 |
onelogin.saml2.idp.x509cert | IDP的证书。 |
onelogin.saml2.userInfoKeys | SMAL用户信息解析key。根据客户SAML元数据中的auth:ClaimType标签获取 sourceUserId(用户唯一id)、displayName(展示名称)、email、mobilePhone对应的Uri,填充到JSON中(无则不填充key)。
|
不同客户的标签不一样,需确认用户的唯一ID。
Dataphin SSO相关配置项
Dataphin配置文件 values.yaml
中如下三个字段与开启SAML认证功能相关,您需提供以下配置信息给Dataphin运维人员。
product:
dataphin:
sso:
provider:
# 设置使用SAML账号和认证. 固定使用如下标识
session: 'com.alibaba.dataphin.sso.provider.saml.session.SamlSessionProvider'
account: 'com.alibaba.dataphin.sso.provider.saml.account.SamlAccountProvider'
security:
# 设置SAML2协议配置
saml2: {properties: 'Base64编码的SAML properties文件内容=='}
按照上述示例进行配置即可开启SAML账号和认证功能。
历史用户切换认证系统
Dataphin userTable中存储了用户的源id(以下称source_user_id)和Dataphin user_id(以下称user_id)。在Dataphin业务执行中,将使用user_id作为用户标识,source_user_id用于用户信息转换。
当用户在idp登录后,携带source_user_id到Dataphin,Dataphin通过userTable将source_user_id转换为user_id,用户转换完成。
因此在历史用户升级时,需要做source_user_id的订正,以方便新系统的用户可以直接映射成Dataphin中相应的成员。
例如:客户从阿里云的登录系统,切换到微软的AD,此时Dataphin的超管为小明,则需要将小明这个用户在阿里云中的id,替换为其在微软AD中的id。
在信息映射表中,至少应包含两个列:fromId、toId。fromId表示之前idp中的id,toId表示新idp中的id。
未进行订正的用户将无法再访问Dataphin,若其为某些权限的所有人(比如某些权限的审批人),则有可能影响业务。所以在用户订正时,需要客户仔细核实所提供表格,避免订正遗漏或错误
用户名
fromId
toId
小明
aliyun123
ms_ad_124
SuperAdmin
aliyun666
ms_ad_666