SAML配置说明

本文为您介绍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

回调地址。格式为:https://{dataphin地址}/sso/saml/ssoCallback,需要将{dataphin地址}替换为您部署的Dataphin的地址。

onelogin.saml2.sp.single_logout_service.url

登出地址。格式为:https://{dataphin地址}/logout.htm,需要将{dataphin地址}替换为您部署的Dataphin的地址。

onelogin.saml2.idp.entityid

IDP的唯一标识,可从下载的IDP元数据中获取。

image..png

onelogin.saml2.idp.single_sign_on_service.url

IDP的登录和退出地址,可从IDP的元数据中获取。

image..png

onelogin.saml2.idp.single_logout_service.ur

IDP的退出地址,获取方式同onelogin.samlidp.single_sign_on_service.url。

onelogin.saml2.idp.x509cert

IDP的证书。

image.png

onelogin.saml2.userInfoKeys

SMAL用户信息解析key。根据客户SAML元数据中的auth:ClaimType标签获取 sourceUserId(用户唯一id)、displayName(展示名称)、email、mobilePhone对应的Uri,填充到JSON中(无则不填充key)。

{
"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":""
}
说明

不同客户的标签不一样,需确认用户的唯一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_idDataphin,Dataphin通过userTablesource_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