c3unu / simplersaml
由RagingDave/SimplerSaml分支而来。
Requires
- php: >=5.4.0
- illuminate/support: ~5.0
This package is not auto-updated.
Last update: 2024-09-20 17:58:41 UTC
README
来自https://github.com/ragingdave/simplersaml/
欢迎使用Laravel 5的更简单的simplesamlphp集成。
此库使您的Laravel应用程序与IDP的身份验证之间实现简单交互。
请在问题/PR中提出不足之处,以便我可以改进此库,使其对每个人都有所帮助。
设置
将包添加到composer.json
composer require C3Unu/simplersaml:dev-master
在config/app.php中添加服务提供者
C3Unu\SimplerSaml\SimplerSamlServiceProvider::class,
(可选)发布配置以进行更改
php artisan vendor:publish --provider="C3Unu/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来实现。
此包从登录和注销函数中触发一些事件,可以挂钩到saml流程。
C3Unu\SimplerSaml\Events\SamlLogin
C3Unu\SimplerSaml\Events\SamlLogout
可以监听这些事件并对它们进行操作,以启用在应用程序中创建/登录saml用户,并使用本地Laravel会话。
Auth::user(), Auth::check(), etc.
问题在于,如果saml会话超时,Laravel会话可能仍然有效。此包中的中间件会处理这个问题,请参阅``中的示例。