Laravel Saml2
Laravel Saml2 stats
- Downloads
- 550.4K
- Stars
- 153
- Open Issues
- 35
- Forks
- 53
SAML2 Service Provider integration to your Laravel 5.4+ application, based on OneLogin toolkit
Laravel SAML2 Service Provider Package
The Laravel SAML2 package is designed to transform your Laravel application into a SAML-compliant Service Provider (SP), facilitating Single Sign-On (SSO) via the SAML2 protocol. Leveraging the OneLogin PHP-SAML toolkit, this package supports integration with multiple Identity Providers (IdPs), making it an ideal choice for enterprise-level applications requiring robust authentication mechanisms.
Key Features
- Multi-IdP Support: Manage and authenticate against multiple identity providers.
- Automatic Service Provider Registration: For Laravel 5.5+, service providers are auto-registered.
- Customizable SAML Configuration: Extensive configuration options inherited from the OneLogin toolkit.
- Tenant Management: Unique system for handling multiple IdPs using tenant entities.
- Event Handling: Easy to use event listeners for SAML authentication events.
- Pre-configured Routes: Built-in routes for SAML actions which can be customized or disabled.
- SSO Friendly Links: Helper functions to generate SSO-compatible links, ideal for email integration.
Installation and Configuration
-
Installation:
composer require 24slides/laravel-saml2 -
Publish Configuration:
php artisan vendor:publish --provider="Slides\Saml2\ServiceProvider" -
Database Migration:
php artisan migrate -
Configuration: Modify the
saml2.phpin yourapp/configdirectory following the detailed instructions within the file, pulling settings from the OneLogin toolkit documentation as needed. -
Middleware Setup: Define necessary middleware for SAML routes in
app/Http/Kernel.php.
Usage
- Authentication: Add listeners for
Slides\Saml2\Events\SignedInandSlides\Saml2\Events\SignedOutto handle user sessions. - Tenant Management: Use artisan commands like
artisan saml2:create-tenantto manage SAML tenants. - Logging Out: Implement SAML-compliant logout mechanisms that communicate with the IdP.
Example Setup
An example setup with Azure AD is provided, detailing how to retrieve IdP credentials, create a tenant, and configure your IdP using the generated settings.
Testing and Security
- Run Tests: Execute
vendor/bin/phpunitwithin the package directory. - Security Issues: Report any security concerns via the provided email address, not through public issue trackers.
This package is essential for developers looking to implement SAML-based SSO in their Laravel applications, providing a comprehensive toolkit for managing authentication across multiple identity providers efficiently.