Hi Colin, On Mon, Apr 6, 2015 at 8:09 PM, Colin Roy-Ehri <[email protected]> wrote:
> Hi, > > Adding an additional server profile adds additional complexity, and > separating the config files may help clarify this. I highly recommend > extensive comments describing the different configurations within the new > xml file. Also, adding comments to the renamed api-validator section of > the api-manager file would also be helpful. > +1. Would have to specifically mention about the changes in official docs. > > In this new model, where would the authorize, revoke, and token gateway > APIs point? > These APIs should point to Key Manager. When using a third party Key Manager, these APIs need to be changed providing the correct OAuth endpoints. In the default case, APIs will point to endpoints in oauth2.war. > > > Thanks, > Colin Roy-Ehri > Software Engineer > *WSO2, Inc. : wso2.com <http://wso2.com/>* > *Mobile* : 812-219-6517 > > On Mon, Apr 6, 2015 at 5:14 AM, Amila De Silva <[email protected]> wrote: > >> Hi All, >> >> Objective of this mail is to highlight the changes that needs to be done >> in server profiles and in configuration files while implementing this >> feature. >> >> As of now when Gateway receives a request, it talks to a server which >> performs the following operations; >> >> 1. Get details of the access token by querying the Database. >> 2. Check the validity of the token. >> 3. Check if the user is subscribed to the API. >> 4. Check if the token has necessary scopes to access the resource. >> 5. Generate JWT using details derived from the token. >> >> In this design, the server to which GW calls is the same entity which >> manages tokens. So calling this entity as Key Manager suits in this >> scenario. >> >> After decoupling the Authorization server, the server to which GW calls, >> will not be the same entity that manages tokens. To make this distinction >> clear, a new profile will be introduced (which we'll refer to as Key >> Validator for now). Basically GW calls to Key Validator which performs all >> the above operations except 1st and 2nd. To complete its validation, Key >> Validator obtains token details by calling to a Key Manager (Authorization >> Server) - which can either be the one shipped with APIM or else a third >> party one. >> >> >> 1st Diagram illustrates the interaction between server profiles we >> currently have and the second diagram shows the interactions after adding >> the new profile. >> >> >> >> >> Boxes in the diagram represent the profiles, not the server instances in >> a deployment. When using the inbuilt KM, a typical deployment will have >> KeyValidator and KeyManager profiles in the same JVM. All the server roles >> except Gateway, will have to know about Key Manager. >> >> These are the changes happening in configuration files; >> >> 1. Key-Manager section in api-manager.xml will be changed as Key-Validator >> a. TokenEndPointName and RevokeAPIURL elements will be removed from >> Key-Validator section. >> b. Two new elements ApplicationTokenScope & >> KeyValidationHandlerClassName will be introduced. >> >> 2. A new config named key-manager.xml will be introduced. >> Purpose of having this file is to provide a single location to keep all >> the settings, configs used by a KeyManager implementation. >> >> This is the structure of the key-manager.xml to be shipped with APIM by >> default. >> >> <KeyManager class="org.wso2.carbon.apimgt.keymgt.AMDefaultKeyManagerImpl" >> xmlns="http://wso2.org/projects/apimgt/key-manager.xml"> >> <Configuration> >> <AuthorizationServerURL>https://localhost:9443/services/ >> </AuthorizationServerURL> >> <TokenURL>https://localhost:8243/token</TokenURL> >> <RevokeURL>https://localhost:8243/revoke</RevokeURL> >> </Configuration> >> </KeyManager> >> >> Since generating/revoking tokens are done by the class implementing >> KeyManager interface, those urls have been moved in to this config. >> >> Contents inside the <Configuration> block can change based on the >> implementing class. For example, when plugging in an third party Key >> Manager (Authorization Server), introspect endpoint might have to be >> provided. >> >> Please share your thoughts. >> >> -- >> *Amila De Silva* >> >> WSO2 Inc. >> mobile :(+94) 775119302 >> >> >> _______________________________________________ >> Architecture mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- *Amila De Silva* WSO2 Inc. mobile :(+94) 775119302
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
