使用现有的 Idp 和 SP 在 Laravel 中集成 SAML

Integrate SAML in Laravel using existing Idp and SP

我不知道我想做的事情是否可行。我正在尝试将我大学的身份验证机制集成到使用 Laravel 作为后端的 android 应用程序中。我已经解码了 SAMLResponse,并在 XML 文件中找到了这个

  'SPNameQualifier' = 'https://sp-esse3-unimib-prod.cineca.it/shibboleth',
  'NameQualifier' = 'https://idp-idm.unimib.it/idp/shibboleth'

我认为这是 SP 和 IdP URI。在我的 Android 应用程序中,我希望用户无需注册即可登录,因为他们可以使用他们的大学帐户。在 SAMLResponse 中,我还有 SignatureValueX509Certificate 和其他数据,但我不知道如何配置所有内容。

在 Google 上搜索,我找到了那些包 laravel-saml2 and php-saml。这些包裹适合我的问题吗?你能帮我了解如何配置一切吗?

我会看看 SimpleSAMLphp。您的申请将是 "service provider" 或 SP。您需要为您的应用程序生成元数据,您需要与大学的 IdP 管理员共享这些元数据以启用集成。上面提供的 SSP 快速入门 link 详细介绍了如何为您的 SP 获取元数据,以及如何将身份提供商提供的 XML 元数据转换为 SSP 库可读的格式。

只有在发生元数据交换并且您的应用程序受到信任后,您才能交换 SAML 响应。 SSP 使此过程变得简单,因为您只需在需要保护资源时调用几行代码即可,即

require_once('../../lib/_autoload.php');
$as = new \SimpleSAML\Auth\Simple('default-sp');
$as->requireAuth();
$attributes = $as->getAttributes();

这就是确保 SAML 来回传输所需的全部内容...但集成是另一回事。您的大学肯定有一些您需要遵循的政策和程序,您不能不遵循他们的集成程序就与大学集成,即适当的 IdP 不会向任何人提供 SAML 断言要求它的旧应用程序。