Hi Sanjeewa,

Why do we need an ApplicationClassName? I assume this is to provide an
Abstraction for different Applications (or clients ) created from an
External Authorization Server. If this is the case, do we really need to
Abstract that out ? If I understood it correctly , we discussed about
having one AppInfo object to represent an Application, which will have one
or two common fields (like Consumer Key and Key Type) and then a Map to
hold all the other Authorization Server specific fields .

On Wed, Oct 15, 2014 at 5:57 AM, Sanjeewa Malalgoda <sanje...@wso2.com>
wrote:

> Hi All,
> Here is a brief update on status of External Key Management server -APIM
> integration implementation.
> We will move all External Key Management server related implementation
> classes outside from impl and other API Manager related code. So once this
> is completed we need to build this jar and put it to dropins directory and
> restart server. And they need to add required configuration to configs. IMO
> we need to begin this implementation with clear separation of external jar
> file and API Manager implementation.
>
> For the moment we will use following package name for this newly added
> package(if need we can change it in future).
> org.wso2.carbon.apimgt.ext.keymgt
> There we will have following package hierarchy
> .
> └── 1.0.0
>     ├── pom.xml
>     └── src
>         └── main
>             └── java
>                 └── org
>                     └── wso2
>                         └── carbon
>                             └── ext.keymgt
>                                 ├── APIManagerTest.java
>                                 ├── ExtKeyMgtAppInfoDTO.java
>                                 ├── ExtKeyMgtAuthenticator.java
>                                 ├── ExtKeyMgtDao.java
>                                 └── ExternalKeyManagerImpl.java
>
>
> Here ExternalKeyManagerImpl will be implementation of KeyManager interface.
> ExtKeyMgtAppInfoDTO will be data level representation of application in
> External Key Manager side. This should be implemented ApplicationInfo
> interface.
> ExtKeyMgtDao will be used to data access required to external key manager.
> ExtKeyMgtAuthenticator will be used to authenticate requests. And we will
> use it from authentication handler.
>
> Inside API MAnager we need to provide following 3 parameters as full
> qualified class names. Then we will use that class names to create
> instances when required. So we will add following configuration to key
> manager section of api-manager configuration file.
>
> <ExternalKeyManagerConfiguration>
>
> <ApplicationClassName>org.wso2.carbon.ext.keymgt.ExtKeyMgtAppInfoDTO</ApplicationClassName>
>
> <KeyManagerImplemetationClassName>org.wso2.carbon.ext.keymgt.ExternalKeyManagerImpl</KeyManagerImplemetationClassName>
>
> <KeyValidationHandlerClassName>org.wso2.carbon.ext.keymgt.ExtKeyMgtAuthenticator</KeyValidationHandlerClassName>
> <Properties>
> <Name>Value</Name>
> <Properties>
> </ExternalKeyManagerConfiguration>
>
> If external key management server required additional parameters for their
> implementation we can define those as properties in above configuration. So
> we may use that to store external server urls and other required parameters
> etc.
> Please let us know your feedback and suggestions on this. Based on that we
> can move forward and implement other required things.
>
>
> Thanks,
> Sanjeewa.
>
> On Tue, Oct 14, 2014 at 6:14 PM, Nuwan Dias <nuw...@wso2.com> wrote:
>
>> Make sure the class name is OAuthApplication, not oAuthApplication.
>>
>> On Tue, Oct 14, 2014 at 6:09 PM, Roshan Wijesena <ros...@wso2.com> wrote:
>>
>>> Hi All,
>>>
>>> After having few discussions we have decided to change our earlier
>>> proposed interface design bit and here I would like to briefly describe
>>> newly proposed interfaces and their tasks  below.
>>>
>>>  Now we have three interfaces.
>>>
>>> 1.oAuthApplication
>>>
>>> 2.KeyManager.
>>>
>>> 3.KeyValidationHandler.
>>>
>>>  Third party authorization server implementation can write there own
>>> custom classes by implementing these interfaces and gain ability to perform
>>> below tasks.
>>>
>>>  1 By implementing oAuthApplication interface Third party authorization
>>> server can introduce their own  custom attributes when they are creating an
>>> application via wso2apimanager. Sample custom attributes for example,
>>> scopes,grant_type, response_type,contacts etc..
>>>
>>>  2. By implementing KeyManager interface Third party authorization
>>> server can create/update/delete/retrieve an oAuthApplication from their
>>> server. Further KeyManager interface will support to retrieve client meta
>>> data by reading introspection endpoint. Moreover Third party authorization
>>> server implementation can hard-code their custom properties/metadata to a
>>> config file and KeyManager interface will provide a method to read that
>>> config file and generate corresponding  UIs in API manager store according
>>> to  configurations.
>>>
>>>  3. Finally,Third party authorization server can validate their
>>> tokens/subscriptions/scopes by implementing KeyValidationHandler interface.
>>>
>>> Regards
>>> Roshan.
>>>
>>> On Thu, Sep 4, 2014 at 11:14 PM, Amila De Silva <ami...@wso2.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> *Extension points for token validation*
>>>>
>>>> These changes are the planned changes.
>>>>
>>>> 1. All the extensions will be done in Key Manager - Earlier it was
>>>> suggested to allow GW to call directly to a different Authorization Server
>>>> and use the result returned by that to validate the subscription. After
>>>> some discussions it seemed that keeping GW intact and changing the validate
>>>> operation in KM would be much simple. GW will always receive a uniform
>>>> response irrespective of the Authorization Server used behind.
>>>>
>>>>
>>>> 2 Use validate operation in OAuth2TokenValidationService instead of
>>>> using APIKeyValidationService. - Behaviour of the validate operation of can
>>>> be changed by providing a custom handler. We can put the current validate
>>>> method in the default implementation,without any changes.
>>>> One expected benefit of using OAuth2TokenValidationService is,
>>>> eliminating the need to install Key Manager features on IS, when using IS
>>>> as an Authorization Server. But the suggested change alone would not make
>>>> it possible, since GW calls getAllURITemplates operation, which is only
>>>> available in APIKeyValidationService, to get the Authentication Scheme of a
>>>> resource.
>>>>
>>>
>>>
>>>
>>> --
>>> Roshan Wijesena.
>>> Senior Software Engineer-WSO2 Inc.
>>> Mobile: *+94752126789*
>>> Email: ros...@wso2.com
>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>*
>>> lean.enterprise.middleware.
>>>
>>
>>
>>
>> --
>> Nuwan Dias
>>
>> Associate Tech Lead - WSO2, Inc. http://wso2.com
>> email : nuw...@wso2.com
>> Phone : +94 777 775 729
>>
>
>
>
> --
>
> *Sanjeewa Malalgoda*
> WSO2 Inc.
> Mobile : +94713068779
>
>  <http://sanjeewamalalgoda.blogspot.com/>blog
> :http://sanjeewamalalgoda.blogspot.com/
> <http://sanjeewamalalgoda.blogspot.com/>
>
>
>


-- 
*Amila De Silva*

WSO2 Inc.
mobile :(+94) 775119302
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to