|
| 1 | +--- |
| 2 | +title: AADSTS7500514 - A Supported Type of SAML Response was not Found with PingFederate |
| 3 | +description: Describes error code `AADSTS7500514` that's returned if a federated account tries to authenticate by using Microsoft Entra ID. |
| 4 | +ms.date: 04/17/2025 |
| 5 | +ms.author: bachoang |
| 6 | +ms.service: entra-id |
| 7 | +ms.custom: sap:Issues Signing In to Applications, has-azure-ad-ps-ref |
| 8 | +keywords: AADSTS50020 |
| 9 | +--- |
| 10 | + |
| 11 | +# AADSTS7500514 - A supported type of SAML response was not found with PingFederate |
| 12 | + |
| 13 | +This article helps you troubleshoot error code `AADSTS7500514` that's returned if a PingFederate federated account tries to authenticate by using Microsoft Entra ID (formerly Azure Active Directory). |
| 14 | + |
| 15 | +## Symptoms |
| 16 | + |
| 17 | +When a federated account tries to authenticate by using Microsoft Entra ID from a Microsoft Authentication Library (MSAL)-based or Active Directory Authentication Library (ADAL)-based application, the sign-in fails. The following error message is displayed: |
| 18 | + |
| 19 | +```output |
| 20 | +{ |
| 21 | + error: "invalid_request", |
| 22 | + error_description: "AADSTS7500514: A supported type of SAML response was not found. The supported response types are 'Response' (in XML namespace 'urn:oasis:names:tc:SAML:2.0:protocol') or 'Assertion' (in XML namespace 'urn:oasis:names:tc:SAML:2.0:assertion'). |
| 23 | + .... |
| 24 | + error_uri: "https://login.microsoftonline.com/error?code=7500514" |
| 25 | +} |
| 26 | +``` |
| 27 | + |
| 28 | +The error typically occurs in the following environment: |
| 29 | + |
| 30 | +- A federated account that uses [PingFederate](https://www.pingidentity.com/) as the identity provider. |
| 31 | +- The identity provider is configured to issue a SAML 1.1 token by using the WS-Trust protocol. |
| 32 | +- The application uses one of the following APIs for authentication: |
| 33 | + - MSAL `AcquireTokenByUserNamePassword` method. |
| 34 | + - ADAL `AcquireToken`(string resource, string clientId, UserCredential userCredential) method. |
| 35 | + - Any PowerShell module that uses these MSAL or ADAL methods. |
| 36 | + |
| 37 | +## Cause |
| 38 | + |
| 39 | +Because [ADAL is now deprecated](/entra/identity/monitoring-health/recommendation-migrate-from-adal-to-msal), this article focuses on the MSAL. |
| 40 | + |
| 41 | +This issue occurs if the SAML response from PingFederate doesn't contain the SAML version or uses a format that MSAL can't recognize. Typically, this situation is caused by a misconfiguration on the PingFederate side for Microsoft Entra ID. |
| 42 | + |
| 43 | +### Root cause analysis: SAML token version detection |
| 44 | + |
| 45 | +When MASL authenticates a federated account, it determines whether the account is a managed account or a federated account. |
| 46 | + |
| 47 | +For managed accounts, MSAL uses the [Resource Owner Password Credentials grant flow](/entra/identity-platform/v2-oauth-ropc). For federated accounts, it uses the [SAML Assertion Grant flow](/azure/active-directory/develop/v2-saml-bearer-assertion). |
| 48 | + |
| 49 | +The SAML Assertion Grant flow has two steps: |
| 50 | + |
| 51 | +- The client application authenticates to the federated identity provider to obtain a SAML token. |
| 52 | +- The client uses the obtained SAML token to get an OAuth 2.0 JWT token from Microsoft Entra ID. |
| 53 | + |
| 54 | +The authentication error typically occurs in step 1, in which the client application has to parse the SAML response from the identity provider to determine the version of the SAML token. MSAL looks for the following attributes in the identity provider's SAML response: |
| 55 | + |
| 56 | +- `saml:Assertion` |
| 57 | +- `TokenType` |
| 58 | + |
| 59 | +The following is an example AD FS SAML response from the `/UserNameMixed` endpoint: |
| 60 | + |
| 61 | +- `saml:Assertion`: major version = 1, minor version = 1 |
| 62 | +- `TokenType`: `urn:oasis:names:tc:SAML:1.0:assertion` |
| 63 | + |
| 64 | +:::image type="content" source="media/error-code-aadsts7500514-supported-type-saml-response-not-found/adfs-saml-response.png" alt-text="Screenshot of ADFS SAML Response." lightbox="media/error-code-aadsts7500514-supported-type-saml-response-not-found/adfs-saml-response.png"::: |
| 65 | + |
| 66 | +Example of a PingFederate SAML response (SAML Assertion Grant flow step 1): |
| 67 | + |
| 68 | +:::image type="content" source="media/error-code-aadsts7500514-supported-type-saml-response-not-found/pingid-saml-response.png" alt-text="Screenshot of PingFederate SAML Response for SAML Assertion Grant flow step 1." lightbox="media/error-code-aadsts7500514-supported-type-saml-response-not-found/pingid-saml-response.png"::: |
| 69 | + |
| 70 | +When you compare these responses, you find that PingFederate returns a different TokenType value (`http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1`) for the same SAML 1.1 token. However, MSAL doesn't support any TokenType value other than `urn:oasis:names:tc:SAML:1.0:assertion`. |
| 71 | + |
| 72 | +If the identity provider returns a different or unexpected value in the SAML response, MSAL might incorrectly interpret the token as SAML 2.0. In this case, it uses the corresponding `grant_type` value during step 2 of the SAML Assertion Grant flow. |
| 73 | + |
| 74 | +Example of the request sent from MSAL application by using PingFederate (SAML Assertion Grant flow step 2): |
| 75 | + |
| 76 | +:::image type="content" source="media/error-code-aadsts7500514-supported-type-saml-response-not-found/pingid-saml-response-2.png" alt-text="Screenshot of request sent from MSAL application with PingFederate in SAML Assertion Grant flow step 2." lightbox="media/error-code-aadsts7500514-supported-type-saml-response-not-found/pingid-saml-response-2.png"::: |
| 77 | + |
| 78 | +Example of the request that's sent from the MSAL application by using AD FS: |
| 79 | + |
| 80 | +:::image type="content" source="media/error-code-aadsts7500514-supported-type-saml-response-not-found/pingid-saml-response-3.png" alt-text="Screenshot of request sent from MSAL application by using AD FS in SAML Assertion Grant flow step 2." lightbox="media/error-code-aadsts7500514-supported-type-saml-response-not-found/pingid-saml-response-3.png"::: |
| 81 | + |
| 82 | +In this step, the value of the `grant_type` parameter must align with the actual version of the SAML token. One of the following values is used by the MSAL application: |
| 83 | + |
| 84 | +- urn:ietf:params:oauth:grant-type:saml2-bearer - for SAML 2.0 tokens |
| 85 | +- urn:ietf:params:oauth:grant-type:saml1_1-bearer - for SAML 1.1 tokens |
| 86 | + |
| 87 | +In the PingFederate example, MSAL uses the `saml2-bearer` as the `grant_type` based on its misinterpretation of the SAML version. This causes a version mismatch between the `grant_type` parameter and the SAML token that's included in the assertion that causes the authentication error. |
| 88 | + |
| 89 | +## Solution |
| 90 | + |
| 91 | +To resolve this issue, make sure that PingFederate is configured to align with Microsoft Entra ID requirements. For step-by-step instructions, review the following articles: |
| 92 | + |
| 93 | +- [Creating a connection to Microsoft Entra ID](https://docs.pingidentity.com/integrations/azure/azure_ad_and_office_365_integration_guide/pf_azuread_office365_integration_creating_a_connection_to_azure_active_directory.html). |
| 94 | + |
| 95 | + During Microsoft Entra ID connection setup, pay special attention to the settings in the following steps: |
| 96 | + |
| 97 | + 1. Configure the connection protocols. |
| 98 | + 2. On the **Connection Template** tab, select **Do not use a template for this connection**, and then select **Next**. |
| 99 | + 3. On the **Connection Type** tab, select **Browser SSO Profiles**. |
| 100 | + 4. In the Protocol list, select **WS-Federation**. |
| 101 | + 5. In the **WS-Federation Token Type** list, select **SAML 1.1**. |
| 102 | + 6. If you want to support active federation, select the **WS-Trust STS** checkbox. |
| 103 | + |
| 104 | +- [Configuring WS-Trust STS](https://docs.pingidentity.com/integrations/azure/azure_ad_and_office_365_integration_guide/pf_azuread_office365_integration_configuring_ws_trust_sts.html) |
| 105 | + |
| 106 | + When you configure WS-Trust STS, make sure that you select **SAML 1.1 for Office 365** as the Default Token Type. |
| 107 | + |
| 108 | +[!INCLUDE [Third-party disclaimer](../../../includes/third-party-disclaimer.md)] |
| 109 | +[!INCLUDE [Azure Help Support](../../../includes/azure-help-support.md)] |
0 commit comments