网站首页 > 技术服务 > 邮箱知识广场 > 广东阿里企业邮箱-使用Shibboleth进行用户SSO的示例
广东阿里企业邮箱-使用Shibboleth进行用户SSO的示例
发布时间:2025-11-03
本文提供一个以Shibboleth与阿里云进行用户SSO的示例,帮助您理解企业IdP与阿里云进行SSO的端到端配置流程。
准备工作
1.安装Shibboleth、Tomcat和LDAP Server。
2.配置LDAP Server。
1)在LDAP中添加一个管理员账号,DN为uid=admin,ou=system,密码为secret。
2)在LDAP中添加一个测试账号,DN为cn=Test User,ou=users,dc=wimpi,dc=net,密码为secret
3.配置Shibboleth连接LDAP Server。
步骤一:在阿里云获取SAML服务提供商元数据
1.使用RAM管理员登录RAM控制台。
2.在左侧导航栏,选择集成管理 > SSO管理。
3.单击用户SSO页签,在SAML 服务提供商元数据区域,复制当前阿里云账号的元数据URL。
4.在新的浏览器窗口中打开复制的链接,将元数据XML文件另存到/opt/shibboleth-idp/metadata/aliyun-ram-user-metadata.xml。
步骤二:将阿里云注册到Shibboleth
配置/opt/shibboleth-idp/conf/metadata-providers.xml,指定步骤一:在阿里云获取SAML服务提供商元数据获取的元数据文件,将阿里云注册到Shibboleth。
步骤三:配置Shibboleth返回的用户属性
1.修改/opt/shibboleth/conf/services.xml。
原版使用的是attribute-resolver.xml配置文件,包含的配置信息不够,需要启动完整版的配置,将其替换为attribute-resolver-full.xml。
2.修改/opt/shibboleth/conf/attribute-resolver-full.xml。
1)在该文件中配置用户信息中返回的属性。本示例中选择mail字段作为返回属性。
2)在该文件中读取/opt/shibboleth/conf/ldap.properties中配置的信息,进行IDAP连接的创建。
3.修改/opt/shibboleth/conf/attribute-filter.xml,添加属性过滤器。
将PolicyRequirementRule标签中的value属性替换为步骤一:在阿里云获取SAML服务提供商元数据中的阿里云entityID。
步骤四:配置SAML响应的NameID
1.修改/opt/shibboleth/conf/relying-party.xml,为阿里云建立NameID的配置。
将bean标签中的relyingPartyIds属性替换为步骤一:在阿里云获取SAML服务提供商元数据中的阿里云entityID。
2.修改/opt/shibboleth/conf/saml-nameid.xml,配置NameID的生成方式。
3.修改/opt/shibboleth/conf/saml-nameid.properties,配置NameID的相关属性。
步骤五:在Shibboleth获取SAML IdP元数据
1.重启Tomcat,使前面的配置生效。
2.访问https:///<您的服务器地址>/idp/shibboleth,将元数据文件保存到本地。
步骤六:在阿里云开启用户SSO
1.在RAM控制台的左侧导航栏,选择集成管理 > SSO管理。
2.单击用户SSO页签,在SSO功能状态区域,单击开启。
3.在元数据文档区域,单击上传元数据,上传从步骤五:在Shibboleth获取SAML IdP元数据中获取的IdP元数据文件。
4.在辅助域名区域,单击编辑,然后开启辅助域名并配置辅助域名为Shibboleth中的用户名Email后缀。
在本示例中为testdomain.alicloud.com。
步骤七:在阿里云创建RAM用户
1.在RAM控制台的左侧导航栏,选择身份管理 > 用户。
2.在用户页面,单击创建用户。
3.在创建用户页面,输入登录名称和显示名称。
4.在访问方式区域,选择控制台访问,并设置登录密码等参数。
5.单击确定。
验证结果
完成上述配置后,您可以从阿里云或Shibboleth发起SSO登录。
1.从阿里云侧发起登录
1)在RAM控制台的概览页,复制RAM用户的登录地址。
2)将鼠标悬停在右上角头像的位置,单击退出登录或使用新的浏览器打开复制的RAM用户登录地址。
3)单击使用企业账号登录,系统会自动跳转到Shibboleth的登录页面。
4)在Shibboleth的登录界面,输入用户名(testUser)和密码,单击登录。
系统将自动SSO登录并重定向到阿里云控制台首页。
2.从Shibboleth侧发起登录
1)访问https://<您的服务器地址>/idp/profile/SAML2/Unsolicited/SSO?providerId=<entityID>。
该链接中的<entityID>为步骤一:在阿里云获取SAML服务提供商元数据中的阿里云entityID。
2)在Shibboleth的登录界面,输入用户名(testUser)和密码,单击登录。
系统将自动SSO登录并重定向到阿里云控制台首页。



