与其他组织启用单点登录的流程是啥?

Posted

技术标签:

【中文标题】与其他组织启用单点登录的流程是啥?【英文标题】:What Is The Flow For Enabling Single-Sign-On With Other Organisations?与其他组织启用单点登录的流程是什么? 【发布时间】:2020-12-13 07:37:31 【问题描述】:

我有一个 React 前端和一个部署在 Azure 上的 Spring Boot 后端。

我们公司和我们的客户一样使用 Active Directory。

我们的客户表示他们希望在我们的应用程序中使用单点登录。

即他们在我们的应用程序上点击登录,然后进入他们的公司登录页面

我不知道这个流程是如何工作的,以及哪些部分是应用程序的哪些部分的责任。

我不确定它是否是这样的,它主要在应用程序中处理:

用户点击登录 Web 应用程序链接到 MS 身份验证 MS 身份验证重定向到正确的客户公司登录 客户公司 AD 使用 JWT 进行身份验证和响应 Web 应用通过 REST API 调用将 jwt 转发给我们 后端连接到我们的 AD 并验证 (?) 它是一家有效的公司 后端使用另一个包含用户、公司、角色等的 JWT 响应 REST 请求

或者,如果是 AD 中的某些配置跳过了最后 3 个步骤。

我也不确定要在我们的 Active Directory 中存储什么。

我是否创建代表每个客户公司的用户? 或与该网络应用相关的一组用户? 我应该将每个用户的角色存储在我们的 AD 中还是应该来自他们的 AD? 如果角色在他们的 AD 中,我应该告诉客户角色名称应该是什么,还是有办法在他们的角色和我们的角色之间进行一些映射?

这个设计模式有合适的名称来帮助我搜索示例吗?

【问题讨论】:

您是否有机会了解Azure B2B 解决方案是否可以解决您的业务需求? 【参考方案1】:

如果您的客户使用 Azure AD(包括 Office 365 帐户),您可以在您拥有的租户中将您的应用程序注册为“多租户”。查看 this article 的设计模式和 this article 多租户应用程序的 Azure AD 配置。

如果您的客户端不在 Azure AD 上,您可以考虑使用Azure AD Connect 和直通身份验证。我没有这方面的经验,但您可以查看this article 了解更多信息。

【讨论】:

以上是关于与其他组织启用单点登录的流程是啥?的主要内容,如果未能解决你的问题,请参考以下文章

单点登录与权限管理本质:单点登录介绍

php里单点登录的原理是啥?就是类似dedecms+discuz整合的那种

SSO是啥

单点登录该如何实现?

单点登录-需求分析

单点登录与权限管理本质:权限管理介绍