Azure AD+SAML 实现 SSO单一登录

步骤1:创建企业应用程序

(1)登录地址:https://entra.microsoft.com/#home——》企业应用程序——》新建应用程序——》创建你自己的应用程序——》保存
(2)设置单一登录
(3)添加用户和组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤2:配置SSO单一登录信息

在这里插入图片描述
在这里插入图片描述
配置好以后,得到信息如下:
(1)标识符(实体 ID):https://localhost:8080/bueiness/xxx/secure/aad
(2)回复 URL (断言使用者服务 URL):http://localhost:8080/bueiness/xxx/graph/me
(3)证书(base64):下载下来
(4)登录 URL:https://login.microsoftonline.com/xxx2-47f0-41db-8cc5-596e488c7dc5/saml2
(5)Microsoft Entra 标识符:https://sts.windows.net/xxx02-47f0-41db-8cc5-596e488c7dc5/
(6)注销 URL:https://login.microsoftonline.com/xxx2-47f0-41db-8cc5-596e488c7dc5/saml2

把用户添加到“用户和组”里面,这样他才有权限访问这个企业应用程序
在这里插入图片描述

步骤3:java项目集成SAML库

添加依赖:将开源的SAML库比如OneLogin作为依赖项添加到java项目中。在Maven构建文件中添加相应的依赖项。
我们使用 onelogin 框架进行生成saml 请求 和解析结果
在这里插入图片描述
步骤4:配置SP和IDP
在这里插入图片描述
onelogin.saml2.sp.entityid = Entity ID

onelogin.saml2.sp.assertion_consumer_service.url = ACS URL

onelogin.saml2.sp.single_logout_service.url = Entity ID

onelogin.saml2.sp.x509cert = SP x509cert

onelogin.saml2.idp.entityid = Entity ID

onelogin.saml2.idp.single_sign_on_service.url = SingleSignOnService Redirect URL

onelogin.saml2.idp.single_logout_service.url = SingleLogoutService Redirect URL

步骤5:处理SAML请求和响应

(1)创建Saml2Filter
在这里插入图片描述
//2.SAML请求逻辑代码实现
Auth auth = new Auth(request, response);
auth.login();

//3.SAML响应逻辑代码实现
Auth auth = new Auth(request, response);
String nameId = auth.getNameId();
String nameIdFormat = auth.getNameIdFormat();
String sessionIndex = auth.getSessionIndex();
String nameidNameQualifier = auth.getNameIdNameQualifier();
String nameidSPNameQualifier = auth.getNameIdSPNameQualifier();

//4.登出逻辑代码实现
Auth auth = new Auth(request, response);
auth.logout();

有哪些开源的SAML库?

开源的SAML库:
(1)OneLogin Java SAML Toolkit
(2)OpenSAML
(3)Spring Security SAML

如果您希望获得易于集成和广泛社区支持的SAML 2.0库,OneLogin Java SAML Toolkit可能是一个合适的选择。

如果您正在考虑将来迁移到Spring Security或已经在项目中使用了Spring Security,那么Spring Security SAML可能是一个有吸引力的长期解决方案,尽管当前的集成工作可能会更复杂。
如果您需要底层的SAML协议支持并愿意投入更多的开发工作,OpenSAML可能是一个选择。

Azure上使用SAML(Security Assertion Markup Language)配置单点登录SSO),你可以按照以下步骤进行操作: 1. 登录到 Azure 门户 (portal.azure.com)。 2. 在左侧导航栏中选择 "Azure Active Directory"。 3. 在 "Azure Active Directory" 概述页面中,选择 "应用注册"。 4. 在 "应用注册" 页面中,选择 "新注册"。 5. 在 "注册应用" 页面中,输入应用程序的名称,并选择适当的帐户类型和目录/租户。 6. 在 "注册" 后,你将被导航到应用程序的 "概述" 页面。在此页面上,复制 "应用程序 (客户端) ID",以备后用。 7. 在左侧导航栏中,选择 "证书和密码"。 8. 在 "证书和密码" 页面中,选择 "新客户端密码",并生成一个新的密码。复制生成的密码,以备后用。 9. 在左侧导航栏中,选择 "企业应用程序"。 10. 在 "企业应用程序" 页面中,选择你刚刚创建的应用程序。 11. 在左侧导航栏中,选择 "单点登录"。 12. 在 "单点登录" 页面中,选择 "SAML"。 13. 在 "基本 SAML 配置" 部分中,输入以下信息: - 受众 URI:输入你要配置 SSO 的应用程序的 URL。 - 默认重定向 URI:输入 SSO 完成后要重定向的 URL。 - 登出 URL:输入用户从 SSO 会话注销时要重定向的 URL(可选)。 - 签名算法:选择适当的签名算法。 14. 在 "SAML 断言" 部分中,添加要包含在 SAML 断言中的声明。这些声明将提供给应用程序以验证用户身份。 15. 在 "SAML 断言" 部分下,选择 "添加声明"。 16. 输入声明的名称、名称格式和值,并选择 "添加"。 17. 重复步骤 15-16,直到添加了所有需要的声明。 18. 在 "SAML 断言" 部分下,选择 "保存"。 19. 在左侧导航栏中,选择 "身份提供者"。 20. 在 "身份提供者" 页面中,选择 "新建"。 21. 在 "新建身份提供者" 页面中,输入以下信息: - 名称:输入身份提供者的名称。 - 元数据地址或元数据文件:输入 SAML 元数据的 URL 或上传元数据文件。 22. 在 "属性映射" 部分下,选择 "新建映射"。 23. 在 "新建映射" 页面中,输入以下信息: - 名称 ID:选择你要用作名称 ID 的声明的值。 - 对象 ID:选择你要用作对象 ID 的声明的值。 24. 选择 "保存" 完成身份提供者的配置。 25. 将提供的元数据信息(如 SSO URL、证书指纹等)提供给要配置 SSO 的应用程序。 这样,你就可以在Azure上成功配置SAML方式的单点登录了。请注意,具体步骤可能会因Azure门户的更新而有所变化,但总体流程应该是类似的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值