Compartilhar via


Criar identityProvider

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

Crie um objeto de fornecedor de identidade do tipo especificado no corpo do pedido.

Entre os tipos de fornecedores derivados de identityProviderBase, no Microsoft Entra, esta operação pode criar um recurso socialIdentityProvider, appleManagedIdentityProvider (apenas inquilino externo) ou um recurso oidcIdentityProvider (apenas inquilino externo).

No Azure AD B2C, esta operação pode criar um recurso socialIdentityProvider, appleManagedIdentityProvider, builtinIdentityProvider ou openIdConnectIdentityProvider.

Esta API está disponível nas seguintes implementações de cloud nacionais.

Serviço global US Government L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegada (conta corporativa ou de estudante) IdentityProvider.ReadWrite.All Indisponível.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application IdentityProvider.ReadWrite.All Indisponível.

Importante

Em cenários delegados com contas escolares ou profissionais, o utilizador com sessão iniciada tem de ter uma função de Microsoft Entra suportada ou uma função personalizada com uma permissão de função suportada. O Administrador do Fornecedor de Identidade Externo é a função com menos privilégios suportada para esta operação.

Solicitação HTTP

POST /identity/identityProviders

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

Corpo da solicitação

No corpo do pedido, forneça uma representação JSON de socialIdentityProvider, oidcIdentityProvider ou um objeto appleManagedIdentityProvider no ID externa do Microsoft Entra.

No Azure AD B2C fornecem uma representação JSON de socialIdentityProvider, openIdConnectIdentityProvider ou um objeto appleManagedIdentityProvider.

São necessárias todas as propriedades listadas nas seguintes tabelas.

objeto socialIdentityProvider

Propriedade Tipo Descrição
displayName Cadeia de caracteres O nome de exibição exclusivo do provedor de identidade.
clientId Cadeia de caracteres O identificador do cliente para o aplicativo obtido ao registrar o aplicativo com o provedor de identidade.
clientSecret Cadeia de caracteres O segredo do cliente para o aplicativo obtido quando o aplicativo é registrado com o provedor de identidade. Isso é somente gravação. Uma operação de leitura retorna ****.
identityProviderType Cadeia de caracteres Para inquilinos externos e de força de trabalho, são possíveis valores: Facebook, Google.
Para Azure AD inquilinos B2C, os valores possíveis: Microsoft, Google, , Amazon, FacebookLinkedIn, GitHub, , Twitter, Weibo, , QQ. WeChat

objeto appleManagedIdentityProvider

Propriedade Tipo Descrição
displayName Cadeia de caracteres O nome de exibição exclusivo do provedor de identidade.
developerId Cadeia de caracteres O Identificador de desenvolvedor da Apple.
serviceId Cadeia de caracteres O identificador de serviço da Apple.
keyId Cadeia de caracteres O identificador de chave da Apple.
certificateData Cadeia de caracteres Os dados do certificado, que são uma longa sequência de texto do certificado, podem ser nulos.

objeto openIdConnectIdentityProvider

Propriedade Tipo Descrição
displayName Cadeia de caracteres O nome de exibição exclusivo do provedor de identidade.
clientId Cadeia de caracteres O identificador do cliente para o aplicativo obtido ao registrar o aplicativo com o provedor de identidade.
clientSecret Cadeia de caracteres O segredo do cliente para o aplicativo obtido ao registrar o aplicativo no provedor de identidade. O clientSecret tem uma dependência em responseType.
  • Quando responseType é code, é necessário um segredo para a troca de código de autenticação.
  • Quando responseType é id_token o segredo não é necessário porque não existe nenhuma troca de código no pipeline de autenticação. Neste modo, o id_token é devolvido diretamente a partir da resposta de autorização.
domainHint Cadeia de caracteres A sugestão de domínio pode ser utilizada para avançar diretamente para a página de início de sessão do fornecedor de identidade especificado, em vez de fazer com que o utilizador faça uma seleção entre a lista de fornecedores de identidade disponíveis.
claimsMapping claimsMapping Depois de o fornecedor OIDC enviar um token de ID de volta para Microsoft Entra ID, Microsoft Entra ID tem de conseguir mapear as afirmações do token recebido para as afirmações que Microsoft Entra ID reconhece e utiliza. Este tipo complexo captura esse mapeamento.
metadataUrl Cadeia de caracteres O URL do documento de metadados do fornecedor de identidade do OpenID Connect. Todos os fornecedores de identidade do OpenID Connect descrevem um documento de metadados que contém a maioria das informações necessárias para efetuar o início de sessão. Isto inclui informações como os URLs a utilizar e a localização das chaves de assinatura públicas do serviço. O documento de metadados do OpenID Connect está sempre localizado num ponto final que termina em .well-known/openid-configuration. Indique o URL de metadados do fornecedor de identidade do OpenID Connect que adicionar.
responseMode Cadeia de caracteres O modo de resposta define o método utilizado para enviar dados do fornecedor de identidade personalizado para Azure AD B2C. Valores possíveis: form_post, query.
responseType Cadeia de caracteres O tipo de resposta descreve o tipo de informações enviadas na chamada inicial para o authorization_endpoint do fornecedor de identidade personalizado. Valores possíveis: code , , id_tokentoken.
scope Cadeia de caracteres O âmbito define as informações e permissões que pretende recolher do seu fornecedor de identidade personalizado.

objeto oidcIdentityProvider

Propriedade Tipo Descrição
clientAuthentication oidcClientAuthentication As definições de autenticação de cliente.
  • Utilize o tipo complexo derivado oidcClientSecretAuthentication para configurar o seu fornecedor de identidade com client_secret_post ou client_secret_jwt authentication métodos.
  • Utilize o tipo oidcPrivateJwtKeyClientAuthentication para configurar o fornecedor de identidade com private_key_jwt o método de autenticação.

    Devido a razões de segurança, client_secret_basic o método de autenticação não é suportado.
  • clientId Cadeia de caracteres A ID do cliente para o aplicativo obtido ao registrar o aplicativo no provedor de identidade.
    displayName Cadeia de caracteres O nome de exibição exclusivo do provedor de identidade. Herdado de identityProviderBase.
    id Cadeia de caracteres O identificador do fornecedor de identidade. Necessário. Herdado de identityProviderBase. Herda da entidade
    inboundClaimMapping oidcInboundClaimMappingOverride Depois de o fornecedor OIDC enviar um token de ID para ID externa do Microsoft Entra, ID externa do Microsoft Entra tem de conseguir mapear as afirmações do token recebido para as afirmações que Microsoft Entra ID reconhece e utiliza. Este tipo complexo captura esse mapeamento.
    emissor Cadeia de caracteres O URI do emissor. O URI do emissor é um URL sensível às maiúsculas e minúsculas que utiliza o esquema https que contém o esquema, o anfitrião e, opcionalmente, o número da porta e os componentes do caminho e nenhum componente de consulta ou fragmento.
    Nota: A configuração de outros inquilinos Microsoft Entra como um fornecedor de identidade externa não é atualmente suportada. Como resultado, o microsoftonline.com domínio no URI do emissor não é aceite.
    responseType oidcResponseType O tipo de resposta descreve o tipo de informações enviadas na chamada inicial para o authorization_endpoint do fornecedor de identidade personalizado. Valores possíveis:
  • code: de acordo com o fluxo de código de autorização, é devolvido um código ao ID externa Entra. Entra ID externa continua a chamar o token_endpoint para trocar o código do token.
  • id_token: é devolvido um token de ID ao Entra ID externa do fornecedor de identidade personalizado. (Neste momento, este valor não é suportado).
  • token: é devolvido um token de acesso ao Entra ID externa do fornecedor de identidade personalizado. Este valor não é atualmente suportado.
  • scope Cadeia de caracteres O âmbito define as informações e permissões que pretende recolher do seu fornecedor de identidade personalizado.
    wellKnownEndpoint Cadeia de caracteres O URL do documento de metadados do fornecedor de identidade do OpenID Connect. Todos os fornecedores de identidade do OpenID Connect descrevem um documento de metadados que contém a maioria das informações necessárias para efetuar o início de sessão. Isto inclui informações como os URLs a utilizar e a localização das chaves de assinatura públicas do serviço. O documento de metadados do OpenID Connect está sempre localizado num ponto final que termina em .well-known/openid-configuration.
    Nota: O documento de metadados deve, no mínimo, conter as seguintes propriedades: , , , , , response_types_supportedsubject_types_supported e jwks_uri. token_endpoint_auth_methods_supportedtoken_endpointauthorization_endpointissuer Visite as especificações do OpenID Connect Discovery para obter mais detalhes.

    Resposta

    Se for bem-sucedido, este método devolve um 201 Created código de resposta e uma representação JSON de um objeto socialIdentityProvider no corpo da resposta de um inquilino Microsoft Entra.

    Para um Azure AD inquilino B2C, este método devolve um 201 Created código de resposta e uma representação JSON de um objeto socialIdentityProvider, openIdConnectIdentityProvider ou appleManagedIdentityProvider no corpo da resposta.

    Caso não consiga, um 4xx erro será retornado com detalhes específicos.

    Exemplos

    Exemplo 1: Criar um fornecedor de identidade social

    Solicitação

    O exemplo a seguir mostra uma solicitação.

    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"
    }
    

    Resposta

    O exemplo a seguir mostra a resposta.

    Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

    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"
    }
    

    Exemplo 2: Criar um fornecedor de identidade da Apple

    Solicitação

    O exemplo a seguir mostra uma solicitação.

    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": "******"
    }
    

    Resposta

    O exemplo a seguir mostra a resposta.

    Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

    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": "******"
    }
    

    Exemplo 3: Criar um fornecedor de identidade do OpenID Connect (inquilino B2C)

    Solicitação

    O exemplo a seguir mostra uma solicitação.

    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"
    }
    
    

    Resposta

    O exemplo a seguir mostra a resposta.

    Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

    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"
    }
    

    Exemplo 4: Criar um fornecedor de identidade do OpenID Connect (inquilino externo)

    Solicitação

    O exemplo a seguir mostra uma solicitação.

    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"
        }
      }
    }
    

    Resposta

    O exemplo a seguir mostra a resposta.

    Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

    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"
        }
      }
    }