0

我的目标是在我的 Web 应用程序中实现 SSO 服务提供者,但我无法理解将 Google 作为身份提供者与其他 IdP 的 SSO。

我创建了两个 POC,一个使用 SAML,另一个使用 OpenID Connect。两者似乎都运作良好。

我注意到,对于我测试过的身份提供程序(OneLogin、Okta),对于两种 SSO 方法(OIDC、SAML),我需要在 IdP 上创建一个应用程序并为该应用程序分配授权用户。当用户尝试登录时,只有当他们是授权用户之一时才会成功。这实质上意味着我不必在我的应用程序中管理邀请和授权用户,因为它被委托给身份提供者上定义的应用程序。

但是,使用 Google 作为 IdP 提供商时,SAML 应用程序没有“分配的用户”部分,而使用 OpenID Connect,我什至不需要创建可以管理用户的应用程序(只需 OAuth 2.0 凭据)。这基本上意味着使用谷歌作为身份提供者,我需要在内部管理授权用户,因为谷歌授权任何使用谷歌登录的用户并同意共享他们的个人数据。

如果有人可以揭开这种行为的神秘面纱,我将不胜感激。听起来很奇怪,我必须根据我的 IdP 来更改联合身份的授权流程!

4

1 回答 1

1

好吧,OIDC 提供的是用户身份验证。Google 实现仅提供了这一点,而其他一些 IdP 也提供了其他功能。我想说的是,Google 的行为对于开放云提供商来说更为典型(Facebook,虽然他们有自己的基于 OAuth2 的协议,但行为相似),而其他的则更典型地在企业内部使用。

然而,谷歌确实提供了一个名为(用于托管域)的声明hd,可用于阻止属于其他域的用户(如果这是您想要的 - 在企业环境中,我会假设它是)。

于 2019-10-08T15:37:47.577 回答