SAML2.0 配置
功能说明
SAML2.0:安全断言标记语言,使用统一的身份提供服务(IDP)验证用户身份,然后将认证后的安全断言和用户信息返回给本系统,并将用户与本系统内的账号系统关联。
单点登录需要在开放平台进行设置。
使用现有系统的 SAML 功能
如果用户使用的系统中集成了 SAML 功能,用户可以自行查阅相关资料进行配置。
同阿里云IDaaS对接实例(SAML2.0)
1.在阿里云IDaaS中创建SAML应用
1.1 创建实例
(1).登录阿里云管理后台(无阿里云账号的需要先注册),搜索并进入应用身份服务(IDaaS)。
(2).在 EIAM云身份服务中,点击【免费创建实例】,输入实例名称并勾选协议后点击【创建】。
1.2 添加SAML应用
(1)进入创建的示例中,点击【实例名称】或者【访问控制台】进入云身份服务管理后台。
如点击【singletest】进入云身份服务管理后台。
(2)进入云身份服务中,选择应用,在应用页面点击【添加应用】。
(3)进入【添加应用>>标准协议>> SAML 2.0】处,点击【添加应用】,输入应用名称后,【立即添加】。
1.3查看应用配置信息
应用添加成功后,显示如下页面,进入【SAML应用>>登录访问>>单点登录>>应用配置信息】处,查看以下信息:
- IdP 唯一标识(IdP Entity ID)
- IdP SSO地址(IdP Sign-in URL)
- 公钥证书
注:需要根据应用配置信息去配置平台中的单点登录,建议不关闭当前页面。
2.在平台中配置单点登录
2.1 开启单点登录
登录平台,进入开放平台。
2.2 配置单点登录
单点登录配置项如下所示,部分配置信息需复制阿里云 SAML应用中的应用配置信息。
- 单点登录配置方式:选择SAML 2.0
- SAML 2.0 Endpoint(HTTP):填入阿里云SAML应用>>应用配置信息>> IdP SSO 地址(IdP Sign-in URL)处的内容
- IdP公钥:填入阿里云SAML应用>>应用配置信息>>公钥证书(Certificate)处的内容
- SAML 加密算法:选择【SHA-1】
- Issuer URL:填入阿里云SAML应用>>应用配置信息>>IdP 唯一标识(IdP Entity Id)处的内容
- SLO Endpoint (HTTP):选填,阿里云暂不支持
配置完成后【保存】。
2.3 生成单点登录信息
完成单点登录配置后,会生成对应信息:
注:需要根据生成的信息去完成阿里云SAML应用中的配置,建议先不关闭此页面。
3 在阿里云中修改SAML应用
3.1 配置阿里云中单点登录
返回到阿里云 SAML应用配置页面,按照如下所示进行配置,部分配置内容需要复制平台中单点登录信息。
- 单点登录地址(ACS URL):填入平台中的认证返回地址
- 应用唯一标识(SP Entity ID):填入平台中的Metadata 地址
- 应用账户(Name ID):选择应用账户/应用账户
- 断言属性(Attribute Statements):修改 key 值为 username;修改 value 值为 appUser.username
- 其余配置项:保持默认即可
配置完成后【保存】。
点击【显示高级配置】,修改断言属性中 key 的值为 username,修改 value 的值为 appUser.username。
3.2 开启接口
进入【SAML应用>>通用配置】处,开启接口访问。
3.3 创建账户
进入【云身份服务>>账户】页面,点击创建账户,输入账户名、密码等信息,点击【确定】。
3.4 添加应用账户
(1)进入平台【通讯录】中,查看并保存需要进行单点登录的【企业ID】
(2)进入阿里云的【云身份服务>>应用>>单点登录>>应用账户】中,点击【添加应用账户】。
(3) 选择步骤 3.3 中创建的账户,在输入框中输入需要进行单点登录的成员企业ID,【保存】。
3.5 添加授权
进入【SAML应用>>登录访问>>授权】处,点击【添加授权】,选择步骤 3.3 中创建的账户,点击【保存授权】。
4 关闭二次认证(可选)
若希望成员在使用账户名、密码登录时,还需要进行手机号、邮箱的二次认证,则无需进行此步骤;
若不需要成员进行手机号、邮箱的验证,则需要进行此步骤,关闭二次认证。
进入【云身份服务>>登录>>二次认证】中,关闭【二次认证配置】按钮,点击【确认禁用】并输入验证码后,点击【确定】即可禁用。
5.验证单点登录效果
通过企业URL进入单点登录,输入阿里云中的授权账户登录后即可登录系统:
错误说明
errCode | 中文提示 | 含义 | 解决方案 |
---|---|---|---|
10001 | 单点登录请求失败,没有配置username属性,如有疑问请联系管理员反馈此问题 | 身份提供者(idp)的配置不正确,没有定义username这个属性,传递给本系统 | 检查idp中帐号自定义参数的设置 |
10002 | 单点登录请求失败,username值为空,如有疑问请联系管理员反馈此问题 | 身份提供者(idp)的配置不正确,传递的username值是空的 | 检查idp中帐号username对应的帐号字段是否没有填写 |
10003 | 单点登录请求失败,请联系管理员反馈此问题 | 单点登录回调异常 | 联系开发查看日志,具体分析 |
10004 | 单点登录acs验证失败,请检查配置或者联系管理员反馈此问题 | 单点登录ACS验证异常 | 联系开发查看日志,具体分析 |
10005 | 单点登录登出失败,请检查配置或者联系管理员反馈此问题 | 单点登录退出异常 | 联系开发查看日志,具体分析 |
10006 | 登出没有配置SLO Endpoint (HTTP)地址 | 单点登录退出的链接,在本系统没有配置 | 在本系统的单点登录配置中,填写SLO Endpoint地址 |
10007 | 单点登录请求失败,企业团队id不一致,如有疑问请联系管理员反馈此问题 | 单点登录的链接和要登录的团队不一致 | 检查idp中配置的几个链接是从本系统中同一个配置页面获取的。 保证链接上的团队id字符串一致 |
10008 | 单点登录请求失败,用户username不正确,如有疑问请联系管理员反馈此问题 | 登录的帐号的username不正确, 在要登录的团队通讯录中找不到企业内唯一id和username一致的成员 |
查看本系统的通讯录,查看 企业内用户唯一id 里有没有和登录的这个帐号username一样的值。 如果没有,则需要考虑是成员的企业内用户id写错了,或者要登录的成员不在通讯录里。 需要保证通讯录内有成员的企业内用户唯一id和要登录帐号的username一致 |
10009 | 单点登录请求失败,邀请中的成员不可以访问,如有疑问请联系管理员反馈此问题 | 本系统里通讯录中状态为邀请中的不可以登录 | 在本系统中,这个成员是邀请中状态,需要同意邀请,成为正式成员 |
10010 | 单点登录请求失败,用户数据不完整,如有疑问请联系管理员反馈此问题 | 登录的帐号,帐号数据异常不完整 | 联系开发查看日志,具体分析 |