Namespace: microsoft.graph
Wichtig
Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.
Erstellen Sie ein Identitätsanbieterobjekt, das den im Anforderungstext angegebenen Typ aufweist.
Unter den Von identityProviderBase abgeleiteten Anbietertypen kann dieser Vorgang in Microsoft Entra eine socialIdentityProvider-, appleManagedIdentityProvider-Ressource (nur externer Mandant) oder eine oidcIdentityProvider-Ressource (nur externer Mandant) erstellen.
In Azure AD B2C kann dieser Vorgang eine socialIdentityProvider-, appleManagedIdentityProvider-, builtinIdentityProvider- oder openIdConnectIdentityProvider-Ressource erstellen.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service |
US Government L4 |
US Government L5 (DOD) |
China, betrieben von 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Berechtigungen
Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.
| Berechtigungstyp |
Berechtigungen mit den geringsten Berechtigungen |
Berechtigungen mit höheren Berechtigungen |
| Delegiert (Geschäfts-, Schul- oder Unikonto) |
IdentityProvider.ReadWrite.All |
Nicht verfügbar. |
| Delegiert (persönliches Microsoft-Konto) |
Nicht unterstützt |
Nicht unterstützt |
| Application |
IdentityProvider.ReadWrite.All |
Nicht verfügbar. |
Wichtig
In delegierten Szenarien mit Geschäfts-, Schul- oder Unikonten muss dem angemeldeten Benutzer eine unterstützte Microsoft Entra Rolle oder eine benutzerdefinierte Rolle mit einer unterstützten Rollenberechtigung zugewiesen werden.
Der Externe Identitätsanbieteradministrator ist die Rolle mit den geringsten Berechtigungen, die für diesen Vorgang unterstützt wird.
HTTP-Anforderung
POST /identity/identityProviders
Anforderungstext
Geben Sie im Anforderungstext eine JSON-Darstellung von socialIdentityProvider, oidcIdentityProvider oder einem appleManagedIdentityProvider-Objekt in Microsoft Entra External ID an.
Geben Sie in Azure AD B2C eine JSON-Darstellung von socialIdentityProvider, openIdConnectIdentityProvider oder ein appleManagedIdentityProvider-Objekt an.
Alle in den folgenden Tabellen aufgeführten Eigenschaften sind erforderlich.
socialIdentityProvider-Objekt
| Eigenschaft |
Typ |
Beschreibung |
| displayName |
Zeichenfolge |
Der Anzeigename des Identitätsanbieters. |
| clientId |
Zeichenfolge |
Der Client-Bezeichner für die Anwendung, der beim Registrieren der Anwendung beim Identitätsanbieter erhalten wird. |
| clientSecret |
Zeichenfolge |
Der geheime Clientschlüssel für die Anwendung, der beim Registrieren der Anwendung beim Identitätsanbieter erhalten wird. Dieser verfügt nur über Schreibzugriff. Ein Lesevorgang gibt **** zurück. |
| identityProviderType |
Zeichenfolge |
Mögliche Werte für externe Mandanten und Mitarbeitermandanten: Facebook, Google. Mögliche Werte für Azure AD B2C-Mandanten: Microsoft, Google, , AmazonLinkedIn, FacebookGitHub, Twitter, Weibo, QQ, , . WeChat |
appleManagedIdentityProvider-Objekt
| Eigenschaft |
Typ |
Beschreibung |
| displayName |
Zeichenfolge |
Der Anzeigename des Identitätsanbieters. |
| developerId |
Zeichenfolge |
Der Apple-Entwicklerbezeichner. |
| ServiceID |
Zeichenfolge |
Der Apple-Dienstbezeichner. |
| keyId |
Zeichenfolge |
Der Apple-Schlüsselbezeichner. |
| certificateData |
Zeichenfolge |
Die Zertifikatsdaten, die eine lange Textfolge aus dem Zertifikat sind, können NULL sein. |
openIdConnectIdentityProvider-Objekt
| Eigenschaft |
Typ |
Beschreibung |
| displayName |
Zeichenfolge |
Der Anzeigename des Identitätsanbieters. |
| clientId |
Zeichenfolge |
Der Client-Bezeichner für die Anwendung, der beim Registrieren der Anwendung beim Identitätsanbieter erhalten wird. |
| clientSecret |
String |
Der geheime Clientschlüssel für die Anwendung, der beim Registrieren der Anwendung beim Identitätsanbieter abgerufen wird. ClientSecret weist eine Abhängigkeit von responseType auf. - Wenn responseType ist
code, ist ein Geheimnis für den Authentifizierungscodeaustausch erforderlich. - Wenn responseType ist, ist
id_token das Geheimnis nicht erforderlich, da es keinen Codeaustausch in der Authentifizierungspipeline gibt. In diesem Modus wird die id_token direkt von der Autorisierungsantwort zurückgegeben.
|
| domainHint |
Zeichenfolge |
Der Domänenhinweis kann verwendet werden, um direkt zur Anmeldeseite des angegebenen Identitätsanbieters zu springen, anstatt dass der Benutzer eine Auswahl in der Liste der verfügbaren Identitätsanbieter trifft. |
| claimsMapping |
claimsMapping |
Nachdem der OIDC-Anbieter ein ID-Token zurück an Microsoft Entra ID gesendet hat, muss Microsoft Entra ID in der Lage sein, die Ansprüche aus dem empfangenen Token den Ansprüchen zuzuordnen, die Microsoft Entra ID erkennt und verwendet. Dieser komplexe Typ erfasst diese Zuordnung. |
| metadataUrl |
Zeichenfolge |
Die URL für das Metadatendokument des OpenID Connect-Identitätsanbieters. Jeder OpenID Connect-Identitätsanbieter beschreibt ein Metadatendokument, das die meisten Informationen enthält, die für die Anmeldung erforderlich sind. Dies umfasst Informationen wie die zu verwendenden URLs und den Speicherort der öffentlichen Signaturschlüssel des Diensts. Das OpenID Connect-Metadatendokument befindet sich immer an einem Endpunkt, der auf .well-known/openid-configurationendet. Geben Sie die Metadaten-URL für den OpenID Connect-Identitätsanbieter an, den Sie hinzufügen. |
| responseMode |
Zeichenfolge |
Der Antwortmodus definiert die Methode, mit der Daten vom benutzerdefinierten Identitätsanbieter an Azure AD B2C zurückgesendet werden. Mögliche Werte: form_post, query. |
| responseType |
Zeichenfolge |
Der Antworttyp beschreibt den Typ der Informationen, die beim ersten Aufruf des authorization_endpoint des benutzerdefinierten Identitätsanbieters zurückgesendet wurden. Mögliche Werte: code , id_token , token. |
| Bereich |
Zeichenfolge |
Bereich definiert die Informationen und Berechtigungen, die Sie von Ihrem benutzerdefinierten Identitätsanbieter sammeln möchten. |
oidcIdentityProvider-Objekt
| Eigenschaft |
Typ |
Beschreibung |
| clientAuthentication |
oidcClientAuthentication |
Die Einstellungen für die Clientauthentifizierung. Verwenden Sie den abgeleiteten komplexen Typ oidcClientSecretAuthentication , um Ihren Identitätsanbieter mit client_secret_post - oder client_secret_jwt authentication -Methoden einzurichten. Verwenden Sie den oidcPrivateJwtKeyClientAuthentication-Typ , um Ihren Identitätsanbieter mit private_key_jwt Authentifizierungsmethode einzurichten.
Aus Sicherheitsgründen wird die client_secret_basic Authentifizierungsmethode nicht unterstützt. |
| clientId |
String |
Die Client-ID für die Anwendung, die bei der Registrierung der Anwendung beim Identitätsanbieter abgerufen wird. |
| displayName |
Zeichenfolge |
Der Anzeigename des Identitätsanbieters. Geerbt von identityProviderBase. |
| id |
Zeichenfolge |
Der Bezeichner des Identitätsanbieters. Erforderlich. Geerbt von identityProviderBase. Erbt von der Entität |
| inboundClaimMapping |
oidcInboundClaimMappingOverride |
Nachdem der OIDC-Anbieter ein ID-Token zurück an Microsoft Entra External ID gesendet hat, muss Microsoft Entra External ID in der Lage sein, die Ansprüche aus dem empfangenen Token den Ansprüchen zuzuordnen, die Microsoft Entra ID erkennt und verwendet. Dieser komplexe Typ erfasst diese Zuordnung. |
| Emittent |
Zeichenfolge |
Der Aussteller-URI. Der Aussteller-URI ist eine URL, bei der die Groß-/Kleinschreibung beachtet wird, bei der das HTTPS-Schema verwendet wird, das Schema, den Host und optional die Komponenten der Portnummer und des Pfads enthält und keine Abfrage- oder Fragmentkomponenten enthält.
Anmerkung: Das Konfigurieren anderer Microsoft Entra Mandanten als externer Identitätsanbieter wird derzeit nicht unterstützt. Daher wird die microsoftonline.com Domäne im Aussteller-URI nicht akzeptiert. |
| responseType |
oidcResponseType |
Der Antworttyp beschreibt den Typ der Informationen, die beim ersten Aufruf des authorization_endpoint des benutzerdefinierten Identitätsanbieters zurückgesendet wurden. Mögliche Werte:
code: Gemäß dem Autorisierungscodeflow wird ein Code an Entra External ID zurückgegeben. Entra External ID fährt mit dem Aufruf des token_endpoint fort, um den Code gegen das Token auszutauschen.
id_token: Ein ID-Token wird vom benutzerdefinierten Identitätsanbieter zurück an Entra External ID zurückgegeben. (Dieser Wert wird derzeit nicht unterstützt.)
token: Ein Zugriffstoken wird vom benutzerdefinierten Identitätsanbieter zurück an Entra External ID zurückgegeben. Dieser Wert wird derzeit nicht unterstützt. |
| Bereich |
Zeichenfolge |
Bereich definiert die Informationen und Berechtigungen, die Sie von Ihrem benutzerdefinierten Identitätsanbieter sammeln möchten. |
| wellKnownEndpoint |
Zeichenfolge |
Die URL für das Metadatendokument des OpenID Connect-Identitätsanbieters. Jeder OpenID Connect-Identitätsanbieter beschreibt ein Metadatendokument, das die meisten Informationen enthält, die für die Anmeldung erforderlich sind. Dies umfasst Informationen wie die zu verwendenden URLs und den Speicherort der öffentlichen Signaturschlüssel des Diensts. Das OpenID Connect-Metadatendokument befindet sich immer an einem Endpunkt, der auf .well-known/openid-configurationendet.
Anmerkung: Das Metadatendokument sollte mindestens die folgenden Eigenschaften enthalten: issuer, authorization_endpoint, , token_endpointtoken_endpoint_auth_methods_supported, response_types_supportedsubject_types_supported und jwks_uri. Weitere Informationen finden Sie unter OpenID Connect Discovery-Spezifikationen . |
Antwort
Bei erfolgreicher Ausführung gibt die Methode einen 201 Created Antwortcode und eine JSON-Darstellung eines socialIdentityProvider-Objekts im Antworttext für einen Microsoft Entra Mandanten zurück.
Für einen Azure AD B2C-Mandanten gibt diese Methode einen 201 Created Antwortcode und eine JSON-Darstellung eines socialIdentityProvider-, openIdConnectIdentityProvider- oder appleManagedIdentityProvider-Objekts im Antworttext zurück.
Wenn die Methode nicht erfolgreich ist, wird ein 4xx-Fehler mit bestimmten Details zurückgegeben.
Beispiele
Beispiel 1: Erstellen eines Identitätsanbieters für soziale Netzwerke
Anforderung
Das folgende Beispiel zeigt eine Anfrage.
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);
const options = {
authProvider,
};
const client = Client.init(options);
const identityProviderBase = {
'@odata.type': 'microsoft.graph.socialIdentityProvider',
displayName: 'Login with Amazon',
identityProviderType: 'Amazon',
clientId: '00001111-aaaa-2222-bbbb-3333cccc4444',
clientSecret: '42*****96'
};
await client.api('/identity/identityProviders')
.version('beta')
.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();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@odata.type" = "microsoft.graph.socialIdentityProvider"
displayName = "Login with Amazon"
identityProviderType = "Amazon"
clientId = "00001111-aaaa-2222-bbbb-3333cccc4444"
clientSecret = "42*****96"
}
New-MgBetaIdentityProvider -BodyParameter $params
# 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)
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
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"
}
Beispiel 2: Erstellen eines Apple-Identitätsanbieters
Anforderung
Das folgende Beispiel zeigt eine Anfrage.
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": "******"
}
// 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);
const options = {
authProvider,
};
const client = Client.init(options);
const identityProviderBase = {
'@odata.type': 'microsoft.graph.appleManagedIdentityProvider',
displayName: 'Apple',
developerId: 'qazx.1234',
serviceId: 'com.contoso.app',
keyId: '4294967296',
certificateData: '******'
};
await client.api('/identity/identityProviders')
.version('beta')
.post(identityProviderBase);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\AppleManagedIdentityProvider;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AppleManagedIdentityProvider();
$requestBody->setOdataType('microsoft.graph.appleManagedIdentityProvider');
$requestBody->setDisplayName('Apple');
$requestBody->setDeveloperId('qazx.1234');
$requestBody->setServiceId('com.contoso.app');
$requestBody->setKeyId('4294967296');
$requestBody->setCertificateData('******');
$result = $graphServiceClient->identity()->identityProviders()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@odata.type" = "microsoft.graph.appleManagedIdentityProvider"
displayName = "Apple"
developerId = "qazx.1234"
serviceId = "com.contoso.app"
keyId = "4294967296"
certificateData = "******"
}
New-MgBetaIdentityProvider -BodyParameter $params
# 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)
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
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": "******"
}
Beispiel 3: Erstellen eines OpenID Connect-Identitätsanbieters (B2C-Mandant)
Anforderung
Das folgende Beispiel zeigt eine Anfrage.
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"
}
// 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 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 := "Contoso"
requestBody.SetDisplayName(&displayName)
clientId := "00001111-aaaa-2222-bbbb-3333cccc4444"
requestBody.SetClientId(&clientId)
clientSecret := "4294967296"
requestBody.SetClientSecret(&clientSecret)
claimsMapping := graphmodels.NewClaimsMapping()
userId := "myUserId"
claimsMapping.SetUserId(&userId)
givenName := "myGivenName"
claimsMapping.SetGivenName(&givenName)
surname := "mySurname"
claimsMapping.SetSurname(&surname)
email := "myEmail"
claimsMapping.SetEmail(&email)
displayName := "myDisplayName"
claimsMapping.SetDisplayName(&displayName)
requestBody.SetClaimsMapping(claimsMapping)
domainHint := "mycustomoidc"
requestBody.SetDomainHint(&domainHint)
metadataUrl := "https://mycustomoidc.com/.well-known/openid-configuration"
requestBody.SetMetadataUrl(&metadataUrl)
responseMode := graphmodels.FORM_POST_OPENIDCONNECTRESPONSEMODE
requestBody.SetResponseMode(&responseMode)
responseType := graphmodels.CODE_OPENIDCONNECTRESPONSETYPES
requestBody.SetResponseType(&responseType)
scope := "openid"
requestBody.SetScope(&scope)
// 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);
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);
const options = {
authProvider,
};
const client = Client.init(options);
const identityProviderBase = {
'@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'
};
await client.api('/identity/identityProviders')
.version('beta')
.post(identityProviderBase);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\OpenIdConnectIdentityProvider;
use Microsoft\Graph\Beta\Generated\Models\ClaimsMapping;
use Microsoft\Graph\Beta\Generated\Models\OpenIdConnectResponseMode;
use Microsoft\Graph\Beta\Generated\Models\OpenIdConnectResponseTypes;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new OpenIdConnectIdentityProvider();
$requestBody->setOdataType('microsoft.graph.openIdConnectIdentityProvider');
$requestBody->setDisplayName('Contoso');
$requestBody->setClientId('00001111-aaaa-2222-bbbb-3333cccc4444');
$requestBody->setClientSecret('4294967296');
$claimsMapping = new ClaimsMapping();
$claimsMapping->setUserId('myUserId');
$claimsMapping->setGivenName('myGivenName');
$claimsMapping->setSurname('mySurname');
$claimsMapping->setEmail('myEmail');
$claimsMapping->setDisplayName('myDisplayName');
$requestBody->setClaimsMapping($claimsMapping);
$requestBody->setDomainHint('mycustomoidc');
$requestBody->setMetadataUrl('https://mycustomoidc.com/.well-known/openid-configuration');
$requestBody->setResponseMode(new OpenIdConnectResponseMode('form_post'));
$requestBody->setResponseType(new OpenIdConnectResponseTypes('code'));
$requestBody->setScope('openid');
$result = $graphServiceClient->identity()->identityProviders()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@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"
}
New-MgBetaIdentityProvider -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.open_id_connect_identity_provider import OpenIdConnectIdentityProvider
from msgraph_beta.generated.models.claims_mapping import ClaimsMapping
from msgraph_beta.generated.models.open_id_connect_response_mode import OpenIdConnectResponseMode
from msgraph_beta.generated.models.open_id_connect_response_types import OpenIdConnectResponseTypes
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = OpenIdConnectIdentityProvider(
odata_type = "microsoft.graph.openIdConnectIdentityProvider",
display_name = "Contoso",
client_id = "00001111-aaaa-2222-bbbb-3333cccc4444",
client_secret = "4294967296",
claims_mapping = ClaimsMapping(
user_id = "myUserId",
given_name = "myGivenName",
surname = "mySurname",
email = "myEmail",
display_name = "myDisplayName",
),
domain_hint = "mycustomoidc",
metadata_url = "https://mycustomoidc.com/.well-known/openid-configuration",
response_mode = OpenIdConnectResponseMode.Form_post,
response_type = OpenIdConnectResponseTypes.Code,
scope = "openid",
)
result = await graph_client.identity.identity_providers.post(request_body)
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
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"
}
Beispiel 4: Erstellen eines OpenID Connect-Identitätsanbieters (externer Mandant)
Anforderung
Das folgende Beispiel zeigt eine Anfrage.
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"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
using Microsoft.Kiota.Abstractions.Serialization;
var requestBody = new IdentityProviderBase
{
OdataType = "#microsoft.graph.OidcIdentityProvider",
DisplayName = "Contoso AAD B2C",
AdditionalData = new Dictionary<string, object>
{
{
"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" , new OidcClientSecretAuthentication
{
OdataType = "#microsoft.graph.oidcClientSecretAuthentication",
ClientSecret = "4294967296",
}
},
{
"inboundClaimMapping" , new UntypedObject(new Dictionary<string, UntypedNode>
{
{
"sub", new UntypedString("sub")
},
{
"name", new UntypedString("name")
},
{
"given_name", new UntypedString("given_name")
},
{
"family_name", new UntypedString("family_name")
},
{
"email", new UntypedString("email")
},
{
"email_verified", new UntypedString("email_verified")
},
{
"phone_number", new UntypedString("phone_number")
},
{
"phone_number_verified", new UntypedString("phone_number_verified")
},
{
"address", new UntypedObject(new Dictionary<string, UntypedNode>
{
{
"street_address", new UntypedString("street_address")
},
{
"locality", new UntypedString("locality")
},
{
"region", new UntypedString("region")
},
{
"postal_code", new UntypedString("postal_code")
},
{
"country", new UntypedString("country")
},
})
},
})
},
},
};
// 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 := "Contoso AAD B2C"
requestBody.SetDisplayName(&displayName)
additionalData := map[string]interface{}{
"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 := graphmodels.NewOidcClientSecretAuthentication()
clientSecret := "4294967296"
clientAuthentication.SetClientSecret(&clientSecret)
requestBody.SetClientAuthentication(clientAuthentication)
inboundClaimMapping := graph.New()
sub := "sub"
inboundClaimMapping.SetSub(&sub)
name := "name"
inboundClaimMapping.SetName(&name)
given_name := "given_name"
inboundClaimMapping.SetGiven_name(&given_name)
family_name := "family_name"
inboundClaimMapping.SetFamily_name(&family_name)
email := "email"
inboundClaimMapping.SetEmail(&email)
email_verified := "email_verified"
inboundClaimMapping.SetEmail_verified(&email_verified)
phone_number := "phone_number"
inboundClaimMapping.SetPhone_number(&phone_number)
phone_number_verified := "phone_number_verified"
inboundClaimMapping.SetPhone_number_verified(&phone_number_verified)
address := graph.New()
street_address := "street_address"
address.SetStreet_address(&street_address)
locality := "locality"
address.SetLocality(&locality)
region := "region"
address.SetRegion(®ion)
postal_code := "postal_code"
address.SetPostal_code(&postal_code)
country := "country"
address.SetCountry(&country)
inboundClaimMapping.SetAddress(address)
requestBody.SetInboundClaimMapping(inboundClaimMapping)
}
requestBody.SetAdditionalData(additionalData)
// 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);
IdentityProviderBase identityProviderBase = new IdentityProviderBase();
identityProviderBase.setOdataType("#microsoft.graph.OidcIdentityProvider");
identityProviderBase.setDisplayName("Contoso AAD B2C");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("clientId", "00001111-aaaa-2222-bbbb-3333cccc4444");
additionalData.put("issuer", "https://contoso.b2clogin.com/00001111-aaaa-2222-bbbb-3333cccc4444/v2.0/");
additionalData.put("wellKnownEndpoint", "https://contoso.b2clogin.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_SIGNINEMAIL");
additionalData.put("responseType", "code");
additionalData.put("scope", "openid profile email offline_access");
OidcClientSecretAuthentication clientAuthentication = new OidcClientSecretAuthentication();
clientAuthentication.setOdataType("#microsoft.graph.oidcClientSecretAuthentication");
clientAuthentication.setClientSecret("4294967296");
additionalData.put("clientAuthentication", clientAuthentication);
inboundClaimMapping = new ();
inboundClaimMapping.setSub("sub");
inboundClaimMapping.setName("name");
inboundClaimMapping.setGivenName("given_name");
inboundClaimMapping.setFamilyName("family_name");
inboundClaimMapping.setEmail("email");
inboundClaimMapping.setEmailVerified("email_verified");
inboundClaimMapping.setPhoneNumber("phone_number");
inboundClaimMapping.setPhoneNumberVerified("phone_number_verified");
address = new ();
address.setStreetAddress("street_address");
address.setLocality("locality");
address.setRegion("region");
address.setPostalCode("postal_code");
address.setCountry("country");
inboundClaimMapping.setAddress(address);
additionalData.put("inboundClaimMapping", inboundClaimMapping);
identityProviderBase.setAdditionalData(additionalData);
IdentityProviderBase result = graphClient.identity().identityProviders().post(identityProviderBase);
const options = {
authProvider,
};
const client = Client.init(options);
const identityProviderBase = {
'@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'
}
}
};
await client.api('/identity/identityProviders')
.version('beta')
.post(identityProviderBase);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\IdentityProviderBase;
use Microsoft\Graph\Beta\Generated\Models\OidcClientSecretAuthentication;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new IdentityProviderBase();
$requestBody->setOdataType('#microsoft.graph.OidcIdentityProvider');
$requestBody->setDisplayName('Contoso AAD B2C');
$additionalData = [
'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',
],
],
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->identity()->identityProviders()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Identity.SignIns
$params = @{
"@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"
}
}
}
New-MgBetaIdentityProvider -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.identity_provider_base import IdentityProviderBase
from msgraph_beta.generated.models.oidc_client_secret_authentication import OidcClientSecretAuthentication
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = IdentityProviderBase(
odata_type = "#microsoft.graph.OidcIdentityProvider",
display_name = "Contoso AAD B2C",
additional_data = {
"client_id" : "00001111-aaaa-2222-bbbb-3333cccc4444",
"issuer" : "https://contoso.b2clogin.com/00001111-aaaa-2222-bbbb-3333cccc4444/v2.0/",
"well_known_endpoint" : "https://contoso.b2clogin.com/contoso.onmicrosoft.com/v2.0/.well-known/openid-configuration?p=B2C_1A_SIGNINEMAIL",
"response_type" : "code",
"scope" : "openid profile email offline_access",
"client_authentication" : {
"@odata_type" : "#microsoft.graph.oidcClientSecretAuthentication",
"client_secret" : "4294967296",
},
"inbound_claim_mapping" : {
"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",
},
},
}
)
result = await graph_client.identity.identity_providers.post(request_body)
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
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"
}
}
}