Architecture 使用单点登录获取用户数据的最佳方法

Architecture 使用单点登录获取用户数据的最佳方法,architecture,single-sign-on,onelogin,Architecture,Single Sign On,Onelogin,我有以下问题,我找不到更好的解决办法。 我有一个SSO服务器和一个REST客户端应用程序 1-客户端登录到SSO,该SSO返回令牌和 用户“用户id” 2-应用程序将此数据(令牌、用户id)保存在表中 数据库的(用户表) 3-客户端应用程序需要列出所有用户及其 信息(姓名、年龄、地址等),但该信息在 SSO 获取此用户信息的最佳方式是什么 我考虑通过传递令牌和用户id,或者在客户端登录时,将用户信息保存在用户表中,从而向每个用户发出SSO请求 但是如果用户使用另一个客户端应用程序更新某些信息?如

我有以下问题,我找不到更好的解决办法。 我有一个SSO服务器和一个REST客户端应用程序

  • 1-客户端登录到SSO,该SSO返回令牌和 用户“用户id”
  • 2-应用程序将此数据(令牌、用户id)保存在表中 数据库的(用户表)
  • 3-客户端应用程序需要列出所有用户及其 信息(姓名、年龄、地址等),但该信息在 SSO
  • 获取此用户信息的最佳方式是什么

    我考虑通过传递令牌和用户id,或者在客户端登录时,将用户信息保存在用户表中,从而向每个用户发出SSO请求


    但是如果用户使用另一个客户端应用程序更新某些信息?如何在所有客户端应用程序上升级?

    大多数SSO都有自己的API,您可以对其进行查询,您必须这样做,因为数据只存在于其中。与Onelogin类似,您标记的Onelogin有一个用户API,如果应用程序查询具有API访问权限,则可以使用该API


    您还可以将此数据存储在一个客户端应用程序中,并使用来自其他应用程序的SSO来控制对该数据的访问。这将使您的SSO负责访问控制,而您的客户机负责管理非访问控制数据。

    大多数SSO都有自己的API,您可以对其进行查询,您必须这样做,因为数据只存在于其中。与Onelogin类似,您标记的Onelogin有一个用户API,如果应用程序查询具有API访问权限,则可以使用该API


    您还可以将此数据存储在一个客户端应用程序中,并使用来自其他应用程序的SSO来控制对该数据的访问。这将使您的SSO负责访问控制,而您的客户端负责管理非访问控制数据。

    有几种方法可以解决这一问题,最终取决于您的应用程序最终所需的行为

  • 实时同步
  • SSO时的即时资源调配/更新
  • 案例1

    一些身份管理系统,如OneLogin,能够在系统中的用户数据发生更改时执行钩子。例如,如果用户更新其电子邮件,您可以设置一个钩子来执行对最终应用程序API的调用,以更新最终应用程序上的用户帐户

    同样,用户可以在最终应用程序中编辑其配置文件,并在IdM系统上应用该更改,这是很有趣的,因为您可以使用IdM API,所以当用户在最终应用程序中编辑其配置文件时,它会执行对IdM API的API调用。 (请注意,如果idM系统在最终应用程序上配置了挂钩,那么这些挂钩将在idM系统上执行,因此最终应用程序也将自动更新)

    案例2

    当用户执行SSO进程(SAML/OIDC、JIT)时,其数据可以从IdM系统提供给final app,此时final app可以使用提供的数据进行同步。 欺骗。如果用户不执行SSO,则不会创建/更新帐户


    案例1在更新用户数据至关重要的环境中是有意义的,例如,在LMS中,教师需要了解其教室的学生集合,但如果您依靠SSO过程(SAML/OIDC,JIT)创建/更新学生帐户,如果学生从未访问LMS,老师永远不知道学生的存在。

    有几种方法可以解决这个问题,最终取决于你的应用程序最终想要的行为

  • 实时同步
  • SSO时的即时资源调配/更新
  • 案例1

    一些身份管理系统,如OneLogin,能够在系统中的用户数据发生更改时执行钩子。例如,如果用户更新其电子邮件,您可以设置一个钩子来执行对最终应用程序API的调用,以更新最终应用程序上的用户帐户

    同样,用户可以在最终应用程序中编辑其配置文件,并在IdM系统上应用该更改,这是很有趣的,因为您可以使用IdM API,所以当用户在最终应用程序中编辑其配置文件时,它会执行对IdM API的API调用。 (请注意,如果idM系统在最终应用程序上配置了挂钩,那么这些挂钩将在idM系统上执行,因此最终应用程序也将自动更新)

    案例2

    当用户执行SSO进程(SAML/OIDC、JIT)时,其数据可以从IdM系统提供给final app,此时final app可以使用提供的数据进行同步。 欺骗。如果用户不执行SSO,则不会创建/更新帐户

    在更新用户数据至关重要的环境中,案例1是有意义的,例如,在LMS中,教师需要了解其教室的学生集合,但如果您依靠SSO过程(SAML/OIDC,JIT)创建/更新学生帐户,如果学生从未访问LMS,则教师永远不知道该学生存在