jeffersongoncalves/laravel-saml2
Laravel SAML2 package for adding SAML 2.0 single sign-on to your app. Configure an identity provider, handle SP-initiated login and logout, and map SAML assertions to Laravel users for enterprise SSO integration.
Basis of assessment: Derived solely from the v1.1.0 release notes. No source review, version matrix, or prior assessment exists, so the items below are framed as validation work rather than confirmed findings.
Architecture fit
vendor:publish --tag=saml2-migrations, and the application owns execution via php artisan migrate.migrate:rollback/migrate:status semantics, and are effectively untestable in CI pipelines that use RefreshDatabase.saml2_tenants table implies tenant-scoped IdP configuration (entity ID, ACS URL, signing certificates, metadata). That is a reasonable persistence model for a multi-tenant SAML2 service provider, but it makes tenant rows security-sensitive configuration, not ordinary application data.run_migrations reduces the package's blast radius on the host database. Net positive for architecture review and for security questionnaires.Integration feasibility
run_migrations is a breaking change to the configuration surface, but a low-severity one: it is a config key, not a public API, and the upgrade path does not require action.Technical risk
.env/config/saml2.php that still sets run_migrations will simply stop migrating. The failure surfaces as a missing table or missing column at authentication time — that is, as a login outage, not a deploy failure. This is the primary risk in the release.saml2_tenants that only apply to fresh installs.run_migrations, operators will set a dead key and assume migrations ran.saml2-migrations is a shared namespace across all vendor packages. Confirm the tag is unique and that re-publishing over an existing published stub prompts rather than silently overwrites local edits.Key questions
saml2_tenants, and are all changes additive?down() method, and is rollback meaningful for an auth-critical table?about command output) when the tenants table is absent or stale, rather than failing at first login?run_migrations removed from the published config stub and from all documentation, or only from code?Stack fit
NotBefore/NotOnOrAfter windows), and certificate rotation handling. These dominate operational risk far more than the migration mechanics.Migration path
vendor:publish --tag=saml2-migrations → artisan migrate. Add both to the environment bootstrap and to the test suite setup.^1.1 and record the installed version alongside the published stub, since the stub is now a copy the team maintains rather than a package-owned artifact.Compatibility
Sequencing
down() behavior, and index coverage on the tenant lookup column.migrate on a single node / leader in the deploy, not concurrently across replicas. Laravel's migration lock is only advisory per connection.config:clear / config:cache after deploy so any config stub changes take effect.run_migrations and document the publish step.Maintenance
Support
.env template, or infrastructure-as-code value referencing run_migrations becomes misleading. Audit and remove.Scaling
saml2_tenants is small and read-heavy: one read per authentication handshake. Cache tenant metadata in the application cache layer (Redis) with explicit invalidation on tenant update; do not hit the database on every SSO request if login volume is meaningful.Failure modes
run_migrations silently stops migrating; the first symptom is a failed login for all users. Mitigate with a post-deploy schema assertion in the smoke test.config:cache after publishing.down() drops the tenants table, a rollback during an auth incident destroys configuration. Confirm behavior and prefer forward-fix over rollback for this table.Ramp-up
How can I help you explore Laravel packages today?