Skip to content

Commit 62124eb

Browse files
Merge pull request #138 from crbanman/improve-just-in-time-docs
Improve the "Just-in-time" user provisioning documentation
2 parents 332df1d + f5887ea commit 62124eb

1 file changed

Lines changed: 27 additions & 11 deletions

File tree

README.md

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -204,25 +204,41 @@ Then you can add a link to route `saml_login` in your login page in order to sta
204204
Just-in-time user provisioning (optional)
205205
-----------------------------------------
206206

207-
When user is not found by user provider, you can set a user factory to create a new user mapping SAML attributes.
207+
It's possible to have a new user provisioned based off the received SAML attributes when the user provider cannot find a
208+
user.
208209

209210
Edit firewall settings in `security.yml`:
210211

211212
``` yml
212-
firewalls:
213-
enable_authenticator_manager: true
213+
security:
214+
# ...
214215
215-
default:
216-
saml:
217-
username_attribute: uid
218-
# User factory service
219-
user_factory: my_user_factory
220-
# Persist new user. Doctrine is required.
221-
persist_user: true
222-
logout:
216+
providers:
217+
saml_provider:
218+
# Loads user from user repository
219+
entity:
220+
class: AppBundle\Entity\User
221+
property: username
222+
223+
firewalls:
224+
enable_authenticator_manager: true
225+
226+
default:
227+
provider: saml_provider
228+
saml:
229+
username_attribute: uid
230+
# User factory service
231+
user_factory: my_user_factory
232+
# Persist new user. Doctrine is required.
233+
persist_user: true
234+
logout:
223235
path: saml_logout
224236
```
225237

238+
> In order for the user to be persisted, you must use a user provider that throws `UsernameNotFoundException` (e.g.
239+
> `EntityUserProvider` as used in the example above). The `SamlUserProvider` does not throw this exception which will
240+
> cause an empty user to be returned when a matching user cannot be found.
241+
226242
Create the user factory service editing `services.yml`:
227243

228244
``` yml

0 commit comments

Comments
 (0)