ragingdave / simplersaml
允许更简单地集成 SimpleSAML 和 Laravel。
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
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 会话可能仍然有效。此包中的中间件会处理这个问题,所以请查看 `` 中的示例。