ragingdave/simplersaml

允许更简单地集成 SimpleSAML 和 Laravel。

dev-master 2015-10-08 18:16 UTC

This package is auto-updated.

Last update: 2024-09-15 10:33:15 UTC


README

欢迎使用 Laravel 5 的更加简单的 simplesamlphp 集成。

这个库使得您的 Laravel 应用程序与 IDP 的身份验证之间进行简单交互。

请随时在问题/PR 中提出不足之处,以便我可以改进并使其对每个人更好。

设置

将包添加到您的 composer.json 文件中

composer require ragingdave/simplersaml:dev-master

config/app.php 中添加服务提供者

RagingDave\SimplerSaml\SimplerSamlServiceProvider::class,

(可选) 发布配置以进行更改

php artisan vendor:publish --provider="RagingDave/SimplerSaml/SimplerSamlServiceProvider" --tag="config"

配置

从开始就可以进行自定义,所以如果缺少某些内容,可能是我在这里遗漏了,你可以通过告诉我来帮助改进这个包,我会看看我能做什么(或者更好的是提交一个 PR)。

  • Saml 用户模型 (simplersaml.model)

    • 这基本上只是用于将 saml 属性名称映射到对您的应用程序有意义的某些内容。(理想情况下,这应该是唯一需要覆盖的部分)
  • 路由 (simplersaml.enableRoutes, simplersaml.routePrefix)

    • 这将确定是否注册了内置路由以及它们应该在哪里注册。
    • 将 routePrefix 设置为 'saml' 将触发 'saml/login' 和 'saml/logout' 路由
    • enableRoutes 的布尔值将启用或禁用内置路由。
  • SP 和 IDP (simplersaml.sp, simplersaml.idp)

    • 如果您使用 simplesamlphp,这些内容相当直观,但...
    • sp 应该是元数据中配置的 sp(作为 authSource 传递给 SimpleSAML_Auth_Simple)
    • idp 是 simplesamlphp 元数据中配置的 idp
  • 重定向 (simplersaml.loginRedirect, simplersaml.logoutRedirect)

    • 这些确定登录和注销后重定向的路径(传递给 redirect()->to())

用法

因此,您可以使用内置中间件并扩展它们以添加 saml isAuthenticated 检查,或者使用此包中包含的 SamlAuthenticate 和 SamlRedirectIfAuthenticated。更高级的任何内容,如将 laravel 会话检查和 saml 会话检查组合,可以通过添加到内置 Authenticate 和 RedirectIfAuthenticated 来完成。

此包从登录和注销函数中触发了一些事件。

RagingDave\SimplerSaml\Events\SamlLogin
RagingDave\SimplerSaml\Events\SamlLogout

这些事件可以被监听并执行,以启用在本地 laravel 会话中创建/登录 saml 用户以在应用程序中使用。

Auth::user(), Auth::check(), etc.

问题是,如果 saml 会话超时,laravel 会话可能仍然有效。此包中的中间件会处理这个问题,所以请查看 `` 中的示例。