You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 14, 2025. It is now read-only.
This is a draft PR for the next major release. The goal is to improve the design of the solution, giving developers more control and flexibility, as well as providing more basic functionality "out-of-the-box".
Plans
Add custom resolves for more control over identity provider resolution, config resolution, etc.
Add optional solution for logging in users
Add a morph relation to associate IdP with related application entities (successor of "key")
Add a new table for tracking SAML logins
Rewrite tests so they actually test stuff
Add support for multiple certificates
Improve console commands
Improve README
Describe upgrade guide
Key changes
Minimum PHP version — 7.3
Minimum Laravel version — 8
Database changes
Table saml2_tenants has been renamed to saml2_identity_providers
Table saml2_identity_providers now has an optional morph relation called "tenant" that can be associated with an application entity upon IdP creation
Table saml2_sessions has been added to track all logins (see Login & Tracking below)
Custom resolvers
Added "resolvers" that can be easily customised:
IdentityProviderResolver implements logic for resolving identity provider based on the request route
ConfigResolver implements logic for resolving IdP/SP config based on the resolved IdP model
Login & Tracking
To provide basic functionality out of the box for smaller application, authorization logic has been implemented, specifically:
User metadata resolution
Login/signup functionality
This is not designed for production needs, just an example on how login/signup can be implemented. For larger apps having custom logic is inevitable.
Nice PR.
But why not abandon all non-supported Laravel versions?
Laravel 8 is from 2020 and php 7.3 from 2018. Both unsupported and not getting security fixes.
At the moment Laravel 10 and php 8.1 is the minimum versions still being maintained.
Nice PR. But why not abandon all non-supported Laravel versions? Laravel 8 is from 2020 and php 7.3 from 2018. Both unsupported and not getting security fixes. At the moment Laravel 10 and php 8.1 is the minimum versions still being maintained.
Good point. My intention was to support slightly older versions since I'm aware this project is also used on bigger projects with older versions of Laravel & PHP. I like the idea of deprecating further, starting from L9 & PHP 8.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
None yet
6 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is a draft PR for the next major release. The goal is to improve the design of the solution, giving developers more control and flexibility, as well as providing more basic functionality "out-of-the-box".
Plans
Key changes
Database changes
saml2_tenantshas been renamed tosaml2_identity_providerssaml2_identity_providersnow has an optional morph relation called "tenant" that can be associated with an application entity upon IdP creationsaml2_sessionshas been added to track all logins (see Login & Tracking below)Custom resolvers
IdentityProviderResolverimplements logic for resolving identity provider based on the request routeConfigResolverimplements logic for resolving IdP/SP config based on the resolved IdP modelLogin & Tracking
To provide basic functionality out of the box for smaller application, authorization logic has been implemented, specifically:
This is not designed for production needs, just an example on how login/signup can be implemented. For larger apps having custom logic is inevitable.