arietimmerman / laravel-saml
Laravel Package for creating a SAML identity provider
v0.5.6
2022-11-03 20:26 UTC
Requires
- php: >=7.0.0
- illuminate/auth: ^6.0|^7.0|^8.0|^9.0
- illuminate/console: ^6.0|^7.0|^8.0|^9.0
- illuminate/container: ^6.0|^7.0|^8.0|^9.0
- illuminate/contracts: ^6.0|^7.0|^8.0|^9.0
- illuminate/database: ^6.0|^7.0|^8.0|^9.0
- illuminate/encryption: ^6.0|^7.0|^8.0|^9.0
- illuminate/hashing: ^6.0|^7.0|^8.0|^9.0
- illuminate/http: ^6.0|^7.0|^8.0|^9.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0
- robrichards/xmlseclibs: ^3.0
- simplesamlphp/saml2: ^4.3
- symfony/workflow: ^6.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-11-30 01:56:57 UTC
README
SAML for Laravel
This is an SAML Identity Provider written in PHP with Laravel, built on top of simplesamlphp/simplesamlphp and some pieces of adactive-sas/saml2-bridge-bundle
.
It is used by idaas.nl: (not) yet another identity as a service platform.
This library - especially the documentation - is work in progress
Installation
composer require arietimmerman/laravel-saml
Generate a keypair.
openssl req -new -x509 -days 3652 -nodes -out public.key -keyout private.key
Exclude url from csrf protection
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'/saml/v2/*'
];
}
In your routes/web.php
include the following.
ArieTimmerman\Laravel\SAML\RouteProvider::routes();
On login, do something like the following
Helper::getSAMLStateOrFail()->setAuthnContext(Constants::AC_KERBEROS);
Helper::saveSAMLState();
Redirect to the following
'http://www.ice.test/saml/v2/continue/' . Helper::getSAMLStateOrFail()->id;
Example request:
http://samlidp.dev/saml/v2/login?SAMLRequest=...