Compartilhar via


Entender o manifesto do aplicativo (formato do Microsoft Graph)

O manifesto do aplicativo contém todos os atributos e os respectivos valores de um registro de aplicativo na plataforma de identidade da Microsoft.

Um manifesto de aplicativo do Microsoft Graph trata-se de um objeto JSON que representa um registro de aplicativo. Ele também é chamado de tipo de recurso de aplicativo do Microsoft Graph ou objeto de aplicativo do Microsoft Graph (objeto de aplicativo). Ele contém todos os atributos e os respectivos valores de um registro de aplicativo.

O objeto de aplicativo que você recebe usando o método Get Application do Microsoft Graph é o mesmo objeto JSON presente na página Manifesto do registro de aplicativos no centro de administração do Microsoft Entra.

Observação

Para aplicativos registrados com sua conta pessoal da Microsot (conta MSA), você continuará a ver manifestos de aplicativos no formato do Azure AD Graph no centro de administração do Microsoft Entra até ocorrerem outras alterações. Para obter mais informações, consulte Manifesto do aplicativo Microsoft Entra (formato Azure AD Graph).

Configurar o manifesto do aplicativo Microsoft Graph

Se você quiser configurar o Manifesto do Aplicativo Microsoft Graph programaticamente, poderá usar a API do Microsoft Graph ou o SDK do PowerShell do Microsoft Graph.

Também é possível configurar o manifesto do aplicativo usando o centro de administração do Microsoft Entra. A maioria dos atributos pode ser configurada usando um elemento de interface do usuário em registros de aplicativo. No entanto, alguns atributos precisam ser configurados editando o manifesto do aplicativo diretamente na página Manifesto.

Configurar o manifesto do aplicativo no centro de administração do Microsoft Entra

Para configurar o manifesto do aplicativo Microsoft Graph:

  1. Faça login no Centro de administração do Microsoft Entra como pelo menos um Desenvolvedor de aplicativos.

  2. Navegue até Identidade>Aplicativos>Registros do aplicativo.

  3. Selecione o aplicativo que você deseja configurar.

  4. Na página Visão Geral do aplicativo, selecione a seção Manifesto. Um editor de manifesto baseado na Web é aberto, permitindo que você edite o manifesto. Opcionalmente, você pode selecionar Download para editar o manifesto localmente e usar Upload para reaplicá-lo ao seu aplicativo.

Referência do manifesto

Esta seção descreve os atributos encontrados no manifesto do aplicativo Microsoft Graph.

ID do atributo

Chave Tipo de valor
id String

Essa propriedade é conhecida como ID de objeto no centro de administração do Microsoft Entra. É um identificador exclusivo para o objeto de aplicativo no diretório.

Essa ID não é o identificador usado para identificar o aplicativo em qualquer transação de protocolo. Ele é usado para referenciar o objeto em consultas de diretório.

É um atributo não anulável e somente leitura.

Exemplo:

    "id": "f7f9acfc-ae0c-4d6c-b489-0a81dc1652dd",

atributo appId

Chave Tipo de valor
appId String

Essa propriedade é conhecida como ID do aplicativo (cliente) no centro de administração do Microsoft Entra. É um identificador exclusivo para o objeto de aplicativo no diretório.

Essa ID é o identificador usado para identificar o aplicativo em qualquer transação de protocolo.

É um atributo não anulável e somente leitura.

Exemplo:

"appId": "00001111-aaaa-2222-bbbb-3333cccc4444",

atributo addIns

Chave Tipo de valor
addIns Coleção

Define o comportamento personalizado que um serviço de consumo pode usar para chamar um aplicativo em contextos específicos. Por exemplo, os aplicativos que podem renderizar fluxos de arquivos podem definir a propriedade addIns para a funcionalidade "FileHandler" dessa propriedade. Esse parâmetro permite que serviços como o Microsoft 365 chamem o aplicativo no contexto de um documento no qual o usuário está trabalhando.

Exemplo:

    "addIns": [
       {
        "id": "968A844F-7A47-430C-9163-07AE7C31D407",
        "type":" FileHandler",
        "properties": [
           {
              "key": "version",
              "value": "2"
           }
        ]
       }
    ],

appRoles

Chave Tipo de valor
appRoles Coleção

Especifica a coleção de funções que um aplicativo pode declarar. Essas funções podem ser atribuídas a usuários, grupos ou entidades de serviço. Para ver exemplos e mais informações, confira Adicionar funções de aplicativo ao seu aplicativo e recebê-las no token.

Exemplo:

    "appRoles": [
        {
           "allowedMemberTypes": [
               "User"
           ],
           "description": "Read-only access to device information",
           "displayName": "Read Only",
           "id": "00001111-aaaa-2222-bbbb-3333cccc4444",
           "isEnabled": true,
           "value": "ReadOnly"
        }
    ],

GroupMembershipClaims

Chave Tipo de valor
GroupMembershipClaims String

Configura a declaração groups emitida em um usuário ou o token de acesso OAuth 2.0 que o aplicativo espera. Para definir esse atributo, use um dos seguintes valores válidos da cadeia de caracteres:

  • None
  • SecurityGroup (para grupos de segurança e funções do Microsoft Entra)
  • ApplicationGroup (essa opção inclui apenas os grupos atribuídos ao aplicativo)
  • DirectoryRole (obtém as funções de diretório do Microsoft Entra das quais o usuário é membro)
  • All (isso obterá todos os grupos de segurança, grupos de distribuição e funções do diretório do Microsoft Entra dos quais o usuário conectado é membro).

Exemplo:

    "groupMembershipClaims": "SecurityGroup",

atributo optionalClaims

Chave Tipo de valor
optionalClaims String

As declarações opcionais retornadas no token pelo serviço de token de segurança para este aplicativo específico.

Os aplicativos que oferecem suporte a contas pessoais e ao Microsoft Entra ID não podem usar declarações opcionais. No entanto, os aplicativos registrados apenas para o Microsoft Entra ID usando o ponto de extremidade v2.0 podem obter as declarações opcionais solicitadas no manifesto. Para obter mais informações, confira Declarações opcionais.

Exemplo:

    "optionalClaims":{
"idToken": [{"@odata.type": "microsoft.graph.optionalClaim"}],
"accessToken": [{"@odata.type": "microsoft.graph.optionalClaim"}],
"saml2Token": [{"@odata.type": "microsoft.graph.optionalClaim"}]
}

atributo identifierUris

Chave Tipo de valor
identifierUris Matriz de cadeia de caracteres

URIs definidos pelo usuário que identificam com exclusividade um aplicativo web no respectivo locatário do Microsoft Entra ou um domínio pertencente a um cliente. Quando um aplicativo é usado como um aplicativo de recurso, o valor de identifierUri é usado para identificar e acessar exclusivamente o recurso.

Há suporte para os seguintes formatos de URI de ID de aplicativo baseados em esquema HTTP e API. Substitua os valores nos espaços reservados conforme descrito na lista após a tabela.

ID do aplicativo com suporte
Formatos de URI
URIs de ID do aplicativo de exemplo
api://<appId> api://00001111-aaaa-2222-bbbb-3333cccc4444
api://<tenantId>/<appId> api://aaaabbbb-0000-cccc-1111-dddd2222eeee/00001111-aaaa-2222-bbbb-3333cccc4444
api://<tenantId>/<string> api://aaaabbbb-0000-cccc-1111-dddd2222eeee/api
api://<string>/<appId> api://productapi/00001111-aaaa-2222-bbbb-3333cccc4444
https://<tenantInitialDomain>.onmicrosoft.com/<string> https://contoso.onmicrosoft.com/productsapi
https://<verifiedCustomDomain>/<string> https://contoso.com/productsapi
https://<string>.<verifiedCustomDomain> https://product.contoso.com
https://<string>.<verifiedCustomDomain>/<string> https://product.contoso.com/productsapi
  • <appId> - A propriedade do identificador de aplicativo (appId) do objeto de aplicativo.
  • <string> - O valor da cadeia de caracteres do host ou do segmento de linha da AP.
  • <tenantId> - Um GUID gerado pelo Azure para representar o locatário no Azure.
  • <tenantInitialDomain> - <tenantInitialDomain>.onmicrosoft.com, em que <tenantInitialDomain> é o nome de domínio inicial que o criador do locatário especificou na criação do locatário.
  • <verifiedCustomDomain> ─ Um domínio personalizado verificado que foi configurado para seu locatário do Microsoft Entra.

Observação

Ao usar o esquema api://, adicione um valor de cadeia de caracteres diretamente após "api://". Por exemplo, api://<string>. Esse valor de cadeia de caracteres pode ser um GUID ou uma cadeia de caracteres arbitrária. Se você adicionar um valor de GUID, ele deverá corresponder à ID do aplicativo ou à ID do locatário. O valor do URI da ID do aplicativo deve ser exclusivo para seu locatário. Se você adicionar api://<tenantId> como o URI da ID do aplicativo, ninguém mais poderá usar esse URI em nenhum outro aplicativo. Recomenda-se usar api://<appId> ou o esquema HTTP como alternativa.

Importante

O valor do URI da ID do aplicativo não deve terminar com um caractere "/" de barra.

Exemplo:

    "identifierUris": "https://contoso.onmicrosoft.com/fc4d2d73-d05a-4a9b-85a8-4f2b3a5f38ed",

atributo keyCredentials

Chave Tipo de valor
keyCredentials Coleção

Contém referências a credenciais, segredos compartilhados com base em cadeia de caracteres e certificados X.509 atribuídos ao aplicativo. Essas credenciais são usadas ao solicitar tokens de acesso (quando o aplicativo está agindo como um cliente e não como um recurso).

Exemplo:

    "keyCredentials": [
        {
           "customKeyIdentifier":null,
           "endDateTime":"2018-09-13T00:00:00Z",
           "keyId":"<guid>",
           "startDateTime":"2017-09-12T00:00:00Z",
           "type":"AsymmetricX509Cert",
           "usage":"Verify",
           "value":null
        }
    ],

atributo displayName

Chave Tipo de valor
displayName String

O nome de exibição do aplicativo.

Exemplo:

" displayName": "MyRegisteredApp",

atributo oauth2RequiredPostResponse

Chave Tipo de valor
oauth2RequiredPostResponse Booliano

Especifica se, como parte das solicitações de token OAuth 2.0, o Microsoft Entra ID permite solicitações POST, em vez de solicitações GET. O padrão é false, que especifica que somente as solicitações GET serão permitidas.

Exemplo:

    "oauth2RequirePostResponse": false,

atributo parentalControlSettings

Chave Tipo de valor
parentalControlSettings String
  • countriesBlockedForMinors especifica os países/regiões em que o aplicativo está bloqueado para menores.
  • legalAgeGroupRule especifica a regra de grupo de faixa etária que se aplica a usuários do aplicativo. Pode ser definido como Allow, RequireConsentForPrivacyServices, RequireConsentForMinors, RequireConsentForKids ou BlockMinors.

Exemplo:

    "parentalControlSettings": {
        "countriesBlockedForMinors": [],
        "legalAgeGroupRule": "Allow"
    },

atributo passwordCredentials

Chave Tipo de valor
passwordCredentials Coleção

Confira a descrição da propriedade keyCredentials.

Exemplo:

    "passwordCredentials": [
      {
        "customKeyIdentifier": null,
        "displayName": "Generated by App Service",
        "endDateTime": "2022-10-19T17:59:59.6521653Z",
        "hint": "Nsn",
        "keyId": "<guid>",
        "secretText": null,        
        "startDateTime":"2022-10-19T17:59:59.6521653Z"
      }
    ],

atributo publisherDomain

Chave Tipo de valor
publisherDomain String

O domínio do fornecedor verificado para o aplicativo. Somente leitura. Para editar o domínio do editor do registro do aplicativo, siga as etapas listadas em Configurar um domínio do editor de um aplicativo.

Exemplo:

"publisherDomain": "{tenant}.onmicrosoft.com",

atributo requiredResourceAccess

Chave Tipo de valor
requiredResourceAccess Coleção

Com o consentimento dinâmico, o requiredResourceAccess gera a experiência de consentimento do administrador e a experiência de consentimento do usuário para usuários que estão usando o consentimento estático. No entanto, esse parâmetro não gera a experiência de consentimento do usuário para o caso geral.

  • resourceAppId é o identificador exclusivo do recurso ao qual o aplicativo requer acesso. Esse valor deve ser igual à appId declarada no aplicativo do recurso de destino.
  • resourceAccess é uma matriz que lista os escopos de permissão do OAuth2.0 e as funções de aplicativo que o aplicativo exige do recurso especificado. Contém os valores id e type dos recursos especificados.

Exemplo:

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000002-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
                    "type": "Scope"
                }
            ]
        }
    ],

atributo samlMetadataUrl

Chave Tipo de valor
samlMetadataUrl String

A URL dos metadados SAML do aplicativo.

Exemplo:

    "samlMetadataUrl": "https://MyRegisteredAppSAMLMetadata",

atributo signInAudience

Chave Tipo de valor
signInAudience String

Especifica quais contas da Microsoft são suportadas para o aplicativo atual. Os valores com suporte são:

  • AzureADMyOrg – usuários com uma conta corporativa ou de estudante da Microsoft no locatário do Microsoft Entra da minha organização (por exemplo, locatário único)
  • AzureADMultipleOrgs – usuários com uma conta corporativa ou de estudante da Microsoft no locatário do Microsoft Entra de qualquer organização (por exemplo, multilocatário)
  • AzureADandPersonalMicrosoftAccount – usuários com uma conta Microsoft pessoal ou uma conta corporativa ou de estudante no locatário do Microsoft Entra de qualquer organização
  • PersonalMicrosoftAccount – Contas pessoais usadas para entrar em serviços como Xbox e Skype.

Exemplo:

    "signInAudience": "AzureADandPersonalMicrosoftAccount",

atributo tags

Chave Tipo de valor
marcas Matriz de cadeia de caracteres

Cadeias de caracteres personalizadas que podem ser usadas para categorizar e identificar o aplicativo.

As marcas individuais devem ter entre 1 e 256 caracteres (inclusive). Nenhum espaço em branco ou marcas duplicadas são permitidos. Não há um limite específico no número de marcas que podem ser adicionadas, sujeitos a limites gerais de tamanho de manifesto.

Exemplo:

    "tags": [
       "ProductionApp"
    ],

Atributo isFallbackPublicClient

Chave Tipo de valor
isFallbackPublicClient Booliano

Especifica o tipo de aplicativo de fallback como cliente público, como um aplicativo instalado em execução em um dispositivo móvel. O valor padrão desse atributo é false, o que significa que o tipo de aplicativo de fallback é um cliente confidencial, como um aplicativo Web. Há determinados cenários em que o Microsoft Entra ID não pode determinar o tipo de aplicativo cliente. Por exemplo, o fluxo ROPC em que ele está configurado sem especificar um URI de redirecionamento. Nesses casos, o Microsoft Entra ID interpreta o tipo de aplicativo com base no valor dessa propriedade.

Exemplo:

"isFallbackPublicClient ": "false",

A Microsoft não recomenda o fluxo ROPC, que é um padrão inseguro. Na maioria dos cenários, existem fluxos mais seguros que você pode usar.

atributo info

Chave Tipo de valor
informações informationalUrl

Especifica informações básicas de perfil do aplicativo, incluindo marketing, suporte, termos de serviço, política de privacidade e URLs de logotipo do aplicativo.

Observe que:

Exemplo:

Info: { 
"termsOfService": "https://MyRegisteredApp/termsofservice",
"support": "https://MyRegisteredApp/support",
"privacy": "https://MyRegisteredApp/privacystatement",
"marketing": "https://MyRegisteredApp/marketing"
"logoUrl": "https://MyRegisteredApp/logoUrl",
}

atributo api

Chave Tipo de valor
api Tipo de recurso apiApplication

Especifica as configurações de um aplicativo que implementa uma API Web. Isso inclui cinco propriedades:

Propriedade Type Descrição
acceptMappedClaims Booliano Quando está definido como true, ele permite que um aplicativo use o mapeamento de declarações sem especificar uma chave de autenticação personalizada. Os aplicativos que recebem tokens dependem do fato de que os valores de declaração são emitidos com autorização pelo Microsoft Entra ID e não podem ser adulterados. No entanto, quando você modifica o conteúdo do token por meio de políticas de mapeamento de declarações, essas suposições podem não estar mais corretas. Os aplicativos devem reconhecer explicitamente que os tokens foram modificados pelo criador da política de mapeamento de declarações para se protegerem das políticas de mapeamento de declarações criadas por atores mal-intencionados. Aviso: não defina a propriedade acceptMappedClaims como verdadeiro para aplicativos multilocatários, o que pode permitir que atores mal-intencionados criem políticas de mapeamento de declarações para seu aplicativo.
knownClientApplications collection Usado para agrupamento de consentimento no caso de uma solução que contenha duas partes: um aplicativo cliente e um aplicativo de API Web personalizado. Se você definir o appID do aplicativo cliente para esse valor, o usuário consentirá somente uma vez com o aplicativo cliente. O Microsoft Entra ID sabe que consentir com o cliente significa consentir implicitamente com a API Web e provisiona automaticamente as entidades de serviço para as duas APIs ao mesmo tempo. O cliente e o aplicativo de API Web precisam ser registrados no mesmo locatário.
oauth2PermissionScopes Coleção permissionScope A definição das permissões delegadas expostas pela API Web representada por esse registro de aplicativo. Essas permissões delegadas podem ser solicitadas por um aplicativo cliente e concedidas por usuários ou administradores durante o consentimento. Às vezes, as permissões delegadas são chamadas de escopos do OAuth 2.0.
preAuthorizedApplications Coleção preAuthorizedApplication Lista os aplicativos cliente pré-autorizados com as permissões delegadas especificadas para acessar as APIs desse aplicativo. Os usuários não são obrigados a consentir com nenhum aplicativo pré-autorizado (para as permissões especificadas). No entanto, quaisquer outras permissões não listadas em preAuthorizedApplications (solicitadas por meio de consentimento incremental, por exemplo) exigirão o consentimento do usuário.
requestedAccessTokenVersion Int32 Especifica a versão do token de acesso esperada por esse recurso. Isso altera a versão e o formato do JWT produzido, independentemente do ponto de extremidade ou do cliente usado para solicitar o token de acesso. O ponto de extremidade usado, v1.0 ou v2.0, é escolhido pelo cliente e só afeta a versão do id_tokens. Os recursos precisam configurar explicitamente requestedAccessTokenVersion para indicar o formato do token de acesso com suporte. Os valores possíveis para requestedAccessTokenVersion são 1, 2 ou null. Se o valor for nulo, será usado o padrão de 1, que corresponde ao ponto de extremidade v1.0. Se signInAudience no aplicativo estiver configurado como AzureADandPersonalMicrosoftAccount ou PersonalMicrosoftAccount, o valor dessa propriedade deverá ser 2.

Exemplo:

Api:{
    "acceptMappedClaims": true,
    "knownClientApplications": ["f7f9acfc-ae0c-4d6c-b489-0a81dc1652dd"],
    "oauth2PermissionScopes": [
        {
        "adminConsentDescription": "Allow the app to access resources on behalf of the signed-in user.",
        "adminConsentDisplayName": "Access resource1",
        "id": "<guid>",
        "isEnabled": true,
        "type": "User",
        "userConsentDescription": "Allow the app to access resource1 on your behalf.",
        "userConsentDisplayName": "Access resources",
        "value": "user_impersonation"
        }
    ],
    "preAuthorizedApplications": [{
        "appId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "permissionIds": [
        "8748f7db-21fe-4c83-8ab5-53033933c8f1"
        ]
    }],
    "requestedAccessTokenVersion": 2
}

atributo da web

Chave Tipo de valor
Web Tipo de recurso webApplication

Especifica as configurações de um aplicativo Web. Isso inclui quatro propriedades.

Propriedade Type Descrição
homePageUrl String Home page ou página de aterrissagem do aplicativo.
implicitGrantSettings implicitGrantSettings Especifica se esse aplicativo Web pode solicitar tokens usando o fluxo implícito do OAuth 2.0.
logoutUrl String Especifica o URL usado pelo serviço de autorização da Microsoft para desconectar um usuário usando protocolos de saída de canal frontal, canal traseiro ou SAML.
redirectUris Coleção de Cadeias de Caracteres Especifica os URLs para os quais os tokens de usuário são enviados para entrada ou os URIs de redirecionamento para os quais os códigos de autorização e os tokens de acesso do OAuth 2.0 são enviados na plataforma Web.

Exemplo:

web: {
    "homePageUrl": "String",
    "implicitGrantSettings": {
    "enableIdTokenIssuance": "Boolean",
    "enableAccessTokenIssuance": "Boolean"}
    "logoutUrl": "String",
    "redirectUris": ["String"]
}

atributo spa

Chave Tipo de valor
spa Tipo de recurso spaApplication

Especifica as configurações para um aplicativo de página única, incluindo URLs de saída e URIs de redirecionamento para códigos de autorização e tokens de acesso.

Propriedade Type Descrição
redirectUris Coleção de Cadeias de Caracteres Especifica os URLs para os quais os tokens de usuário são enviados para entrada ou os URIs de redirecionamento para os quais os códigos de autorização e os tokens de acesso do OAuth 2.0 são enviados.

Exemplo:

spa: {
    "redirectUris": ["String"]
}

atributo publicClient

Chave Tipo de valor
publicClient Tipo de recurso publicClientApplication

Especifica as configurações para aplicativo não Web ou API não Web (por exemplo, iOS, Android, dispositivos móveis ou outros clientes públicos, como um aplicativo instalado em execução em um dispositivo de desktop).

Propriedade Type Descrição
redirectUris Coleção de Cadeias de Caracteres Especifica os URLs para os quais os tokens de usuário são enviados para entrada ou os URIs de redirecionamento para os quais os códigos de autorização e os tokens de acesso do OAuth 2.0 são enviados.

Exemplo:

publicClient: {
"redirectUris": ["String"]
}

Problemas comuns

Limites de manifesto

Um manifesto de aplicativo tem vários atributos que são chamados de coleções; por exemplo, appRoles, keyCredentials, knownClientApplications, identifierUris, redirectUris, requiredResourceAccess e oauth2PermissionsScopes. No manifesto completo do aplicativo para qualquer aplicativo, o número total de entradas em todas as coleções combinadas tem sido limitado a 1.200. Se você especificar antecipadamente 100 AppRoles no manifesto do aplicativo, restarão a você apenas 1.100 entradas para usar em todas as outras coleções combinadas que compõem o manifesto.

Observação

Caso você tente adicionar mais de 1.200 entradas no manifesto do aplicativo, poderá ver o erro "Falha ao atualizar o aplicativo xxxxxx. Detalhes do erro: O tamanho do manifesto excedeu o limite. Reduza o número de valores e repita a solicitação".

Solucionar problemas de migração de manifesto do formato do Azure AD Graph para o formato do Microsoft Graph

Ao carregar um manifesto do aplicativo baixado anteriormente no formato do Azure AD Graph, pode ocorrer o seguinte erro:

Falha ao atualizar o aplicativo {nome do aplicativo}. Detalhe do erro: propriedade inválida '{nome da propriedade}'.**

Isso pode ser devido à migração do Azure AD Graph para o manifesto do aplicativo Microsoft Graph. Em primeiro lugar, é necessário verificar se o manifesto do aplicativo está no formato do Azure AD Graph. Se estiver, será necessário converter o manifesto do aplicativo para o formato do Microsoft Graph.

Não consigo encontrar o atributo trustedCertificateSubjects

O atributo trustedCertificateSubjects é uma propriedade interna da Microsoft. O centro de administração do Microsoft Entra mostra a versão 1.0 do manifesto do aplicativo do Microsoft Graph, o atributo trustedCertificateSubjects só está presente na versão beta do manifesto do aplicativo (formato do Microsoft Graph). Continue editando essa propriedade usando o manifesto do aplicativo (formato Azure AD Graph) no centro de administração do Microsoft Entra.

ERRO: o aplicativo não foi encontrado. Se o aplicativo acabou de ser criado, aguarde alguns minutos e atualize a página.**

Se o aplicativo não foi criado, talvez você esteja recebendo esse erro porque adicionou um atributo inválido no manifesto do aplicativo Microsoft Graph. Examine as diferenças de atributo entre os formatos do Azure AD Graph e do Microsoft Graph e veja se você adicionou um atributo que não tem suporte na versão v1.0 do formato do Microsoft Graph mostrada no portal.

Próximas etapas

Para obter mais informações sobre a relação entre os objetos aplicativo e entidade de serviço do aplicativo, confira Objetos de aplicativo e de entidade de serviço no Microsoft Entra ID.

Confira o Glossário de desenvolvedor da plataforma de identidade da Microsoft para obter definições de alguns conceitos principais do desenvolvedor da plataforma de identidade da Microsoft.

Use a seção de comentários a seguir para dar sua opinião e nos ajudar a aprimorar e adaptar nosso conteúdo.