Preface
This article describes implementation of an Web API and configuration of Authlete to allow each of multiple developers to have a dedicated login account for Authlete’s Developer Console, and manage information of clients.Implementing an Web API
Implement an external Web API in your environment so that Authlete can delegate verification of login ID and password and confirmation of access rights to it. This API must be able to fulfill at least the following processes:- Receiving a request from Authlete
- Verifying an Authorization header
- Identifying a user using ID/password
- Confirming access rights to the requested Authlete service
- Determining an identifier and a display name for the user in Authlete
- Sending back a response to Authlete

Authlete service settings
Log in to Authlete’s Service Owner Console and configure settings for one of Authlete services to connect to the external Web API.| Tab | Item | Value |
|---|---|---|
| Developer Authentication | Developer Authentication Callback Endpoint | URL of the Web API |
| Developer Authentication | Developer Authentication Callback API Key | API key used for Basic authentication on connecting to the API |
| Developer Authentication | Developer Authentication Callback API Secret | API secret used for Basic authentication on connecting to the API |

SNS related settings shown in Developer Authentication tab are not available for use as they are deprecated.With the settings above, the Authlete service will be delegating verification of ID/password submitted by users for logging in to Developer Console, and confirmation of access rights to the console.
Examples
Here we assume that client developer accounts are managed in your environment as follows:- User information
| ID | Password | Status | Group |
|---|---|---|---|
| test1 | test1 | active | Dev 01 |
| test2 | test2 | active | Dev 01 |
| test3 | test3 | active | Dev 02 |
| test4 | test4 | suspended | Dev 02 |
- Group information
| Group | Subject identifier in Authlete | Display name in Authlete | Status |
|---|---|---|---|
| Dev 01 | dev01 | Developer Group 01 | active |
| Dev 02 | dev02 | Developer Group 02 | active |
Example 1: login using test1/test1
First, assume that a user attempts to log in to Developer Console using test1/test1.


Example 2: login using test2/test2
Second, assume that the user logs out from the console and attempts to log in again using test2/test2.

Example 3: login using test3/test3
So, what happens when a user in a different group attempts to log in to the console? Assume that the user logs out from the console and attempts to log in again using test3/test3.

Example 4: login using test4/test4
Lastly, assume that the user logs out from the console and attempts to log in again using test4/test4.
