Single sign on 如何设置启用SAML SSO的初始用户/角色

Single sign on 如何设置启用SAML SSO的初始用户/角色,single-sign-on,saml,user-management,application-design,user-roles,Single Sign On,Saml,User Management,Application Design,User Roles,我们是一家服务提供商。假设在我们的应用程序中,我们最初有自己的用户/角色管理。不同角色的不同用户可以使用不同的功能。因此,当用户登录时,我们需要知道该用户具有哪些角色,并准备适当的UI。我们有管理员角色,具有此角色的用户可以将角色分配给其他用户 我们正在考虑为应用程序启用SAML SSO,现在的问题是如何为每个用户设置角色 解决方案1,我们依赖IdP为每个登录用户提供角色信息,角色信息可能与断言一起提供,但这可能不适用于所有IdP 解决方案2,我们只从IdP检索用户,并在我们自己的应用程序中管理

我们是一家服务提供商。假设在我们的应用程序中,我们最初有自己的用户/角色管理。不同角色的不同用户可以使用不同的功能。因此,当用户登录时,我们需要知道该用户具有哪些角色,并准备适当的UI。我们有管理员角色,具有此角色的用户可以将角色分配给其他用户

我们正在考虑为应用程序启用SAML SSO,现在的问题是如何为每个用户设置角色

解决方案1,我们依赖IdP为每个登录用户提供角色信息,角色信息可能与断言一起提供,但这可能不适用于所有IdP

解决方案2,我们只从IdP检索用户,并在我们自己的应用程序中管理角色。例如,当我们得到一个断言时,我们检索用户名(或电子邮件地址),并与数据库中的记录匹配,如果它不存在,我们会自动为这个新用户创建一个。然后,我们依靠具有管理员角色的用户为这个新用户分配正确的角色

现在的问题是,第一个管理员来自哪里?我们的客户得到了我们的应用程序,并打开了SAML SSO,现在数据库中还没有用户,那么我们如何解决这种引导问题呢?有什么标准的方法吗?我们提出了不同的选择,但不确定哪一个更好,以及每个选择的关注点是什么

选项1,具有默认的内置管理员用户。有一个常规的本机登录页面,内置用户无需通过IdP即可登录(如果启用了SAML SSO,则可以选择打开/关闭该页面)

选项2,在SAML SSO设置期间,要求输入管理员用户名,以便我们在数据库中自动创建具有管理员角色的此用户。然后,当这个用户通过IdP登录时,我们可以在数据库中匹配他


其他选项是什么?

关于由谁来处理角色的第一个问题。据我所知,每个客户都有您的服务提供商软件。它连接到您拥有的中央IDP。如果是这样的话,让管理员处理IDP上的角色感觉很复杂。我要二号

关于第二个问题。我也遇到过同样的情况,我不记得我看到过一个明显的标准解决方案

我们所做的是选择2。它工作正常,但会增加安装过程的复杂性。我们选择它是因为我们没有本机登录页面。
我想我最好选择选项1。

您可以使用授权层从IDP的不同目录中获取角色。它删除SAML上的约束,并给出与解决方案1相同的结果