Criar federatedIdentityCredential

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 novo objeto federatedIdentityCredential para um aplicativo ou um agentIdentityBlueprint.

Ao configurar uma relação de confiança entre o registro do aplicativo Microsoft Entra ou o blueprint de identidade do agente e o provedor de identidade da plataforma de computação, você pode usar tokens emitidos por essa plataforma para autenticar com a plataforma de identidade da Microsoft e chamar APIs no ecossistema da Microsoft. No máximo 20 objetos podem ser adicionados a um blueprint de identidade de aplicativo ou agente.

Essa API está disponível nas seguintes implantações de nuvem nacional.

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

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Permissões para um aplicativo

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) Application.ReadWrite.All Indisponível.
Delegado (conta pessoal da Microsoft) Application.ReadWrite.All Indisponível.
Application Application.ReadWrite.OwnedBy Application.ReadWrite.All

Importante

Para acesso delegado usando contas corporativas ou de estudante, o usuário conectado deve receber uma função do Microsoft Entra com suporte ou uma função personalizada que conceda as permissões necessárias para esta operação. Esta operação dá suporte às seguintes funções internas, que fornecem apenas o menor privilégio necessário:

  • Um usuário membro não administrador com permissões de usuário padrão - para aplicativos que possuem
  • Desenvolvedor de Aplicativos - para aplicativos que possuem
  • Administrador de Aplicativos de Nuvem
  • Administrador de Aplicativos

Permissões para um agentIdentityBlueprint

Tipo de permissão Permissão com privilégios mínimos Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) AgentIdentityBlueprint.Create AgentIdentityBlueprint.ReadWrite.All, Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application AgentIdentityBlueprint.Create AgentIdentityBlueprint.ReadWrite.All, Directory.ReadWrite.All

Importante

  • Uma entidade de segurança que cria um blueprint de identidade de agente ou uma entidade de segurança de plano é automaticamente atribuída como proprietária.
  • Os proprietários podem criar e modificar identidades de agente associadas a um blueprint que possuem sem receber uma função de ID de agente.
  • Para que os não proprietários chamem essa API em cenários delegados usando contas corporativas ou de estudante, o administrador deve receber uma função do Microsoft Entra com suporte. Esta operação dá suporte à seguinte função interna com privilégios mínimos:

Solicitação HTTP

Para um aplicativo:

  • Você pode abordar o aplicativo usando sua id ou appId. id e appId são chamados de ID do Objeto e ID do Aplicativo (Cliente), respectivamente, em registros de aplicativo no centro de administração do Microsoft Entra.
POST /applications/{id}/federatedIdentityCredentials
POST /applications(appId='{appId}')/federatedIdentityCredentials

Para um agentIdentityBlueprint:

POST /applications/{id}/microsoft.graph.agentIdentityBlueprint/federatedIdentityCredentials

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 da solicitação, forneça uma representação JSON do objeto federatedIdentityCredential .

A tabela a seguir lista as propriedades necessárias ao criar o federatedIdentityCredential.

Propriedade Tipo Descrição
Públicos-alvo String collection Obrigatório. A audiência que pode aparecer no token externo. Esse campo é obrigatório e deve ser definido como api://AzureADTokenExchange para o Microsoft Entra ID. Ele diz o que a aud plataforma de identidade da Microsoft deve aceitar na declaração no token de entrada. Esse valor representa o Microsoft Entra ID em seu provedor de identidade externo e não tem valor fixo entre provedores de identidade – talvez seja necessário criar um novo registro de aplicativo em seu provedor de identidade para servir como o público-alvo desse token. Este campo só pode aceitar um único valor e tem um limite de 600 caracteres.
claimsMatchingExpression federatedIdentityExpression Anulável. O padrão é null se não estiver definido. Permite o uso de declarações que correspondem a expressões em declarações especificadas. Se claimsMatchingExpression estiver definido, o assunto deverá ser null. Para obter a lista de sintaxe de expressão e declarações com suporte, visite a referência FIC flexível.
do emissor Cadeia de caracteres Obrigatório. A URL do provedor de identidade externo e deve corresponder à declaração do emissor do token externo que está sendo trocado. A combinação dos valores de emissor e assunto deve ser exclusiva no aplicativo. Tem um limite de 600 caracteres.
nome Cadeia de caracteres Obrigatório. O identificador exclusivo da credencial de identidade federada, que tem um limite de 120 caracteres e deve ser amigável para URL. É imutável depois de criado.
assunto Cadeia de caracteres Anulável. O padrão é null se não estiver definido. O identificador da carga de trabalho de software externo no provedor de identidade externo. Assim como o valor de audiência, ele não tem um formato fixo, pois cada provedor de identidade usa o seu próprio: às vezes um GUID, às vezes um identificador delimitado por dois pontos, às vezes cadeias de caracteres arbitrárias. O valor aqui deve corresponder à declaração sub dentro do token apresentado ao Microsoft Entra ID. Tem um limite de 600 caracteres. A combinação de emissor e assunto deve ser exclusiva no aplicativo. Se o assunto for definido, claimsMatchingExpression deverá ser null.

Resposta

Se for bem-sucedido, esse método retornará um código de 201 Created resposta e um objeto federatedIdentityCredential no corpo da resposta.

Exemplos

Exemplo 1: Criar uma credencial de identidade federada para um aplicativo

Solicitação

POST https://graph.microsoft.com/beta/applications/bcd7c908-1c4d-4d48-93ee-ff38349a75c8/federatedIdentityCredentials/
Content-Type: application/json

{
    "name": "testing02",
    "issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
    "subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
    "audiences": [
        "api://AzureADTokenExchange"
    ]
}

Resposta

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

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#applications('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/d9b7bf1e-429e-4678-8132-9b00c9846cc4",
    "id": "d9b7bf1e-429e-4678-8132-9b00c9846cc4",
    "name": "testing02",
    "issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
    "subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
    "description": null,
    "audiences": [
        "api://AzureADTokenExchange"
    ]
}

Exemplo 2: Criar uma credencial de identidade federada para um agentIdentityBlueprint

Solicitação

POST https://graph.microsoft.com/beta/applications/bcd7c908-1c4d-4d48-93ee-ff38349a75c8/microsoft.graph.agentIdentityBlueprint/federatedIdentityCredentials/
Content-Type: application/json

{
    "name": "testing02",
    "issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
    "subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
    "audiences": [
        "api://AzureADTokenExchange"
    ]
}

Resposta

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

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#applications('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/$entity",
    "@odata.id": "https://graph.microsoft.com/v2/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/directoryObjects/$/Microsoft.DirectoryServices.Application('bcd7c908-1c4d-4d48-93ee-ff38349a75c8')/federatedIdentityCredentials/d9b7bf1e-429e-4678-8132-9b00c9846cc4",
    "id": "d9b7bf1e-429e-4678-8132-9b00c9846cc4",
    "name": "testing02",
    "issuer": "https://login.microsoftonline.com/3d1e2be9-a10a-4a0c-8380-7ce190f98ed9/v2.0",
    "subject": "a7d388c3-5e3f-4959-ac7d-786b3383006a",
    "description": null,
    "audiences": [
        "api://AzureADTokenExchange"
    ]
}