> ## Documentation Index
> Fetch the complete documentation index at: https://koreai.mintlify.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Setting Up Authorization using OAuth v2 Client Credentials

<Badge icon="arrow-left" color="gray">[Back to App Settings](/ai-for-service/app-settings)</Badge>

OAuth v2 is the new version of the open protocol to allow secure authorization via a standard method from web, mobile, and desktop applications.

To use oAuth v2, you must first register an account with the web application — you will need the sign-in credentials for that application to configure the Authorization Mechanism settings.

The Client Credentials grant type is used when applications request an access token to access their own resources, not on behalf of a user.

***

## Configuring oAuth v2 Using Client Credentials

1. Open the assistant for which you want to configure an Authorization profile.

2. From the left menu, select **App Settings**, then select **Dev Tools > Authorization Profiles**.

   <img src="https://mintcdn.com/koreai/WXbgclBfTjdUd7vF/ai-for-service/app-settings/dev-tools/bot-authorization/images/basic-auth-img2.png?fit=max&auto=format&n=WXbgclBfTjdUd7vF&q=85&s=3171e6b95db2664dca1f20db7b95c4e0" alt="Auth profiles - Add" width="1571" height="746" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/basic-auth-img2.png" />

3. Select **New**. The **New Authorization Mechanism** dialog opens.

   <img src="https://mintcdn.com/koreai/hij-ASVNsmm-T2OW/ai-for-service/app-settings/dev-tools/bot-authorization/images/new-auth.png?fit=max&auto=format&n=hij-ASVNsmm-T2OW&q=85&s=8a911f3d8e0187a0bc79abce0ce5e2fc" alt="Auth profiles - Add" width="1077" height="824" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/new-auth.png" />

4. In the **Authorization Type** drop-down list, select **oauth v2 client credentials**.

5. In the **Name** field, enter the name for your authorization.

The following illustration shows the **oAuth v2** fields you must define to enable authorization for your assistant.

<img src="https://mintcdn.com/koreai/dXkAbE0ANOaqP4_G/ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-img2.png?fit=max&auto=format&n=dXkAbE0ANOaqP4_G&q=85&s=3e713109f54e31d1f3ad43a8eb281afd" alt="Fields to define for enabling auth" width="879" height="1401" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-img2.png" />

Define the fields as described in the following table:

| FIELD NAME                  | DESCRIPTION                                                                                                                                                                                                                                                                                                                                                                                                    |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Authorization Type          | Set to oAuth v2 Client Credentials.                                                                                                                                                                                                                                                                                                                                                                            |
| Identity Provider Name      | The name of the web application or web service, for example, Asana. This field is required.                                                                                                                                                                                                                                                                                                                    |
| Client ID                   | The ID of the Kore.ai client. The Platform accepts a maximum length of 255 characters.                                                                                                                                                                                                                                                                                                                         |
| Client Secret Key           | The value provided as the Kore.ai application authentication based on the Client ID to the web application. The Platform accepts a maximum length of 255 characters.                                                                                                                                                                                                                                           |
| Token Request URL           | The URL used by the Kore.ai application to obtain an unauthorized request token. A request token is a value used by the Kore.ai application to obtain authorization from the end-user to obtain an access token. The Platform accepts a valid URL with a maximum length of 3000 characters. After end-user authorization, an access token can be requested by the Kore.ai application. This field is required. |
| Scope                       | If the web service requires additional values for authorization, add one or more Key/Value pairs. For example, some web services support using a scope key using read-only, write, or both as the value.                                                                                                                                                                                                       |
| Refresh Token URL           | Enter a Refresh Token URL, if required, for cases when the authentication token expires and must be refreshed. The Platform accepts a valid URL with a maximum length of 3000 characters.                                                                                                                                                                                                                      |
| Description                 | Enter a description for your authorization.                                                                                                                                                                                                                                                                                                                                                                    |
| Client Certificate Exchange | Enable this toggle to enforce certificate-based client authentication during the TLS handshake using a digital certificate.                                                                                                                                                                                                                                                                                    |

***

## Authorization Fields

By default, authorization fields are configured as part of the header of the task request message. If your task request requires additional authorization fields or the expected authorization isn't part of the header (for example, a verification code), click **+ Add Authorization Field** and define the fields as shown in the following illustration.

<img src="https://mintcdn.com/koreai/hij-ASVNsmm-T2OW/ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-img3.png?fit=max&auto=format&n=hij-ASVNsmm-T2OW&q=85&s=aa5807f352fa5523b771d5198ac93017" alt="Authorization fields" width="995" height="817" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-img3.png" />

1. In the **Field Type** field, select one of the following depending on where in the task request message the authorization fields are required:
   * **Header** - The AI Agent expects the authorization fields as part of the header of the request.
   * **Payload** - The AI Agent expects the authorization fields as part of the content of the body of the request.
   * **Query String** - The AI Agent expects the authorization fields as a query in the body of the request.
   * **Path Param** - The AI Agent expects the authorization fields as part of the URL path for the request.

2. In the **Field Key** field, enter the name of the field for the selected **Field Type**.

3. In the **Field Value** field, enter the value for the **Field Key** specified.

4. Select **Done**. The new authorization field is added in the **Authorization Fields** section.

### Adding Request Authorization Header(s)

If your request requires additional authorization headers supported by the external system, click + Add Authorization Header to configure the required header fields.

<img src="https://mintcdn.com/koreai/dXkAbE0ANOaqP4_G/ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-headers-img1.png?fit=max&auto=format&n=dXkAbE0ANOaqP4_G&q=85&s=fb411e887ad2f0c5f23c3b8d238ad330" alt="Authorization headers" width="1012" height="304" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-headers-img1.png" />

1. In the **Field Key** field, enter the header name.
2. In the **Field Value** field, enter the corresponding header value.
3. Select **+ Add Authorization Header** to add multiple headers as needed. Use the delete option to remove any headers that aren't required.
4. Enable the **Apply these request headers to the Refresh Token call** toggle to include the configured headers in Refresh Token requests, if required by the external system.

***

## Testing the Authorization

After saving the authentication, test your authorization definition on the **Authentication** page by clicking **Test** before continuing to develop the remaining steps of your task. The test is executed using the authentication token URLs and the **Client ID** and **Client Secret Key**. If tenancy was defined, the **Test Authorization** dialog is displayed.

Click **Test** to begin the authorization test.

<img src="https://mintcdn.com/koreai/hij-ASVNsmm-T2OW/ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-img4.png?fit=max&auto=format&n=hij-ASVNsmm-T2OW&q=85&s=2b11d8f50608a2fcad81edcb09f2daf1" alt="Testing the auth" width="1599" height="569" data-path="ai-for-service/app-settings/dev-tools/bot-authorization/images/oauth-v2-clientcredentials-img4.png" />

When validation completes, the results — either success or failure — are displayed. If the authorization fails, the Auth Test Failed message is displayed along with the **Headers** and **Response** tabs.

***
