mnshankar/laravel-shib-auth

将 Shibboleth 令牌转换为等效的 Laravel 用户表列,以便可以使用 Laravel 身份验证语义

v1.0 2017-05-27 09:58 UTC

This package is not auto-updated.

Last update: 2024-09-23 16:26:47 UTC


README

Shibboleth 身份验证通常会在成功认证后由身份提供者设置一系列服务器变量。这是一个 Laravel 5.0+/PHP 5.4+ 包,帮助将这些服务器令牌转换为 Laravel 用户表字段,以便遵循常规 Laravel 身份验证语义。

注意,Shib 身份验证必须已经发生 - 通常使用 .htaccess 文件中的指令。

包含的中介件会检查用户表

  1. 如果没有找到匹配的用户,则创建一个新的用户行
  2. 如果在用户表中找到用户,则检索相应的用户记录
  3. 然后使用 Auth::login($user) 将用户登录到应用程序

安装

通过 composer 需求此包

$ composer require mnshankar/laravel-shib-auth

接下来,设置服务提供者。这允许您修改配置文件(默认令牌针对 UF 实现的 Shibboleth)

在您的 config/app 提供者数组中添加

'mnshankar\Shib\ShibAuthServiceProvider',

您必须确保

  1. 映射的字段存在于您的用户表中。
  2. Shibboleth 为指定的所有令牌设置有效值(否则会抛出异常)
  3. 用户表中的 "password" 字段必须是可空的,因为我们不会使用它。

用法

编辑您的 http kernel.php 文件,以便包含包中的 shib 中介件,如下所示

'shib'=>'mnshankar\Shib\Middleware\ShibAuth',

现在,您可以从控制器或路由使用中介件。

  1. 在您的控制器中

    function __construct()
    {
        $this->middleware('shib');
    }
  2. 在您的路由中

    使用 Laravel 5.0

    Route::get('my/page', ['middleware' => 'shib', function()
    {
        //
    }]);

    使用 Laravel 5.1+

    您可以使用 Laravel 5.0 风格继续使用...或者使用链式调用

    Route::get('/', function () {
        //
    })->middleware(['shib']);

    您还可以使用路由分组。请参阅 Laravel 中间件文档了解有关中间件的更多信息 https://laravel.net.cn/docs/5.2/middleware

配置选项

您可以通过发布它们来自定义配置选项

php artisan vendor:publish --provider="mnshankar\Shib\ShibAuthServiceProvider"