Поделиться через


Создание identityProvider

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Создайте объект поставщика удостоверений типа, указанного в тексте запроса.

Среди типов поставщиков, производных от identityProviderBase, в настоящее время можно создать ресурс socialIdentityProvider в идентификаторе Microsoft Entra. В Azure AD B2C эта операция в настоящее время может создать ресурс socialIdentityProvider, openIdConnectIdentityProvider или appleManagedIdentityProvider .

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) IdentityProvider.ReadWrite.All Недоступно.
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение IdentityProvider.ReadWrite.All Недоступно.

В делегированных сценариях с рабочими или учебными учетными записями вошедшему пользователю должна быть назначена поддерживаемая роль Microsoft Entra или настраиваемая роль с разрешением поддерживаемой роли. Администратор внешнего поставщика удостоверений — это наименее привилегированная роль, поддерживаемая для этой операции.

HTTP-запрос

POST /identity/identityProviders

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/json. Обязательно.

Текст запроса

В тексте запроса укажите представление объекта socialIdentityProvider в формате JSON в идентификаторе Microsoft Entra.

В Azure AD B2C предоставьте представление объекта socialIdentityProvider, openIdConnectIdentityProvider или объекта appleManagedIdentityProvider .

Все свойства, перечисленные в следующих таблицах, являются обязательными.

Объект socialIdentityProvider

Свойство Тип Описание
clientId String Идентификатор клиента для приложения, полученный при регистрации приложения с помощью поставщика удостоверений.
clientSecret String Секрет клиента для приложения, полученный при регистрации приложения с помощью поставщика удостоверений. Только для записи. Операция чтения возвращает ****.
displayName String Отображаемое имя поставщика удостоверений.
identityProviderType Строка Возможные значения для сценария B2B: Google, Facebook. Возможные значения для сценария B2C: Microsoft, Google, Amazon, LinkedIn, Facebook, GitHub, Twitter, Weibo, QQ, WeChat.

Объект openIdConnectIdentityProvider

Свойство Тип Описание
clientId String Идентификатор клиента для приложения, полученный при регистрации приложения с помощью поставщика удостоверений.
clientSecret Строка Секрет клиента для приложения, полученный при регистрации приложения с помощью поставщика удостоверений. ClientSecret зависит от responseType.
  • Если параметр responseType имеет значение code, для обмена кодом проверки подлинности требуется секрет.
  • Если параметр responseType является id_token секретом, он не требуется, так как обмен кодом отсутствует— id_token возвращается непосредственно из ответа авторизации.
displayName String Отображаемое имя поставщика удостоверений.
domainHint String Указание домена можно использовать для перехода непосредственно на страницу входа указанного поставщика удостоверений, а не для выбора пользователем списка доступных поставщиков удостоверений.
claimsMapping claimsMapping После того как поставщик OIDC отправит маркер идентификатора обратно в Microsoft Entra ID, идентификатор Microsoft Entra ID должен иметь возможность сопоставить утверждения из полученного маркера с утверждениями, которые распознает и использует Идентификатор Microsoft Entra. Этот сложный тип фиксирует это сопоставление.
metadataUrl String URL-адрес документа метаданных поставщика удостоверений OpenID Connect. Каждый поставщик удостоверений OpenID Connect описывает документ метаданных, содержащий большую часть сведений, необходимых для входа. Сюда входят такие сведения, как ИСПОЛЬЗУЕМЫЕ URL-адреса и расположение открытых ключей подписывания службы. Документ метаданных OpenID Connect всегда находится в конечной точке, которая заканчивается .well-known/openid-configurationна . Укажите URL-адрес метаданных для добавляемого поставщика удостоверений OpenID Connect.
responseMode String Режим ответа определяет метод, используемый для отправки данных из пользовательского поставщика удостоверений в Azure AD B2C. Возможные значения: form_post, query.
responseType String Тип ответа описывает тип информации, отправляемой при первоначальном вызове authorization_endpoint пользовательского поставщика удостоверений. Возможные значения: code , id_token , token.
область String Область определяет сведения и разрешения, которые требуется получить от пользовательского поставщика удостоверений.

Объект appleIdentityProvider

Свойство Тип Описание
displayName String Отображаемое имя поставщика удостоверений.
developerId Строка Идентификатор разработчика Apple.
serviceId Строка Идентификатор службы Apple.
keyId Строка Идентификатор ключа Apple.
certificateData Строка Данные сертификата, являющиеся длинной строкой текста из сертификата. Могут иметь значение NULL.

Отклик

В случае успешного 201 Created выполнения этот метод возвращает код отклика и представление объекта socialIdentityProvider в формате JSON для клиента Microsoft Entra.

Для клиента Azure AD B2C этот метод возвращает 201 Created код отклика и представление объекта socialIdentityProvider, openIdConnectIdentityProvider или объекта appleManagedIdentityProvider в тексте ответа.

В случае неудачи возвращается ошибка 4xx с подробностями.

Примеры

Пример 1. Создание определенного поставщика удостоверений социальных сетей (Microsoft Entra ID и Azure AD B2C)

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/beta/identity/identityProviders
Content-type: application/json

{
  "@odata.type": "microsoft.graph.socialIdentityProvider",
  "displayName": "Login with Amazon",
  "identityProviderType": "Amazon",
  "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
  "clientSecret": "000000000000"
}

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.type": "microsoft.graph.socialIdentityProvider",
    "id": "Amazon-OAUTH",
    "displayName": "Login with Amazon",
    "identityProviderType": "Amazon",
    "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
    "clientSecret": "000000000000"
}

Пример 2. Создание определенного поставщика удостоверений OpenID Connect (только для Azure AD B2C)

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/beta/identity/identityProviders
Content-type: application/json

{
  "@odata.type": "microsoft.graph.openIdConnectIdentityProvider",
    "displayName": "Login with the Contoso identity provider",
    "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
    "clientSecret": "12345",
    "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"
}

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.type": "microsoft.graph.openIdConnectIdentityProvider",
  "id": "OIDC-V1-MyTest-085a8a0c-58cb-4b6d-8e07-1328ea404e1a",
  "displayName": "Login with the Contoso identity provider",
  "clientId": "56433757-cadd-4135-8431-2c9e3fd68ae8",
  "clientSecret": "12345",
  "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"
}

Пример 3. Получение поставщика удостоверений Apple (только для Azure AD B2C)

Запрос

Ниже показан пример запроса.

POST https://graph.microsoft.com/beta/identity/identityProviders
Content-type: application/json

{
  "@odata.type": "microsoft.graph.appleManagedIdentityProvider",
  "displayName": "Sign in with Apple",
  "developerId": "UBF8T346G9",
  "serviceId": "com.microsoft.rts.b2c.test.client",
  "keyId": "99P6D879C4",
  "certificateData": "******"
}

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
  "@odata.type": "microsoft.graph.appleManagedIdentityProvider",
  "id": "Apple-Managed-OIDC",
  "displayName": "Sign in with Apple",
  "developerId": "UBF8T346G9",
  "serviceId": "com.microsoft.rts.b2c.test.client",
  "keyId": "99P6D879C4",
  "certificateData": "******"
}