On Wed, May 31, 2017 at 10:38 AM, Ruwan Abeykoon <ruw...@wso2.com> wrote:

>
> Hi Prabath,
>
>
>> Please check whether my understanding is correct based on the following
>> mail..
>>
>> 1. We define set of ACR values at the framework level - which are
>> agnostic to the inbound protocols.
>> 2. Each inbound protocol (OIDC, SAML) - can define their own ACR values -
>> but must be mapped to the ACR values defined at the framework level.
>> 3. Each ACR value will represent a set of authenticators (or steps) - I
>> guess your Table-2 is representing that.
>>
> Yes.
>
>
>
>> 1. If you take OIDC as an example, you can send multiple acr_values in
>> the request (space separated - and by preference). I would suggest the
>> protocol specific component will pick one out of that - and will pass the
>> mapped ACR value to the framework - and the same will be included in the
>> response as the value of the acr parameter.
>> 2. Once the user is authenticated, the framework will return back the
>> authenticators used in each step. Once again the protocol specific
>> component has to match these to corresponding AMR values and send back to
>> the service provider.
>>
>> Few suggestions..
>>
>> 1. IMO we should let each service provider define multiple authentication
>> chains - and one would be the default one (so this will not break the
>> current behavior).
>> 2. Each chain can be associated with one or more ACR values.
>> 3. Right now the authentication chain corresponding to a service provider
>> is loaded by its name. But with this design it will be by the name and the
>> ACR value.
>>
>
> I will change the architecture with above suggestions.
>

Yes +1 above changes.   IMO;  If we are going to achieve actual adaptive
authentication, we may need to specially consider about the end user.
First end user must be validated & based on the user, we may need to decide
the authenticators & also the based on the first steps,  second step must
be decided.

However;  I assume that still we have above interface to extend & decide
the given authentication chains in customer manner (without the SP given
ACR)

Thanks,
Asela.


>
>
>>
>> This will require minimal changes at the framework level.
>>
>> Also - let's keep adaptive authentication out of this. We can address
>> that separately - and I don't think we need to have it for IS 5.5.0.
>>
>> Noted. I will create new mail thread specific to ACR and AMR and continue
> discussion with updated architecture.
>
> Cheers,
> Ruwan
>
>
> On Wed, May 31, 2017 at 3:59 AM, Prabath Siriwardena <prab...@wso2.com>
> wrote:
>
>> Hi Ruwan,
>>
>> Please check whether my understanding is correct based on the following
>> mail..
>>
>> 1. We define set of ACR values at the framework level - which are
>> agnostic to the inbound protocols.
>> 2. Each inbound protocol (OIDC, SAML) - can define their own ACR values -
>> but must be mapped to the ACR values defined at the framework level.
>> 3. Each ACR value will represent a set of authenticators (or steps) - I
>> guess your Table-2 is representing that.
>>
> Few other things I assume we should be doing (not clearly mentioned in the
>> mail)..
>>
>>
>
>> 1. If you take OIDC as an example, you can send multiple acr_values in
>> the request (space separated - and by preference). I would suggest the
>> protocol specific component will pick one out of that - and will pass the
>> mapped ACR value to the framework - and the same will be included in the
>> response as the value of the acr parameter.
>> 2. Once the user is authenticated, the framework will return back the
>> authenticators used in each step. Once again the protocol specific
>> component has to match these to corresponding AMR values and send back to
>> the service provider.
>>
>> Few suggestions..
>>
>> 1. IMO we should let each service provider define multiple authentication
>> chains - and one would be the default one (so this will not break the
>> current behavior).
>> 2. Each chain can be associated with one or more ACR values.
>> 3. Right now the authentication chain corresponding to a service provider
>> is loaded by its name. But with this design it will be by the name and the
>> ACR value.
>>
>> This will require minimal changes at the framework level.
>>
>> Also - let's keep adaptive authentication out of this. We can address
>> that separately - and I don't think we need to have it for IS 5.5.0.
>>
>> Thanks & regards,
>> -Prabath
>>
>>
>> On Thu, May 25, 2017 at 12:34 AM, Ruwan Abeykoon <ruw...@wso2.com> wrote:
>>
>>> Hi All,
>>> I plan to add the Adaptive authentication on IS. Please provide your
>>> feedback on the architecture bellow.
>>>
>>> References:
>>> http://openid.net/specs/openid-connect-core-1_0.html#Authori
>>> zationEndpoint
>>> https://tools.ietf.org/html/draft-ietf-oauth-amr-values-02
>>>
>>>
>>> Architecture
>>>
>>> *   <https://www.draw.io/#G0B0bx735ZWbanTEZRQW8zcGFsanc> Figure 1:
>>> Framework and Endpoints  Authentication Context Class Reference(ACR)*
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *Different protocols may support different values for ACR. Hence We
>>> provide two levels of mapping from protocol based ACR to internal
>>> authenticators.  1. Protocol ACR values to Internal ACR valuesThis is a map
>>> between external(protocol or customer specific) ACR values to internal
>>> representation. This is a key-value pair. Both the key and value are
>>> arbitrary Strings. 1. Internal ACR values vs supported Authenticators
>>> table. This is a table specifying which “internal ACR” are supported by
>>> each “Authenticator”.The Authenticator may be internal authenticator or a
>>> federated authenticator. This may be a custom built authenticator or may be
>>> installed as a connector. These two information will be added to
>>> “identity.xml”, as XML Info-set. These configurations are per server, and
>>> can not be changed per tenant
>>> basis.  OAuthexternalinternal pwdpassword otpsmsotp smssmsotp hwkfido Table
>>> 1: ACR mapping based on protocol Note that the “external” value in the
>>> above table may be a URI.E.g.
>>> urn:oasis:names:tc:SAML:2.0:ac:classes:Password
>>>  urn:oasis:names:tc:SAML:2.0:ac:classes:X509
>>>  urn:federation:authentication:windows
>>>  urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos
>>>   Autnenticator     basiciwafidooauth-bearersamlssopasswordY   Ysmsotp     
>>> fido  Y                     Table
>>> 2: ACR mapping internal-ACR to Authenticator  *Implementation
>>>
>>> It is the responsibility of the relevant endpoint to decide if ACR is
>>> requested at the protocol level and add them into AuthenticatonContext.
>>> AutnenticationContext will be enhanced by adding new methods.
>>>
>>>
>>>
>>> public void setAcr(List<String> acrRequested);
>>>
>>> public void setAcrRule(AcrRule acrRule)
>>>
>>>
>>>
>>> enum AcrRule {
>>>
>>>   EXACT,
>>>
>>>   MINIMUM,
>>>
>>>   MAXIMUM,
>>>
>>>   BETTER
>>>
>>> }
>>>
>>>
>>> As of IS 5.3.0, Authentication Sequence is built via 
>>> FileBasedConfigurationBuilder
>>> And UIBasedConfigurationBuilder. A new AdaptiveConfigurationBuilder
>>> will be added to wrap the calls to both of the previous builders. The
>>> Adaptive builder will examine the Authentication Context to see if there
>>> are any ACR requested. If requested, the original sequence will be modified
>>> according to requested ACR list.
>>>
>>>
>>>
>>> The “AdaptiveConfigurationBuilder” will use an extension mechanism,
>>> which can be supplied by OSGI bundle if needed, for any change of the
>>> default behaviour. For example this evaluator can be extended with
>>> analytics to decide if the current login attempt is suspicious and to
>>> select next level of security.
>>>
>>>
>>> public interface AdaptiveAuthenticationEvaluator {
>>>
>>>
>>>
>>>   /**
>>>
>>>    * Evaluates if this step is applicable on the current authentication
>>> context.
>>>
>>> ..
>>>
>>>    */
>>>
>>>   boolean isApplicable(StepConfig stepConfig, AuthenticationContext
>>> context);
>>>
>>> }
>>>
>>>
>>>
>>> The other aspects of framework remains architecturally unchanged as the
>>> framework relies on the bre-bult Sequence to perform authentication
>>> completion.
>>>
>>>
>>>
>>>
>>>
>>> Cheers,
>>>
>>> Ruwan
>>>
>>>
>>> --
>>>
>>> *Ruwan Abeykoon*
>>> *Associate Director/Architect**,*
>>> *WSO2, Inc. http://wso2.com <https://wso2.com/signature> *
>>> *lean.enterprise.middleware.*
>>>
>>>
>>
>>
>> --
>> Thanks & Regards,
>> Prabath
>>
>> Twitter : @prabath
>> LinkedIn : http://www.linkedin.com/in/prabathsiriwardena
>>
>> Mobile : +1 650 625 7950 <(650)%20625-7950>
>>
>> http://facilelogin.com
>>
>
>
>
> --
>
> *Ruwan Abeykoon*
> *Associate Director/Architect**,*
> *WSO2, Inc. http://wso2.com <https://wso2.com/signature> *
> *lean.enterprise.middleware.*
>
>


-- 
Thanks & Regards,
Asela

ATL
Mobile : +94 777 625 933
             +358 449 228 979

http://soasecurity.org/
http://xacmlinfo.org/
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to