Hi,

This feature includes saving the attributes provided at authentication time
to the user profile so the mandatory attributes will be present in the user
profile from the next time user tries to access the application. At the
moment, attributes are saved only for the local users.

If the user is coming from a federated identity provider and the federated
idp does not send any of the mandatory attributes, user will be prompted to
provide them during the authentication. These provided attributes will be
sent to the application but not saved. Therefore if the user tries to
access the application again, he might have to provide the same attributes
(if idp is not sending them).

If JIT provisioning is enabled for this identity provider, this federated
user will be provisioned to a local user store where we can update and save
provided attributes. But when this federated user tries to access the
application again, unless the federated user has an association with a
local account, handlePostAuthentication() method does not read attributes
from a local account, resulting in user having to provide attributes again.

So if we need to avoid prompting for same attributes from the same user
(provisioned user) again and again we can do following,

1. For the JIT provisioned users, check the local profile for missing
attributes before requesting them from user.
2. Automatically associate federated user with the provisioned user at the
time of provisioning.

Any comments about the current issue and above two suggestions and/or new
suggestions are highly appreciated.

thanks and best regards
Nuwandi

On Wed, Oct 26, 2016 at 3:21 PM, Nuwandi Wickramasinghe <[email protected]>
wrote:

> Hi all,
>
> This new feature, provided with IS 5.3.0, allows to define mandatory
> attributes for an application during the Service Provider configuration
> time. When a user tries to access the application, during authentication,
> IS will check whether the user has mandatory attributes requested by the
> application. If any mandatory attribute is missing, IS will prompt a page
> where user can provide mandatory claims for that application.
>
> Current implementation is to check the missing mandatory claims at the
> authentication framework as a post authentication task.
> *DefaultStepBasedSequenceHandler* handles the authentication from the
> steps configured for the application. Once all the steps are successfully
> completed, *handlePostAuthentication() *method is fired. This method gets
> the user attributes from attribute step and adds them to
> *AuthenticatedUser* object which will be used to send user details to the
> application. Handling of missing mandatory attributes, is implemented as a
> post authentication extension. Post authentication extension is called at
> the end of *handlePostAuthentication().*
>
> After post authentication is done, following additional steps are
> implemented for the feature.
>
> 1. Post authentication extension compares mandatory attributes defined in
> Service Provider configuration with the user attributes found in
> AuthenticatedUser object. ( If no attributes are missing, it proceeds with
> Authentication Complete state)
>
> (If one or more attributes are missing)
> 2. Authentication and sequence is set to "Incomplete" state. A property is
> set in Authentication Context to identify that post authentication
> extension triggered an action.
>
> 3. User is redirected to a page which requests missing attributes.
>
> 4. Once user submits values in the page, a post request is made to the
> authentication framework (commonauth servlet) with attribute values and
> context identifier (sent from the framework).
>
> 5. Authentication framework identifies the authenticated context from the
> context identifier. Framework will skip authentication steps since it's
> already authenticated and set the sequence state to "completed" and  then
> call *handlePostAuthentication().*
>
> 6. In *handlePostAuthentication()*, it checks the property set in step 2
> and identifies this as the response of post authentication extension task
> therefore calls the post authentication extension.
>
> 7. Response handler in post authentication extension, reads the attributes
> from request, sets them as user attributes in AuthenticatedUser object and
> completes the authentication. So application will receive all the mandatory
> attributes for that.
>
> this is the current implementation of this feature.
>
> thank you
> Nuwandi
>
> --
>
> Best Regards,
>
> Nuwandi Wickramasinghe
>
> Software Engineer
>
> WSO2 Inc.
>
> Web : http://wso2.com
>
> Mobile : 0719214873
>



-- 

Best Regards,

Nuwandi Wickramasinghe

Software Engineer

WSO2 Inc.

Web : http://wso2.com

Mobile : 0719214873
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to