Partager via


Créer un fournisseur d’identité

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Créez un objet fournisseur d’identité du type spécifié dans le corps de la demande.

Parmi les types de fournisseurs dérivés d’identityProviderBase, dans Microsoft Entra, cette opération peut créer une ressource socialIdentityProvider, appleManagedIdentityProvider (locataire externe uniquement) ou oidcIdentityProvider (locataire externe uniquement).

Dans Azure AD B2C, cette opération peut créer une ressource socialIdentityProvider, appleManagedIdentityProvider, builtinIdentityProvider ou une ressource openIdConnectIdentityProvider .

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) IdentityProvider.ReadWrite.All Non disponible.
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application IdentityProvider.ReadWrite.All Non disponible.

Importante

Dans les scénarios délégués avec des comptes professionnels ou scolaires, l’utilisateur connecté doit se voir attribuer un rôle Microsoft Entra pris en charge ou un rôle personnalisé avec une autorisation de rôle prise en charge. L’administrateur du fournisseur d’identité externe est le rôle le moins privilégié pris en charge pour cette opération.

Requête HTTP

POST /identity/identityProviders

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json. Obligatoire.

Corps de la demande

Dans le corps de la demande, fournissez une représentation JSON de socialIdentityProvider, oidcIdentityProvider ou un objet appleManagedIdentityProvider dans ID externe Microsoft Entra.

Dans Azure AD B2C, fournissez une représentation JSON de socialIdentityProvider, openIdConnectIdentityProvider ou un objet appleManagedIdentityProvider .

Toutes les propriétés répertoriées dans les tableaux suivants sont requises.

objet socialIdentityProvider

Propriété Type Description
displayName Chaîne Nom d’affichage du fournisseur d’identité.
clientId String Identificateur de client pour l’application obtenue lors de l’inscription de l’application auprès du fournisseur d’identité.
clientSecret String Clé secrète client pour l’application obtenue lorsque l’application est inscrite auprès du fournisseur d’identité. En écriture seule. Une opération de lecture retourne ****.
identityProviderType Chaîne Pour les locataires externes et les locataires du personnel, valeurs possibles : Facebook, Google.
Pour les locataires Azure AD B2C, valeurs possibles : Microsoft, Google, Amazon, LinkedIn, Facebook, GitHub, Twitter, , Weibo, QQ, , . WeChat

objet appleManagedIdentityProvider

Propriété Type Description
displayName Chaîne Nom d’affichage du fournisseur d’identité.
developerId Chaîne Identificateur de développeur Apple.
serviceId Chaîne L’identificateur de service Apple.
keyId Chaîne L’identificateur de la clé Apple.
certificateData Chaîne Les données de certificat, qui sont une longue chaîne de texte du certificat, peuvent être null.

objet openIdConnectIdentityProvider

Propriété Type Description
displayName Chaîne Nom d’affichage du fournisseur d’identité.
clientId String Identificateur de client pour l’application obtenue lors de l’inscription de l’application auprès du fournisseur d’identité.
clientSecret String Il s’agit d’une clé secrète client pour l’application obtenue lors de l’inscription de l’application auprès du fournisseur d’identité. ClientSecret a une dépendance sur responseType.
  • Lorsque responseType a la valeur code, un secret est requis pour l’échange de code d’authentification.
  • Lorsque responseType est id_token le secret n’est pas requis, car il n’y a pas d’échange de code dans le pipeline d’authentification. Dans ce mode, le id_token est retourné directement à partir de la réponse d’autorisation.
domainHint String L’indicateur de domaine peut être utilisé pour passer directement à la page de connexion du fournisseur d’identité spécifié, au lieu de faire une sélection par l’utilisateur dans la liste des fournisseurs d’identité disponibles.
claimsMapping claimsMapping Une fois que le fournisseur OIDC a renvoyé un jeton d’ID à Microsoft Entra ID, Microsoft Entra ID doit être en mesure de mapper les revendications du jeton reçu aux revendications que Microsoft Entra ID reconnaît et utilise. Ce type complexe capture ce mappage.
metadataUrl String URL du document de métadonnées du fournisseur d’identité OpenID Connect. Chaque fournisseur d’identité OpenID Connect décrit un document de métadonnées qui contient la plupart des informations requises pour effectuer la connexion. Cela inclut des informations telles que les URL à utiliser et l’emplacement des clés de signature publiques du service. Le document de métadonnées OpenID Connect se trouve toujours sur un point de terminaison qui se termine par .well-known/openid-configuration. Fournissez l’URL des métadonnées pour le fournisseur d’identité OpenID Connect que vous ajoutez.
responseMode String Le mode de réponse définit la méthode utilisée pour renvoyer des données du fournisseur d’identité personnalisé vers Azure AD B2C. Valeurs possibles : form_post, query.
responseType String Le type de réponse décrit le type d’informations renvoyées dans l’appel initial à l’authorization_endpoint du fournisseur d’identité personnalisé. Valeurs possibles : code , id_token , token.
étendue String L’étendue définit les informations et les autorisations que vous souhaitez collecter à partir de votre fournisseur d’identité personnalisé.

Objet oidcIdentityProvider

Propriété Type Description
clientAuthentication oidcClientAuthentication Paramètres d’authentification du client.
  • Utilisez le type complexe dérivé de oidcClientSecretAuthentication pour configurer votre fournisseur d’identité avec client_secret_post les méthodes ou client_secret_jwt authentication .
  • Utilisez le type oidcPrivateJwtKeyClientAuthentication pour configurer votre fournisseur d’identité avec private_key_jwt la méthode d’authentification.

    Pour des raisons de sécurité, client_secret_basic la méthode d’authentification n’est pas prise en charge.
  • clientId String Il s’agit de l’ID client de l’application obtenue lors de l’enregistrement de l’application auprès du fournisseur d’identité.
    displayName Chaîne Nom d’affichage du fournisseur d’identité. Hérité de identityProviderBase.
    id String Identificateur du fournisseur d’identité. Obligatoire. Hérité de identityProviderBase. Hérite de l’entité
    inboundClaimMapping oidcInboundClaimMappingOverride Une fois que le fournisseur OIDC a renvoyé un jeton d’ID à ID externe Microsoft Entra, ID externe Microsoft Entra doit être en mesure de mapper les revendications du jeton reçu aux revendications que Microsoft Entra ID reconnaît et utilise. Ce type complexe capture ce mappage.
    émetteur String URI de l’émetteur. L’URI de l’émetteur est une URL respectant la casse utilisant le schéma https qui contient le schéma, l’hôte et éventuellement les composants de numéro de port et de chemin d’accès, et aucun composant de requête ou de fragment.
    Note: La configuration d’autres locataires Microsoft Entra en tant que fournisseur d’identité externe n’est actuellement pas prise en charge. Par conséquent, le domaine dans l’URI microsoftonline.com de l’émetteur n’est pas accepté.
    responseType oidcResponseType Le type de réponse décrit le type d’informations renvoyées dans l’appel initial à l’authorization_endpoint du fournisseur d’identité personnalisé. Valeurs possibles :
  • code: conformément au flux de code d’autorisation, un code est renvoyé à Entra ID externe. Entra ID externe appelle le token_endpoint pour échanger le code contre le jeton.
  • id_token: un jeton d’ID est renvoyé à Entra ID externe à partir du fournisseur d’identité personnalisé. (Cette valeur n’est pas prise en charge pour le moment).
  • token: un jeton d’accès est renvoyé à Entra ID externe à partir du fournisseur d’identité personnalisé. Cette valeur n’est actuellement pas prise en charge.
  • étendue String L’étendue définit les informations et les autorisations que vous souhaitez collecter à partir de votre fournisseur d’identité personnalisé.
    wellKnownEndpoint String URL du document de métadonnées du fournisseur d’identité OpenID Connect. Chaque fournisseur d’identité OpenID Connect décrit un document de métadonnées qui contient la plupart des informations requises pour effectuer la connexion. Cela inclut des informations telles que les URL à utiliser et l’emplacement des clés de signature publiques du service. Le document de métadonnées OpenID Connect se trouve toujours sur un point de terminaison qui se termine par .well-known/openid-configuration.
    Note: Le document de métadonnées doit, au minimum, contenir les propriétés suivantes : issuer, authorization_endpoint, token_endpoint, token_endpoint_auth_methods_supported, response_types_supportedsubject_types_supported et jwks_uri. Pour plus d’informations, consultez Spécifications de découverte OpenID Connect .

    Réponse

    Si elle réussit, cette méthode renvoie un 201 Created code de réponse et une représentation JSON d’un objet socialIdentityProvider dans le corps de la réponse pour un locataire Microsoft Entra.

    Pour un locataire Azure AD B2C, cette méthode renvoie un 201 Created code de réponse et une représentation JSON d’un objet socialIdentityProvider, openIdConnectIdentityProvider ou appleManagedIdentityProvider dans le corps de la réponse.

    Si elle échoue, une erreur 4xx est renvoyée avec des détails spécifiques.

    Exemples

    Exemple 1 : Créer un fournisseur d’identité sociale

    Demande

    L’exemple suivant illustre une demande.

    POST https://graph.microsoft.com/beta/identity/identityProviders
    Content-type: application/json
    
    {
      "@odata.type": "microsoft.graph.socialIdentityProvider",
      "displayName": "Login with Amazon",
      "identityProviderType": "Amazon",
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "clientSecret": "42*****96"
    }
    

    Réponse

    L’exemple suivant illustre la réponse.

    Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
        "@odata.type": "microsoft.graph.socialIdentityProvider",
        "id": "Amazon-OAUTH",
        "displayName": "Login with Amazon",
        "identityProviderType": "Amazon",
        "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "clientSecret": "42*****96"
    }
    

    Exemple 2 : Créer un fournisseur d’identité Apple

    Demande

    L’exemple suivant illustre une demande.

    POST https://graph.microsoft.com/beta/identity/identityProviders
    Content-type: application/json
    
    {
      "@odata.type": "microsoft.graph.appleManagedIdentityProvider",
      "displayName": "Apple",
      "developerId": "qazx.1234",
      "serviceId": "com.contoso.app",
      "keyId": "4294967296",
      "certificateData": "******"
    }
    

    Réponse

    L’exemple suivant illustre la réponse.

    Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
      "@odata.type": "microsoft.graph.appleManagedIdentityProvider",
      "id": "Apple-Managed-OIDC",
      "displayName": "Apple",
      "developerId": "qazx.1234",
      "serviceId": "com.contoso.app",
      "keyId": "4294967296",
      "certificateData": "******"
    }
    

    Exemple 3 : Créer un fournisseur d’identité OpenID Connect (locataire B2C)

    Demande

    L’exemple suivant illustre une demande.

    POST https://graph.microsoft.com/beta/identity/identityProviders
    Content-type: application/json
    
    {
      "@odata.type": "microsoft.graph.openIdConnectIdentityProvider",
        "displayName": "Contoso",
        "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "clientSecret": "4294967296",
        "claimsMapping": {
            "userId": "myUserId",
            "givenName": "myGivenName",
            "surname": "mySurname",
            "email": "myEmail",
            "displayName": "myDisplayName"
        },
        "domainHint": "mycustomoidc",
        "metadataUrl": "https://mycustomoidc.com/.well-known/openid-configuration",
        "responseMode": "form_post",
        "responseType": "code",
        "scope": "openid"
    }
    
    

    Réponse

    L’exemple suivant illustre la réponse.

    Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
      "@odata.type": "microsoft.graph.openIdConnectIdentityProvider",
      "id": "Contoso-OIDC-00001111-aaaa-2222-bbbb-3333cccc4444",
      "displayName": "Contoso",
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "clientSecret": "4294967296",
      "claimsMapping": {
          "userId": "myUserId",
          "givenName": "myGivenName",
          "surname": "mySurname",
          "email": "myEmail",
          "displayName": "myDisplayName"
      },
      "domainHint": "mycustomoidc",
      "metadataUrl": "https://mycustomoidc.com/.well-known/openid-configuration",
      "responseMode": "form_post",
      "responseType": "code",
      "scope": "openid"
    }
    

    Exemple 4 : Créer un fournisseur d’identité OpenID Connect (locataire externe)

    Demande

    L’exemple suivant illustre une demande.

    POST https://graph.microsoft.com/beta/identity/identityProviders
    Content-type: application/json
    
    {
      "@odata.type": "#microsoft.graph.OidcIdentityProvider",
      "displayName": "Contoso AAD B2C",
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "issuer": "https://contoso.b2clogin.com/00001111-aaaa-2222-bbbb-3333cccc4444/v2.0/",
      "wellKnownEndpoint": "https://contoso.b2clogin.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_SIGNINEMAIL",
      "responseType": "code",
      "scope": "openid profile email offline_access",
      "clientAuthentication": {
        "@odata.type": "#microsoft.graph.oidcClientSecretAuthentication",
        "clientSecret": "4294967296"
      },
      "inboundClaimMapping": {
        "sub": "sub",
        "name": "name",
        "given_name": "given_name",
        "family_name": "family_name",
        "email": "email",
        "email_verified": "email_verified",
        "phone_number": "phone_number",
        "phone_number_verified": "phone_number_verified",
        "address": {
          "street_address": "street_address",
          "locality": "locality",
          "region": "region",
          "postal_code": "postal_code",
          "country": "country"
        }
      }
    }
    

    Réponse

    L’exemple suivant illustre la réponse.

    Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

    HTTP/1.1 201 Created
    Content-type: application/json
    
    {
      "@odata.type": "#microsoft.graph.OidcIdentityProvider",
      "id": "12345678-abcd-1234-cdef-aaaaaaaaaaaa",
      "displayName": "Contoso AAD B2C",
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "issuer": "https://contoso.b2clogin.com/00001111-aaaa-2222-bbbb-3333cccc4444/v2.0/",
      "wellKnownEndpoint": "https://contoso.b2clogin.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_SIGNINEMAIL",
      "responseType": "code",
      "scope": "openid profile email offline_access",
      "clientAuthentication": {
        "@odata.type": "#microsoft.graph.oidcClientSecretAuthentication",
        "clientSecret": "*****"
      },
      "inboundClaimMapping": {
        "sub": "sub",
        "name": "name",
        "given_name": "given_name",
        "family_name": "family_name",
        "email": "email",
        "email_verified": "email_verified",
        "phone_number": "phone_number",
        "phone_number_verified": "phone_number_verified",
        "address": {
          "street_address": "street_address",
          "locality": "locality",
          "region": "region",
          "postal_code": "postal_code",
          "country": "country"
        }
      }
    }