If your third-party IdP isn’t natively supported, you can still use your IdP with Konnect by using a custom HTTP DCR bridge. This HTTP DCR bridge acts as a proxy and translation layer between your IdP and DCR applications in the Dev Portal. When a developer creates a DCR application in the Dev Portal, Konnect calls your HTTP DCR bridge which can translate the application data into a suitable format for your third-party IdP, and add additional functionality such as making API calls to other systems as part of the DCR flow.
sequenceDiagram
actor Developer
participant Konnect Dev Portal
participant HTTP DCR Bridge
participant IdP
Developer->>Konnect Dev Portal: Create application
Konnect Dev Portal->>HTTP DCR Bridge: POST Create application
HTTP DCR Bridge->>IdP: POST Create application
IdP--)HTTP DCR Bridge: 200 OK and credentials
HTTP DCR Bridge->>Konnect Dev Portal: Create application response (with credentials from IdP)
Konnect Dev Portal->>Developer: Show credentials
Figure 1: This diagram illustrates how an HTTP DCR bridge creates an application in an IdP when a developer submits an application in the Konnect Dev Portal. First, the developer creates an application in the Dev Portal, which triggers the portal to send the application details to the HTTP DCR bridge. The bridge then sends a POST create application request to the IdP. If the IdP successfully processes the request, it returns a 200 status code along with the credentials for the developer’s application. These credentials are then displayed to the developer in the Dev Portal.
To use an unsupported IdP with DCR, you must implement an API that conforms to the Konnect Dev Portal DCR Handler spec. Kong provides an example reference implementation in the Konnect Dev Portal DCR Handler repository. This is an example HTTP DCR bridge implementation and is not meant to be deployed in production. We encourage you to use this implementation as a guide to create your own implementation.
Any request that does not return a 2xx status code is considered a failure and will halt the application creation process in your Konnect Dev Portal.
Dev Portal developers can manage their application credentials through their applications page without needing a Dev Portal admin’s assistance.
Developers can maintain multiple active credentials, allowing them to assign different credentials to each service consuming their application and revoke credentials as needed. The number of active credentials supported per application is determined by the identity provider configured in the HTTP DCR bridge.
Maintaining multiple credentials for one application is currently available only for HTTP DCR bridge.
Dev Portal admins can view credential IDs by opening an application in Konnect and checking its Credentials tab. Application credential values are not visible from Konnect, and Dev Portal admins cannot add or revoke credentials directly from Konnect.
Developers can view credential IDs by opening an application in their Dev Portal, and checking its Credentials tab. Application credentials values are not visible after creation. Developers can revoke credentials directly from the Credentials tab.
When developers need to replace a credential with a new one, they can rotate the credential manually through an application’s configuration page in their Dev Portal:
- In your Dev Portal, click your profile and select My applications.
- Open an application.
- Click the Credentials tab.
- Click New Credential.
- Copy and save the secret somewhere safe. You won’t see this key again.
- Click Copy and close to save.
- Test the new credential by using it in the same workflow as the old one.
- When you’re ready, delete the old credential:
- Click the Credentials tab.
- Click the action menu for the old credential.
- Select Revoke.
- Enter
revoke.
- Click Revoke.
Developers can also manage their application credentials using the Portal API.
To make sure that their developers have access to the credential API endpoints, Dev Portal admins must ensure that the HTTP DCR bridge supports credential rotation based on the provided API spec.