aerdes / laravel-samlite
Requires
- php: ^7.2.5
- ext-openssl: *
- laravel/framework: ^6.0|^7.0|^8.0
- onelogin/php-saml: ^3.0
Requires (Dev)
- orchestra/testbench: ^5.0|^6.0
- orchestra/testbench-browser-kit: ^5.0|^6.0
- phpseclib/phpseclib: ^2.0.27
- phpunit/phpunit: ^8.5|^9.0
This package is auto-updated.
Last update: 2021-01-28 15:57:35 UTC
README
此包可用于快速将SAML2身份提供者的身份验证添加到您的Laravel应用程序中。因此,此包使您的Laravel应用程序成为SAML2服务提供商。
请注意,此包基于onelogin/php-saml。它与aacotroneo/laravel-saml2类似,但使用起来与laravel/socialite一样简单。它还在底层尽可能地模仿默认的Laravel身份验证。
安装
您可以通过composer安装此包
composer require aerdes/laravel-samlite
使用
安装包后,请确保设置一些环境变量。例如,当您想使用Microsoft Azure作为身份提供者时,请设置以下环境变量
SAML_IDP_AZURE_AD_IDENTIFIER=
SAML_IDP_AZURE_LOGIN_URL=
SAML_IDP_AZURE_LOGOUT_URL=
SAML_IDP_AZURE_CERT=
如果您的环境文件尚未包含变量 SAML_SP_PRIVATE_KEY
和 SAML_SP_CERT
,也请运行
php artisan saml:setup
然后,您想创建一个控制器,该控制器扩展了此包附带的身份验证控制器。以下是一个示例。
<?php namespace App\Http\Controllers; use Aerdes\LaravelSamlite\Http\Controllers\SamlController; use Aerdes\LaravelSamlite\SamlAuth; class AuthenticationController extends SamlController { public function loginUser(SamlAuth $saml_auth) { $mail = $saml_auth->getAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress')[0]; $name = $saml_auth->getAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/displayname')[0]; $user = User::where('email', $mail)->first(); if (!$user) { $user = new User; $user->name = $name; $user->email = $mail; $user->password = md5(rand(1,10000)); $user->save(); } $this->guard()->loginUsingId($user->id); } }
最后,通过放置另一个环境变量来注册您的控制器
SAML_CONTROLLER="App\Http\Controllers\AuthenticationController"
自定义
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Aerdes\LaravelSamlite\SamlServiceProvider" --tag="config"
请随意设置适当的环境变量(或编辑配置文件),以添加您喜欢的身份提供者。
测试
您还可以通过composer运行所有测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全
如果您发现任何安全相关的问题,请通过电子邮件lukas@aerdes.com联系,而不是使用问题跟踪器。
Postcardware
您可以自由使用此包,但如果它进入您的生产环境,我们非常希望您从您的家乡给我们寄一张明信片。地址是:Lukas Müller, Dirklangendwarsstraat 5, 2611HZ Delft,荷兰。
许可协议
MIT 许可协议(MIT)。更多信息请参阅 LICENSE。