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

# Microsoft Entra ID OIDC

> Learn how to configure Fiddler with Microsoft Entra ID (formerly Azure AD) for Single Sign-On (SSO) using the OpenID Connect (OIDC) protocol.

## Overview

This integration allows your users to sign in to Fiddler using their existing Microsoft Entra ID account, without needing a separate Fiddler password. Users are automatically provisioned on their first successful login — no manual invitations required. Entra ID group memberships can be synchronized to Fiddler teams.

## Prerequisites

Before starting, ensure you have:

* **Microsoft Entra ID Administrator Access**: Permissions to register applications and grant admin consent in your Entra ID tenant.
* **Fiddler AuthN Administrator Access**: Org Owner role in Fiddler's AuthN management console.
* **Deployment Information**: The hostname of your Fiddler deployment, e.g. `idpexample.dev.fiddler.ai`.
* **Entra ID P2 License** (cloud-native group sync only): required to emit group display names for cloud-native groups. Not needed for basic SSO or for groups synced from on-premises AD.

## Configuring Microsoft Entra ID

<Info>
  Fiddler requires two redirect URIs on the Entra ID application — one added during registration, the second under *Authentication*:

  * `https://authn-{base_url}/ui/login/login/externalidp/callback`
  * `https://authn-{base_url}/idps/callback`

  Replace `{base_url}` with your Fiddler deployment host (e.g. `idpexample.dev.fiddler.ai`).
</Info>

<Steps>
  <Step title="Register the Application">
    1. In the [Microsoft Entra admin center](https://entra.microsoft.com/), go to *Entra ID → App registrations* and select *New registration*.
    2. Enter a *Name*, e.g. `Fiddler IdP Example`.
    3. Under *Supported account types*, select *Accounts in this organizational directory only (Default Directory only - Single tenant)*.
    4. Under *Redirect URI*, select the *Web* platform and enter the first redirect URI (replace the host with your deployment): `https://authn-idpexample.dev.fiddler.ai/ui/login/login/externalidp/callback`.
    5. Select *Register*.

           <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-app-registration.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=a2b1d58d4df518f82b7d43c99b01f888" alt="Microsoft Entra ID app registration" width="3024" height="1650" data-path="images/azure-oidc-app-registration.png" />
  </Step>

  <Step title="Add the Second Redirect URI">
    1. In the registered application, go to *Manage → Authentication*.
    2. Under *Redirect URI configuration*, select *Add Redirect URI*.
    3. Select *Web* and add the second redirect URI (replace the host with your deployment): `https://authn-idpexample.dev.fiddler.ai/idps/callback`.
    4. Select *Configure*.

           <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-redirect-urls.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=c3510e2ef9ddadf1d5bf7012a8d36c6f" alt="Microsoft Entra ID add second redirect URI" width="3024" height="1654" data-path="images/azure-oidc-redirect-urls.png" />
  </Step>

  <Step title="Create a Client Secret">
    1. In the registered application, go to *Certificates & secrets*. Under *Client secrets*, select *New client secret*.
    2. Add a description, choose an expiry, and select *Add*.
    3. Copy the secret *Value* immediately — it is shown only once.

           <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-client-credentials.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=35e66852ad2838df7876f88e0305ae1a" alt="Microsoft Entra ID client secret" width="3024" height="1652" data-path="images/azure-oidc-client-credentials.png" />
  </Step>

  <Step title="Configure API Permissions">
    1. In the registered application, go to *API permissions* and select *Add a permission → Microsoft Graph → Delegated permissions*.
    2. Select `openid`, `email`, `profile`, `offline_access`, and `User.Read`, then select *Add permissions*.
    3. Select *Grant admin consent for Default Directory*.

           <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-api-permissions.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=7e57b86bd8c69195c58d6c4b8bfaaecf" alt="Microsoft Entra ID API permissions" width="3024" height="1650" data-path="images/azure-oidc-api-permissions.png" />
  </Step>

  <Step title="Configure the Token Claims">
    Add the claims Fiddler needs to the ID token.

    1. In the registered application, go to *Token configuration*.
    2. Select *Add optional claim*, choose the *ID* token type, and add `email`, `given_name`, and `family_name`. When prompted, enable the option to turn on the Microsoft Graph `email` and `profile` permissions (required for these claims to appear in the token), then select *Add*.

           <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-optional-claims.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=fbf0f862ae8abb3bceb417a4c024f4ac" alt="Microsoft Entra ID add optional claims" width="3024" height="1654" data-path="images/azure-oidc-optional-claims.png" />
    3. Select *Add groups claim*, choose *Groups assigned to the application*, select the *ID* token, then select *Add*. Only the ID token is required for Fiddler. By default Entra emits group IDs (GUIDs); to emit the group **names** that Fiddler maps to teams, complete [Enable Group Sync](#enable-group-sync) below.

           <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-group-claims.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=a77b52259fe4431b75a3b862bdc173b2" alt="Microsoft Entra ID groups claim configuration" width="3024" height="1652" data-path="images/azure-oidc-group-claims.png" />
  </Step>

  <Step title="Collect the Application Details">
    From the registered application's *Overview* page, copy the *Application (client) ID* and the *Directory (tenant) ID*. You will need these, along with the client secret, when configuring Fiddler.

    <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-client-tenant.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=4a23054361fc23be453072103df943e9" alt="Microsoft Entra ID application overview with client and tenant IDs" width="3024" height="1652" data-path="images/azure-oidc-client-tenant.png" />
  </Step>
</Steps>

## Configuring Fiddler

<Steps>
  <Step title="Fiddler AuthN Console Sign-in">
    <Info>
      The URL to the Fiddler AuthN management console is your Fiddler instance base URL prepended with `authn-`. For example, if your Fiddler base URL is `https://idpexample.dev.fiddler.ai` then you will access the AuthN management console at `https://authn-idpexample.dev.fiddler.ai`.
    </Info>

    Sign in using the AuthN console Org Owner user account credentials provided by your Fiddler representative.

    <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-login-page.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=a85c93e86c371a7c5fee59bbb16bb73d" alt="Fiddler AuthN console sign-in page" width="3024" height="1656" data-path="images/authn-console-login-page.png" />
  </Step>

  <Step title="Select Your Organization">
    Ensure your organization is selected in the dropdown. You may see the *fiddler* organization, but this is reserved for system use and should not be edited. Here we are using the *idpexample* organization.

    <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/authn-console-organization-settings.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=c738d283925bf5ae30acfc0e033161b2" alt="Fiddler AuthN console home page" width="3024" height="1652" data-path="images/authn-console-organization-settings.png" />
  </Step>

  <Step title="Navigate to Identity Providers in Settings">
    Select *Settings* tab from the top menu and then select *Identity Providers* from the left navigation menu.

    <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-organization-identity-providers.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=7442828d5a4956079023c4a781a10daf" alt="Fiddler AuthN console add provider page" width="3024" height="1652" data-path="images/authn-console-organization-identity-providers.png" />
  </Step>

  <Step title="Add a New Microsoft Provider">
    1. Select the *Microsoft* option in the *Add provider* section, which brings up the Microsoft Provider form.
    2. Note the callback URL shown in the form — it corresponds to the redirect URIs you registered in Entra ID earlier, so no further changes are needed in Entra ID.

           <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-azure-oidc-redirect-urls.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=a578d6f371fb211ce90e5b068ad02ee8" alt="Fiddler AuthN console add new Microsoft provider form with callback URL" width="3024" height="1654" data-path="images/authn-console-azure-oidc-redirect-urls.png" />
  </Step>

  <Step title="Configure the Microsoft Provider in Fiddler">
    1. In the Microsoft Provider form, enter the following values:

       1. Enter a name in the *Name* text box. This name is displayed on the SSO login button on the Fiddler sign-in page, so choose one your users will recognize.
       2. In the *Client ID* and *Client Secret* text boxes, paste those values copied from Entra ID.

           <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-azure-oidc-client-credentials.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=4e8485c6a71377ff77142076a6febffe" alt="Fiddler AuthN console Microsoft provider client credentials" width="3024" height="1652" data-path="images/authn-console-azure-oidc-client-credentials.png" />
  </Step>

  <Step title="Configure Additional Parameters">
    1. Expand the *optional* section.
    2. Ensure the *Scopes List* includes `openid`, `profile`, and `email`.
    3. Under *Tenant Type*, select *Tenant ID* and paste your *Directory (tenant) ID*.
    4. Ensure the *Automatic create* and *Automatic update* checkboxes are selected.
    5. Set the *Determines whether an identity will be prompted to be linked to an existing account* dropdown to *Check for existing Username*.

           <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-azure-oidc-create-update-username.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=3e5fa026e01eb4bf0bd85e1a6795a624" alt="Fiddler AuthN console automatic create/update and check existing username settings" width="3024" height="1652" data-path="images/authn-console-azure-oidc-create-update-username.png" />
  </Step>

  <Step title="Save the Configuration Changes">
    Select the *Create* button and then select the *Save* button. You will be returned to the Organization Settings page.

    <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-azure-oidc-identity-providers.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=2e3d2f5419e6f70820680d95a540c2d7" alt="Fiddler AuthN console with newly created Microsoft Entra ID IdP" width="3022" height="1652" data-path="images/authn-console-azure-oidc-identity-providers.png" />
  </Step>

  <Step title="Activate the Microsoft Entra ID IdP">
    1. Select your IdP from the list and select the *Activate* button on the identity provider page.

           <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-azure-oidc-activate.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=ac7e184420851c8755e207422c1662c1" alt="Fiddler AuthN console activate new Microsoft Entra ID IdP" width="3024" height="1650" data-path="images/authn-console-azure-oidc-activate.png" />
    2. Close the settings and then select *Login Behavior and Security* from the left nav menu and ensure the *External login allowed* checkbox is selected.

           <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-login-behaviour-security.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=3bb781d4b4c483dc8676f0f6d55a6f62" alt="Fiddler AuthN console allow external login behavior" width="3024" height="1652" data-path="images/authn-console-login-behaviour-security.png" />
    3. Select the *Save* button.

           <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-login-behaviour-security-external.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=a9207dddebc85b5297d3352e953db453" alt="Fiddler AuthN console external login allowed" width="3024" height="1654" data-path="images/authn-console-login-behaviour-security-external.png" />
  </Step>

  <Step title="Create a Custom Action">
    Select the *Actions* tab from the top menu.

    <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-azure-oidc-action-script.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=2493bce095db7363cd291890b0405061" alt="Fiddler AuthN console new custom Action script" width="3024" height="1652" data-path="images/authn-console-azure-oidc-action-script.png" />

    1. Select the *New* button in the *Scripts* section to create a new action script.
    2. Copy the *Microsoft Entra ID Action Script* below and paste it into the script text area.
    3. Enter `setAttributesOnAzureOIDCAuth` in the *Name* text box.
    4. Select the *Add* button.

    **File:** `Microsoft Entra ID Action Script`

    ```javascript theme={null}
    function setAttributesOnAzureOIDCAuth(ctx, api) {
        let firstName = ctx.getClaim('given_name');
        let lastName = ctx.getClaim('family_name');
        let email = ctx.getClaim('email');
        let groups = ctx.getClaim('groups');

        let nameParts = [firstName, lastName];
        let filteredParts = nameParts.filter(part => part);
        let displayName = filteredParts.join(' ');

        if (firstName != undefined) {
          api.setFirstName(firstName);
        }
        if (lastName != undefined) {
          api.setLastName(lastName);
        }
        if (email != undefined) {
          email = email.toLowerCase();
          api.setEmail(email);
          api.setEmailVerified(true);
          api.setPreferredUsername(email);
        }

        if (displayName) {
          api.setDisplayName(displayName);
        }

        api.v1.user.appendMetadata('fiddler_authentication_type', 'SSO:AZURE:OIDC');
        if (groups === null || groups === undefined){
          groups = []
        }
        api.v1.user.appendMetadata('fiddler_groups', groups);
    }
    ```
  </Step>

  <Step title="Configure the Action Trigger">
    Scroll down to the *Flows* section.

    <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-azure-oidc-action-trigger.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=14c3c1ccee2d3aa476f97fb871bdd11f" alt="Fiddler AuthN console new Action trigger creation" width="3024" height="1652" data-path="images/authn-console-azure-oidc-action-trigger.png" />

    1. Select the *External Authentication* option for the *Flow Type* dropdown.
    2. Select the *+ Add trigger* button.
    3. Select the *Post Authentication* option for the *Trigger Type* dropdown.
    4. Select the *setAttributesOnAzureOIDCAuth* option for the *Actions* dropdown.
    5. Select the *Save* button.
  </Step>

  <Step title="Set the Organization SSO Authentication Type">
    Add an organization metadata key so Fiddler can correctly identify and process this SSO connection. Set this once during setup.

    1. Go to the *Metadata* section and select *Edit*.

           <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/authn-console-organization-metadata.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=8e07886ca3bf84dcc9074e9c354e768e" alt="Fiddler AuthN console organization metadata section" width="3024" height="1652" data-path="images/authn-console-organization-metadata.png" />
    2. Select the *Add* button, then enter the key `fiddler_sso_authentication_type` with the value `SSO:AZURE:OIDC`.

           <img src="https://mintcdn.com/fiddlerai/LFezQzAOZ4GbBOtH/images/authn-console-organization-metadata-azure-oidc.png?fit=max&auto=format&n=LFezQzAOZ4GbBOtH&q=85&s=d0130b15555bc16b4d8341b4b5898ea9" alt="Fiddler AuthN console organization metadata with Microsoft Entra ID authentication type" width="3024" height="1652" data-path="images/authn-console-organization-metadata-azure-oidc.png" />
    3. Select the *Save* button next to the new entry.
  </Step>

  <Step title="Validate the Integration">
    <Info>
      Before validating, ensure your Entra ID account is assigned to the registered application (or that user assignment is not required).
    </Info>

    1. Open your Fiddler URL (e.g. `https://idpexample.dev.fiddler.ai`).
    2. Ensure you see the Fiddler sign-in page and that it displays an SSO login button labeled with the name you configured.

           <img src="https://mintcdn.com/fiddlerai/rI_REZccoRLqD6i6/images/fiddler-azure-oidc-login.png?fit=max&auto=format&n=rI_REZccoRLqD6i6&q=85&s=4c7d2f8782021924b6f4dfe370c485ff" alt="Fiddler application homepage displaying the new SSO login method in addition to the email sign-in form" width="3024" height="1656" data-path="images/fiddler-azure-oidc-login.png" />
    3. Select the button and confirm that the Fiddler application loads.

           <img src="https://mintcdn.com/fiddlerai/rI_REZccoRLqD6i6/images/fiddler-successful-login.png?fit=max&auto=format&n=rI_REZccoRLqD6i6&q=85&s=577af651008c8412526f47b9e1115df2" alt="Fiddler application landing page" width="3024" height="1658" data-path="images/fiddler-successful-login.png" />

    <Info>
      The first user to sign in to the Fiddler application is automatically assigned the Fiddler Org Admin role; subsequent members are Org Members by default.
    </Info>
  </Step>
</Steps>

## Enable Group Sync

Fiddler maps identity provider group **names** (with a configurable prefix) to Fiddler teams and roles — see [Mapping AD Groups to Fiddler Teams](/reference/access-control/mapping-ad-groups-to-fiddler-teams) for the naming convention. By default, Entra ID emits group **IDs** (GUIDs) in the token, which Fiddler cannot map — so group sync requires emitting group display names.

### Cloud-native groups

Emitting display names for cloud-native groups requires an **Entra ID P2** license.

1. In *Enterprise applications*, open your application, go to *Users and groups*, and assign the users and groups that should be sent to Fiddler. Only groups assigned to the application are returned.
2. In the registered application, go to *Manage → Manifest*. Download a copy of the manifest first as a backup, then update it:
   1. Set `groupMembershipClaims` to `ApplicationGroup`.
   2. In `optionalClaims.idToken`, set the `groups` claim's `additionalProperties` to `["cloud_displayname"]` so display names are returned.
3. Save the manifest.

   <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-manifest-group-membership.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=bcd9f8ec778f9de7d0a40044e866e231" alt="Microsoft Entra ID manifest group membership claims" width="3024" height="1652" data-path="images/azure-oidc-manifest-group-membership.png" />

   <img src="https://mintcdn.com/fiddlerai/0YAzrIgYU8gLFpZN/images/azure-oidc-manifest-cloud-displayname.png?fit=max&auto=format&n=0YAzrIgYU8gLFpZN&q=85&s=c888ee1e142060cdb6668c51f242f155" alt="Microsoft Entra ID manifest groups claim cloud_displayname" width="3024" height="1656" data-path="images/azure-oidc-manifest-cloud-displayname.png" />

### On-premises-synced groups

For groups synced from on-premises AD, set the groups claim format to `sAMAccountName` in *Token configuration*. This requires no manifest change or P2 license.

## Getting Help

If sign-in fails, review the Entra ID sign-in logs (*Entra ID → Monitoring & health → Sign-in logs*) for the failed attempt and its reason. Common Entra error codes:

* `AADSTS50105` — the user is not assigned to the application. Assign the user (or their group) to the registered application.
* `AADSTS700016` — the application was not found. Verify the Client ID and tenant are correct.
* `AADSTS90094` — admin consent is required. Grant admin consent for the API permissions.

For Fiddler-side issues, see the [SSO Authentication Guide](/reference/access-control/sso-authentication-guide). If the issue persists, contact your Fiddler representative with the specific error message.

## Important Notes

* **Data Storage**: Fiddler stores the following profile attributes from Entra ID: first name, last name, display name, email address, and group memberships (used to map users to Fiddler teams).
* **API Access**: For programmatic API access, users create an API key from the *Credentials* tab in Fiddler's *Settings* page.
* **Single Authentication Method**: Users can only authenticate via either SSO or email authentication, not both.
* **Client Secret Expiration**: Entra ID client secrets expire. Track the expiry date and rotate the secret before it lapses to avoid login outages.

## Next Steps

After successful integration:

* **Train Users**: Provide guidance on accessing Fiddler through Microsoft Entra ID SSO.
* **Configure Teams**: Map your Entra ID groups to Fiddler teams — see [Mapping AD Groups to Fiddler Teams](/reference/access-control/mapping-ad-groups-to-fiddler-teams).
* **Test Group Sync**: Verify automatic group synchronization is working as expected.
* **Monitor Usage**: Review authentication logs and set a reminder for client secret expiration.
