v1.0.0
First stable release of the silverstripe/saml
module, which partially replaces the silverstripe/activedirectory
module for SilverStripe 4.
Breaking API Changes:
- Split
silverstripe/activedirectory
module intosilverstripe/saml
andsilverstripe/ldap
modules - Upgrade modules to support SilverStripe 4
- Remove
SAMLSecurityExtension
and replace with configurableSAMLMiddleware
to enforce SSO on all website requests - Stop
SAMLAuthenticator::authenticate()
from redirecting users to the IdP. This causes all kinds of issues (e.g. in cases where there are multiple authenticators) - Stop
SAMLLoginHandler
from extendingLoginHandler
, because it only deals with login - Move the SAML redirection from
SAMLAuthenticator::authenticate()
toSAMLHelper::redirect()
so that it can be called by bothSAMLLoginHandler
andSAMLMiddleware
Non-breaking API Changes:
- Update module to work as a vendormodule so it's not installed in web-root
- Update
onelogin/php-saml
requirement to the latestv3.0.0
stable version which allows support for PHP 7.2 (no longer relies on the deprecatedmcrypt
PHP extension)
New features (since module split):
- Add new
authn_contexts
array to allow developers to specify specific AuthN context classes that can be used for SSO. This helps when dealing with ADFS servers that enforce a specific ordering that places Password authentication ahead of windows, meaning that users are forced to login when reaching ADFS instead of being logged in automatically.
Bug Fixes:
- Completely re-write the
SAMLController::acs()
method so that it actually works, and gracefully handles SAML authentication errors - Ensure a
Member
is written to the DB, and use the newIdentityStore
API to correctly log users in
Documentation:
- Update documentation to remove references to AD sync (which is part of the
silverstripe/ldap
module) - Generally tidy up developer documentation