Download the PHP package hslavich/oneloginsaml-bundle without Composer
On this page you can find all versions of the php package hslavich/oneloginsaml-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package oneloginsaml-bundle
OneloginSamlBundle
OneLogin SAML Bundle for Symfony. (https://github.com/onelogin/php-saml)
This bundle supports Symfony 5 and earlier.
For newer Symfony versions you can use nbgrp/onelogin-saml-bundle.
Installation
Install with composer
Enable the bundle in config/bundles.php
(if you don't use Symfony Flex)
Configuration
Configure SAML metadata in config/packages/hslavich_onelogin_saml.yaml
. Check https://github.com/onelogin/php-saml#settings for more info.
If you don't want to set contactPerson or organization, don't add those parameters instead of leaving them blank.
Configure firewall and user provider in config/packages/security.yaml
Edit your config/routing
or config/routes.yaml
depending on your Symfony version.
Inject SAML attributes into User object (Optional)
Your user class must implement SamlUserInterface
Then you can get attributes from user object
Integration with classic login form
You can integrate SAML authentication with traditional login form by editing your security.yaml
:
Then you can add a link to route saml_login
in your login page in order to start SAML sign on.
Just-in-time user provisioning (optional)
It's possible to have a new user provisioned based off the received SAML attributes when the user provider cannot find a user.
Edit firewall settings in security.yaml
:
In order for a user to be provisioned, you must use a user provider that throws
UserNotFoundException
(e.g.EntityUserProvider
as used in the example above). TheSamlUserProvider
does not throw this exception which will cause an empty user to be returned when a matching user cannot be found.
Create the user factory service editing services.yaml
:
Fields with '$' references to SAML attribute value.
Or you can create your own User Factory that implements SamlUserFactoryInterface
For versions prior to 2.1 the
createUser
signature was different:
Persist user on creation and SAML attributes injection (Optional)
Symfony EventDispatcher component and Doctrine ORM are required.
Edit firewall settings in security.yaml
:
To use non-default entity manager specify it name by hslavich_onelogin_saml.entityManagerName
config option.
User persistence is performing by event listeners Hslavich\OneloginSamlBundle\EventListener\User\UserCreatedListener
and Hslavich\OneloginSamlBundle\EventListener\User\UserModifiedListener
that can be decorated if necessary to override
the default behavior. Also, you can make your own listeners for Hslavich\OneloginSamlBundle\Event\UserCreatedEvent
and Hslavich\OneloginSamlBundle\Event\UserModifiedEvent
events.
All versions of oneloginsaml-bundle with dependencies
symfony/dependency-injection Version ^5.4
symfony/deprecation-contracts Version ^2.1 | ^3
symfony/event-dispatcher-contracts Version ^2.4
symfony/framework-bundle Version ^5.4
symfony/security-bundle Version ^5.4