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.
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.
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.
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é.
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é.
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.
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"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new SocialIdentityProvider
{
OdataType = "microsoft.graph.socialIdentityProvider",
DisplayName = "Login with Amazon",
IdentityProviderType = "Amazon",
ClientId = "00001111-aaaa-2222-bbbb-3333cccc4444",
ClientSecret = "42*****96",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.IdentityProviders.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewIdentityProviderBase()
displayName := "Login with Amazon"
requestBody.SetDisplayName(&displayName)
identityProviderType := "Amazon"
requestBody.SetIdentityProviderType(&identityProviderType)
clientId := "00001111-aaaa-2222-bbbb-3333cccc4444"
requestBody.SetClientId(&clientId)
clientSecret := "42*****96"
requestBody.SetClientSecret(&clientSecret)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
identityProviders, err := graphClient.Identity().IdentityProviders().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
SocialIdentityProvider identityProviderBase = new SocialIdentityProvider();
identityProviderBase.setOdataType("microsoft.graph.socialIdentityProvider");
identityProviderBase.setDisplayName("Login with Amazon");
identityProviderBase.setIdentityProviderType("Amazon");
identityProviderBase.setClientId("00001111-aaaa-2222-bbbb-3333cccc4444");
identityProviderBase.setClientSecret("42*****96");
IdentityProviderBase result = graphClient.identity().identityProviders().post(identityProviderBase);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\SocialIdentityProvider;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new SocialIdentityProvider();
$requestBody->setOdataType('microsoft.graph.socialIdentityProvider');
$requestBody->setDisplayName('Login with Amazon');
$requestBody->setIdentityProviderType('Amazon');
$requestBody->setClientId('00001111-aaaa-2222-bbbb-3333cccc4444');
$requestBody->setClientSecret('42*****96');
$result = $graphServiceClient->identity()->identityProviders()->post($requestBody)->wait();
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.social_identity_provider import SocialIdentityProvider
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = SocialIdentityProvider(
odata_type = "microsoft.graph.socialIdentityProvider",
display_name = "Login with Amazon",
identity_provider_type = "Amazon",
client_id = "00001111-aaaa-2222-bbbb-3333cccc4444",
client_secret = "42*****96",
)
result = await graph_client.identity.identity_providers.post(request_body)
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new AppleManagedIdentityProvider
{
OdataType = "microsoft.graph.appleManagedIdentityProvider",
DisplayName = "Apple",
DeveloperId = "qazx.1234",
ServiceId = "com.contoso.app",
KeyId = "4294967296",
CertificateData = "******",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.IdentityProviders.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewIdentityProviderBase()
displayName := "Apple"
requestBody.SetDisplayName(&displayName)
developerId := "qazx.1234"
requestBody.SetDeveloperId(&developerId)
serviceId := "com.contoso.app"
requestBody.SetServiceId(&serviceId)
keyId := "4294967296"
requestBody.SetKeyId(&keyId)
certificateData := "******"
requestBody.SetCertificateData(&certificateData)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
identityProviders, err := graphClient.Identity().IdentityProviders().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AppleManagedIdentityProvider identityProviderBase = new AppleManagedIdentityProvider();
identityProviderBase.setOdataType("microsoft.graph.appleManagedIdentityProvider");
identityProviderBase.setDisplayName("Apple");
identityProviderBase.setDeveloperId("qazx.1234");
identityProviderBase.setServiceId("com.contoso.app");
identityProviderBase.setKeyId("4294967296");
identityProviderBase.setCertificateData("******");
IdentityProviderBase result = graphClient.identity().identityProviders().post(identityProviderBase);
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.apple_managed_identity_provider import AppleManagedIdentityProvider
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AppleManagedIdentityProvider(
odata_type = "microsoft.graph.appleManagedIdentityProvider",
display_name = "Apple",
developer_id = "qazx.1234",
service_id = "com.contoso.app",
key_id = "4294967296",
certificate_data = "******",
)
result = await graph_client.identity.identity_providers.post(request_body)
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new OpenIdConnectIdentityProvider
{
OdataType = "microsoft.graph.openIdConnectIdentityProvider",
DisplayName = "Contoso",
ClientId = "00001111-aaaa-2222-bbbb-3333cccc4444",
ClientSecret = "4294967296",
ClaimsMapping = new ClaimsMapping
{
UserId = "myUserId",
GivenName = "myGivenName",
Surname = "mySurname",
Email = "myEmail",
DisplayName = "myDisplayName",
},
DomainHint = "mycustomoidc",
MetadataUrl = "https://mycustomoidc.com/.well-known/openid-configuration",
ResponseMode = OpenIdConnectResponseMode.Form_post,
ResponseType = OpenIdConnectResponseTypes.Code,
Scope = "openid",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Identity.IdentityProviders.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
OpenIdConnectIdentityProvider identityProviderBase = new OpenIdConnectIdentityProvider();
identityProviderBase.setOdataType("microsoft.graph.openIdConnectIdentityProvider");
identityProviderBase.setDisplayName("Contoso");
identityProviderBase.setClientId("00001111-aaaa-2222-bbbb-3333cccc4444");
identityProviderBase.setClientSecret("4294967296");
ClaimsMapping claimsMapping = new ClaimsMapping();
claimsMapping.setUserId("myUserId");
claimsMapping.setGivenName("myGivenName");
claimsMapping.setSurname("mySurname");
claimsMapping.setEmail("myEmail");
claimsMapping.setDisplayName("myDisplayName");
identityProviderBase.setClaimsMapping(claimsMapping);
identityProviderBase.setDomainHint("mycustomoidc");
identityProviderBase.setMetadataUrl("https://mycustomoidc.com/.well-known/openid-configuration");
identityProviderBase.setResponseMode(OpenIdConnectResponseMode.Form_post);
identityProviderBase.setResponseType(EnumSet.of(OpenIdConnectResponseTypes.Code));
identityProviderBase.setScope("openid");
IdentityProviderBase result = graphClient.identity().identityProviders().post(identityProviderBase);