Building an OAuth2 Token Generator API with SAP BTP APIM
In this post, I will provide a sequence of steps required to develop an API that generates an OAuth2 token, which can be utilized by other APIs within the same BTP instance for authorization purposes. Let's dive in.
Requirement
To develop an API capable of generating an OAuth2 token and prepare it to be used by other APIs within the same BTP instance.
Step #1. What is OAuth2?
For an understanding of OAuth2, please refer to the official docs.
See OAuth 2.0
Step 2. Create a new API
Utilizing the SAP BTP Integration Suite, create a new API specifically designed to generate the OAuth2 token. Ensure that the new API is built around a non-specific URL, such as 'https://local.com/' or a similar placeholder.
Step 3. Assign the new policy
In the PreFlow section of the API, add the 'OAuth v2.0' policy to generate the OAuth2 token.
Configure the policy settings accordingly.
Save the changes and deploy the API.
Step 4. Create the Product
Please refer to the official documentation for detailed instructions.
See Create a Product
Don't forget to include the API that generates the OAuth2 token in the newly created Product and publish.
Step 5. Create the Application
Navigate to the API Business HUB Enterprise cockpit and switch to the 'My Workplace' tab.
Create a new Application and add the recently created Product to it. Save the changes.
If you encounter difficulties while saving the application, please ensure that the Developer role is assigned to the user you are currently working with. To check this, navigate to the 'Manage' tab.
Step 6. Testing
For testing purposes, I created an API that utilizes the OpenWeather services.
Add the 'Verification OAuth2 token' policy to this API.
If you attempt to run the API directly via the link generated by the APIM, it will not function.
This is because a valid token needs to be provided using the API created at the beginning of this post.
To address this issue, open the Postman client and create a new request.
In the Authorization tab, select the 'OAuth2.0' type.
Then, provide the URL of the API that generates an OAuth2 token in the 'Access Token URL' field
For the Client ID and Client Secret fields, use the values from the API Business Hub Enterprise, specifically from the Application created in Step #5.
N.B. Ensure to assign the API to the corresponding Product (Refer to Step 4: Create the Product).
Click the 'Get New Access Token' button in Postman
Click the 'Proceed' button
Confirm with the newly generated token
Though it was a lengthy process, it was interesting. Thank you for your attention. You're awesome!