For a web-application portal, which is accessed via internet through web-browser, there is a requirement to implement the following authentication flow within the WSO2 API manager.
- End Users of Application (Portal-Web Thin client) must login using a user/password scheme.
- The user & credential information are stored in a local application RDBMS database (eg- MySQL).
- Application has user management screens to add/delete/update users and map roles.
- API manager must authenticate the user against the local user store and generate a JWT/Ouath2 token.
- There are custom password policies to be configured (for eg, user must be locked after 5 failure try).
- End user will use the generated token to access the protected API.
- API Manager should authorize the token and route the API to the appropriate micro service.
From the documentation we found that, a secondary user store shall be created to allow the end users of the application to be part of WSO2 API Manager users, and hence the authentication will be taken care by API manager itself. I would like to get a better understanding on how this can be implemented.
- Changes expected in end-user database is very dynamic via user management screens in the application, does this need to be updated to API manager user store in some manner? Or can the API manager user store can be configured directly read from applicable users table.?
- Can API manager performs the encrypted password validation, configured in application DB against each user?
- Is there any alternate approach, for eg, my application expose a rest end-point for authentication, and the API manager invokes this end-point to perform the authentication by passing the username and password received as part of token api.?