Hi Maduranga,
Yes, we will have 2 objects(authenticationOptions and authenticatorParams)
inside the 2nd parameter. I have done the implementation to support this
template,
executeStep(<stepNo>, { authenticationOptions : <authenticationOptions>,
*authenticatorParams : {local : <authenticatorName> : { <key> : <value>},*
*
federated : <idpName> : { <key> : <value> }*
},
{onSuccess: function(){<someFunction>}, onFail: function(){<someFunction>}})
Here is the sample,
function onInitialRequest(context) {
executeStep(1,
{
authenticatorParams: {
local : {
"BasicAuthenticator" :{
"userName" : "alex",
"domain" : "localhost"
},
"SMSOTP" :{ "foo" : "abc"}
},
federated : {
"FacebookIdp" : { "foo" : "xyz"}
}
},
{
onSuccess: function (context) {
executeStep(2);
}
}
);
}
thanks,
On Mon, Jun 18, 2018 at 9:43 AM Maduranga Siriwardena <[email protected]>
wrote:
> Hi Sagara,
>
> I think "foo" : "alex" is a parameter passed to the authenticator. And
> yes, if we can provide a little bit meaningful example it would be easier
> to understand.
>
> @Senthalan Kanagalingam <[email protected]> , I was under the impression
> that we are providing the parameters for the authenticators as a different
> JSON object, rather than using the same authenticationOptions object which
> is intended to filter the authenticators prompted in the step. Have we
> finalized this? I think if we can provide 2 objects named "stepOptions" and
> "authenticatorParams" (we can decide the names) it would be better than
> using the same object.
>
> Thanks,
>
> On Fri, Jun 15, 2018 at 7:20 PM Sagara Gunathunga <[email protected]> wrote:
>
>>
>> Do we have authenticator with "foo" : "alex" ? when you provide sample
>> please make sure to provide sample closer to real world, please provide a
>> real example.
>>
>> Thanks !
>>
>> On Fri, Jun 15, 2018 at 6:56 PM, Senthalan Kanagalingam <
>> [email protected]> wrote:
>>
>>> Hi all,
>>>
>>> We are having an update in the structure of the basic syntax. Here is a
>>> sample,
>>>
>>> function onInitialRequest(context) {
>>> executeStep(1,
>>> {
>>> authenticationOptions: {
>>> local : {
>>> "BasicAuthenticator" :{
>>> "foo" : "alex",
>>> "domain" : "localhost"
>>> },
>>> "SMSOTP" :{ "foo" : "abc"}
>>> },
>>> federated : {
>>> "FacebookIdp" : { "foo" : "xyz"}
>>> }
>>> },
>>> {
>>> onSuccess: function (context) {
>>> executeStep(2);
>>> }
>>> }
>>> );
>>> }
>>>
>>> We can have 2 objects inside "authenticationOptions". In "local", we can
>>> specify the authenticator identifier and map of parameters (key-value
>>> pair). And in "federated", we can specify the parameter map for the
>>> federated identity provider.
>>>
>>> And place note that the value of the parameter has to be String.
>>>
>>> thanks,
>>>
>>> On Wed, Jun 13, 2018 at 6:49 PM Senthalan Kanagalingam <
>>> [email protected]> wrote:
>>>
>>>> [update]
>>>>
>>>> hi all,
>>>>
>>>> We had an offline discussion and decided to change the authentication
>>>> script syntax. We will be having an extra object in the 2nd parameter in
>>>> the executeStep which is introduced to filter the authenticators[1].
>>>> There we can specify the authenticator and parameter
>>>>
>>>> executeStep(<stepNo>, { authenticationOptions : <listOfAuthenticators>,
>>>> *authenticatorParams : [ {authenticator : <authenticatorName>,*
>>>>
>>>> *params : { <paramKey> : <paranValue> }*
>>>>
>>>> *]*,
>>>>
>>>> {onSuccess: function(){<someFunction>}, onFail: function(){<
>>>> someFunction>}})
>>>>
>>>>
>>>>
>>>> An example will be,
>>>>
>>>> function onInitialRequest (context) {
>>>> executeStep(1 ,{ authenticationOptions : [{ authenticator : "Sample
>>>> HardwareKey Authenticator"},{ idp : "google" }],
>>>> authenticatorParams : [{ authenticator : "Sample HardwareKey
>>>> Authenticator",
>>>> params : {
>>>> "foo" : "xyz"
>>>> }},
>>>> { idp : "google",
>>>> params : {
>>>> "foo" : "abc"
>>>> }}]
>>>> },{
>>>> onSuccess : function(context) {
>>>> executeStep(2);
>>>> }
>>>> });
>>>> }
>>>>
>>>> In authenticator (java code), we can access the parameter map defined
>>>> by the script for that particular authenticator using getRuntimeParams()
>>>> method.
>>>>
>>>> Please share your idea about this new syntax change and the method name.
>>>>
>>>>
>>>> [1] - "[IS] Filtering authentication options of a step by script"
>>>>
>>>>
>>>> On Tue, Jun 12, 2018 at 5:32 PM Senthalan Kanagalingam <
>>>> [email protected]> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> With an offline discussion we decided to change the definition from
>>>>> parameter to property.
>>>>>
>>>>> context.*property*.foo = "xyz";
>>>>> and/or
>>>>> context.*property*['foo'] = "xyz";
>>>>>
>>>>> So in the authenticator we can access using getScriptProperty("foo");
>>>>>
>>>>> thanks,
>>>>> Senthalan.
>>>>>
>>>>> On Mon, Jun 11, 2018 at 3:45 PM Senthalan Kanagalingam <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Pulasthi,
>>>>>>
>>>>>> On Mon, Jun 11, 2018 at 11:36 AM Pulasthi Mahawithana <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Senthalan,
>>>>>>>
>>>>>>> On Mon, Jun 11, 2018 at 11:10 AM Senthalan Kanagalingam <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I am working on the $subject. The purpose of this implementation is
>>>>>>>> to have application-specific configurations for authenticators.
>>>>>>>> Currently,
>>>>>>>> we can static configurations for the authenticators in the
>>>>>>>> application-authentication.xml file.
>>>>>>>>
>>>>>>>> In the script, we can set the parameters as follow, If we want to
>>>>>>>> pass the foo to the authenticator,
>>>>>>>>
>>>>>>>> context.foo = "xyz";
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>> Shall we change this to following to avoid any conflicts with
>>>>>>> existing context objects?
>>>>>>>
>>>>>>> context.parameter.foo = "xyz";
>>>>>>> and/or
>>>>>>> context.parameter['foo'] = "xyz";
>>>>>>>
>>>>>>
>>>>>> + 1. I have implemented with the suggestions.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> We can get back the value in the authenticators( executed after
>>>>>>>> this definition) by calling context.getScriptParameter("foo")
>>>>>>>>
>>>>>>>> I have developed a POC for this. I have created a new map in the
>>>>>>>> "AuthenticationContext" to save these parameters.
>>>>>>>>
>>>>>>>> Please share your thoughts about this implementation.
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> Senthalan.
>>>>>>>>
>>>>>>>>
>>>>>>>> *Senthalan Kanagalingam*
>>>>>>>> *Software Engineer - WSO2 Inc.*
>>>>>>>> *Mobile : +94 (0) 77 18 77 466*
>>>>>>>> <http://wso2.com/signature>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Pulasthi Mahawithana*
>>>>>>> Associate Technical Lead
>>>>>>> WSO2 Inc., http://wso2.com/
>>>>>>> Mobile: +94-71-5179022
>>>>>>> Blog: https://medium.com/@pulasthi7/
>>>>>>>
>>>>>>> <https://wso2.com/signature>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> *Senthalan Kanagalingam*
>>>>>> *Software Engineer - WSO2 Inc.*
>>>>>> *Mobile : +94 (0) 77 18 77 466*
>>>>>> <http://wso2.com/signature>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> *Senthalan Kanagalingam*
>>>>> *Software Engineer - WSO2 Inc.*
>>>>> *Mobile : +94 (0) 77 18 77 466*
>>>>> <http://wso2.com/signature>
>>>>>
>>>>
>>>>
>>>> --
>>>>
>>>> *Senthalan Kanagalingam*
>>>> *Software Engineer - WSO2 Inc.*
>>>> *Mobile : +94 (0) 77 18 77 466*
>>>> <http://wso2.com/signature>
>>>>
>>>
>>>
>>> --
>>>
>>> *Senthalan Kanagalingam*
>>> *Software Engineer - WSO2 Inc.*
>>> *Mobile : +94 (0) 77 18 77 466*
>>> <http://wso2.com/signature>
>>>
>>
>>
>>
>> --
>> Sagara Gunathunga
>>
>> Director; WSO2, Inc.; http://wso2.com
>> Linkedin; http://www.linkedin.com/in/ssagara
>> Blog ; http://ssagara.blogspot.com
>> Mobile : +9471 <+94%2071%20565%209887>2149951
>>
>>
>
> --
> Maduranga Siriwardena
> Senior Software Engineer
> WSO2 Inc; http://wso2.com/
>
> Email: [email protected]
> Mobile: +94718990591
> Blog: *https://madurangasiriwardena.wordpress.com/
> <https://madurangasiriwardena.wordpress.com/>*
> <http://wso2.com/signature>
>
--
*Senthalan Kanagalingam*
*Software Engineer - WSO2 Inc.*
*Mobile : +94 (0) 77 18 77 466*
<http://wso2.com/signature>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture