9

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

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

解决方案 1,我们依靠 IdP 为每个登录用户提供角色信息,角色信息可能会随 Assertion 一起出现,但这可能不适用于所有 IdP。

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

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

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

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

还有哪些其他选择?

4

2 回答 2

0

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

于 2013-10-03T07:26:40.807 回答
0

对于您关于谁应该处理这些角色的第一个问题。据我了解,每个客户都有您的 One of your service provider 软件。它连接到您拥有的中央 IDP。如果是这种情况,让管理员处理您的 IDP 上的角色感觉很复杂。我会选择第二名。

关于第二个问题。我一直处于同样的情况,我不记得我已经看到了一个明显的标准解决方案。

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

于 2013-05-06T07:50:03.880 回答