如何使用 SSO 在两个应用程序之间共享数据?

How to share data between two applications with SSO?

这更像是一个 philosophical/architecture 问题,而不是 "code" 问题。

假设我们有 2 个使用单点登录的应用程序(服务提供商)。显然他们必须共享数据,主要是用户的信息(用户名、电子邮件等)。此数据由身份提供者管理,并在身份验证成功时 "provided" 提供给服务提供者(我猜是基础知识)。

我们还假设这两个应用程序本身有自己的数据库,它们在其中匹配从 IDP 检索到的每个用户,但每个数据库都有自己的信息(列),这些信息(列)只属于它们相关的应用程序(不属于另一个! ).但是(另一个但是),还有一些其他字段都必须访问(除了用户名、电子邮件等)。 例如,第一个应用程序有可用公司列表,第二个应用程序在创建新用户以将该用户与可用公司相关联时需要该信息。这些数据应该如何共享?这是创建 API 以在应用程序之间提供此类信息的 best/correct 方法吗?我主要是在谈论太大而无法通过断言发送的事物列表。

提前致谢!

SAML 方式是使用NameID 作为"primary key" 将IDP 中的用户映射到应用程序中的用户。

例如电子邮件可以作为应用程序 1 的 NameID 发送,UPN 可以作为应用程序 2 的 NameID 发送。这些将在断言中。

获取信息。应用程序之间不是 IDP 的一部分(除了使用断言)所以这必须通过 API.

来完成