c3unu/simplersaml

由RagingDave/SimplerSaml分支而来。

dev-master 2016-04-06 09:41 UTC

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会话可能仍然有效。此包中的中间件会处理这个问题,请参阅``中的示例。