如何将Google身份验证用作SimpleSAMLphp IDP?

时间:2020-05-13 03:47:39

标签: google-authentication simplesamlphp

我们想对一组应用程序使用SSO(这将包括GitLab,Drupal以及我将在Symfony中编写的用于各种任务的一堆小应用程序)。我们目前想使用Google帐户对所有应用进行身份验证,但是由于您可以拥有的应用数量有限(我知道您可以增加它们),并且Google有时会更改免费功能,因此最好选择必要时使用我们自己的登录信息的方法。

我过去在GitLab上使用过SimpleSAMLphp(使用数据库存储凭据),并且效果很好。有没有一种方法可以让我使用Google Auth作为IDP,并让SimpleSAMLphp记录电子邮件地址以链接帐户等,并允许我添加诸如组之类的东西以在登录发生时向下发送到应用程序?我还要在数据库的登录表中放置一个密码字段,这样,如果我们决定离开Goog​​le,我们可以生成随机密码并继续进行,而不会出现太多问题。

我在网上找到的信息是关于使用SimpleSAMLphp作为gsuite等的IDP(我们将使用一般的Google帐户,而不是gsuite中的帐户),而不是相反的方式。我也看不到任何Authentication Modules的Google身份验证。对此是否有任何教程或说明?

1 个答案:

答案 0 :(得分:0)

您可以轻松完成自己的要求。与其直接将SP与Google集成,不如将它们与您控制的SSP IDP集成,然后将身份验证页面(即authsource模块重定向到的页面)设置为Google的SP。看起来像这样:

供应商sp->您的SSP idP->您的登录应用程序->您的SSP SP-> google idP

这样,您最终只能为所有供应商集成配置一个Google集成。这种方法有很多好处:

  • 您不受Google施加的#个集成约束的影响
  • 由于您的供应商SP集成是在您自己的服务器上控制的,因此将来您可以轻松地转移到其他基于云的idP进行身份验证,而无需重新集成所有SPs
  • 如果需要,您可以轻松为用户提供其他登录选项。
  • 您不受限于SAML或Google支持的协议。许多供应商仍然使用基于专有令牌的身份验证。这些可以通过此设置轻松支持。

很高兴在需要时提供实施细节的帮助。