Add and manage social connections
Auth and access
You can enable users to sign up and sign in using their credentials from any OAuth2- and Open ID connection- compatible identity provider. To set this up, you need access to your provider’s developer console and a little technical know-how. We recommend setting this up in a non-production environment first, to test the connection thoroughly.
Custom OAuth 2.0 and Open ID connections allow you to integrate with any compatible identity provider that isn’t natively supported by Kinde. This includes custom identity providers, enterprise solutions, or specialized authentication services.
Before connecting your custom OAuth2 provider, ensure it supports the OAuth2 authorization code flow and can provide user profile information including email address. The provider must also support HTTPS for all endpoints.
The following steps are a guide to what needs to happen on the custom OAuth 2.0 identity provider side. You may need to adapt some steps to suit the way different providers are configured.
Navigate to your provider’s developer console or admin panel.
Create a new application or client.
Configure your application settings:
account.customdomain.com/login/callback. If you don’t have this, you can copy it from the Kinde connection and add it later.openid, profile, email. Add any other provider-specific ones you want.Complete all the required application details (noting that you may need to go through a verification process depending on your provider).
Save your application configuration.
Copy the following information, which is required to set up the Kinde connection:
Sign in to Kinde.
Go to the Settings page and select Authentication.
In the Social connections section, select Add connection.
In the window that opens, select Custom OAuth 2.0, then select Next.
Enter a Connection name for internal identification. If you maintain a lot of external connections, you might want to include the customer’s name.
Enter an External name. This is what appears on the sign up and sign in screens of your app.
Enter all the relevant URLs and credentials from the previous step in the corresponding fields:
Choose the Client authentication method. This controls how client credentials are sent to the provider’s token endpoint during the OAuth2 authorization code exchange. The options are:
Authorization: Basic HTTP header. Some providers (e.g., Vipps MobilePay) require this method.The default is Client secret in body. Check your identity provider’s documentation to determine which method is required. If authentication fails with one method, switching to the other may resolve the issue.
Enter any additional configuration options required by your provider (e.g., key attributes and upstream parameters).
In the Callback URL section:
If you use Kinde’s domain as your default, copy the Kinde domain URL.
If you use custom domains, select the Use custom domain instead switch.
If you have only one custom domain, copy the Custom domain URL. If you have custom domains for multiple organizations, select each one from the list and copy the callbacks for each. You need to enter all custom domain callbacks in your app.
Scroll down to the Provider icons section where you can upload a custom icon for this connection. This icon will appear on the sign-up and sign-in screens of your app.
Select which applications to switch this on for. If you are in a prod environment, this makes the connection live.
Select Save.
Use the copied Callback URL to finish setting up the provider configuration, see below.
After configuring your custom OAuth2 connection, test it thoroughly in a non-production environment before going live. Verify that:
If you encounter issues with your custom OAuth2 connection, here are some things to try:
401 Unauthorized or invalid_client errors during sign-in, try switching the Client authentication method between “Client secret in body” and “Client secret in header” — some providers only accept one of these methodsFor additional support, contact Kinde support or refer to your OAuth2 provider’s documentation.