Obter acesso em nome de um usuárioGet access on behalf of a user

Para usar o Microsoft Graph para ler e gravar recursos em nome de um usuário, seu aplicativo deve obter um token de acesso da plataforma de identidade da Microsoft e anexá-lo às solicitações que ele envia para o Microsoft Graph. O fluxo de autenticação exato que você usará para obter tokens de acesso dependerá do tipo de aplicativo que você está desenvolvendo e se você deseja usar o OpenID Connect para conectar o usuário ao aplicativo. O fluxo de concessão de código de autorização do OAuth 2.0 é um fluxo comum usado por aplicativos nativos e móveis e também por alguns aplicativos Web. Este tópico analisa um exemplo de uso desse fluxo.To use Microsoft Graph to read and write resources on behalf of a user, your app must get an access token from the Microsoft identity platform and attach the token to requests that it sends to Microsoft Graph. The exact authentication flow that you will use to get access tokens will depend on the kind of app you are developing and whether you want to use OpenID Connect to sign the user in to your app. One common flow used by native and mobile apps and also by some Web apps is the OAuth 2.0 authorization code grant flow. This topic walks through an example using this flow.

Etapas de Autenticação e AutorizaçãoAuthentication and Authorization steps

As etapas básicas necessárias para usar o fluxo de concessão de código de autorização do OAuth 2.0 para obter um token de acesso do ponto de extremidade da plataforma de identidade da Microsoft são:The basic steps required to use the OAuth 2.0 authorization code grant flow to get an access token from the Microsoft identity platform endpoint are:

  1. Registre seu aplicativo com o Azure AD.Register your app with Azure AD.
  2. Obtenha autorização.Get authorization.
  3. Obtenha um token de acesso.Get an access token.
  4. Chame o Microsoft Graph usando o token de acesso.Call Microsoft Graph with the access token.
  5. Use um token de atualização para obter um novo token de acesso.Use a refresh token to get a new access token.

1. Registre seu aplicativo1. Register your app

Para usar o ponto de extremidade da plataforma de identidade da Microsoft, você deve registrar seu aplicativo no Portal de Registro de Aplicativos do Azure. Você pode usar uma conta da Microsoft ou uma conta corporativa ou de estudante para registrar em aplicativo.To use the Microsoft identity platform endpoint, you must register your app using the Azure app registration portal. You can use either a Microsoft account or a work or school account to register an app.

Para configurar um aplicativo para usar o fluxo de concessão do código de autorização do OAuth 2.0, salve os seguintes valores quando registrar o aplicativo:To configure an app to use the OAuth 2.0 authorization code grant flow, you'll need to save the following values when registering the app:

  • A ID do Aplicativo (cliente) atribuída pelo portal de registro do aplicativo.The Application (client) ID assigned by the app registration portal.
  • Um Segredo do Cliente (aplicativo), que pode ser uma senha ou um par de chaves públicas/particulares (certificado).A Client (application) Secret, either a password or a public/private key pair (certificate). Isso não é necessário para aplicativos nativos.This is not required for native apps.
  • Uma URL de redirecionamento (ou URL de resposta) para seu aplicativo receber respostas do Azure AD.A Redirect URI (or reply URL) for your app to receive responses from Azure AD.

Para saber como configurar um aplicativo no portal do Azure, confira Registrar seu aplicativo.For steps on how to configure an app in the Azure portal, see Register your app.

2. Obter autorização2. Get authorization

A primeira etapa para obter um token de acesso para muitos fluxos do OpenID Connect e do OAuth 2.0 é redirecionar o usuário para o ponto de extremidade /authorize da plataforma de identidade da Microsoft.The first step to getting an access token for many OpenID Connect and OAuth 2.0 flows is to redirect the user to the Microsoft identity platform /authorize endpoint. O Azure AD conectará o usuário e garantirá seu consentimento para as permissões solicitadas pelo seu aplicativo.Azure AD will sign the user in and ensure their consent for the permissions your app requests. No fluxo de concessão do código de autorização, depois de obter o consentimento, o Azure AD retorna um authorization_code para o aplicativo que pode resgatá-lo no ponto de extremidade /token da plataforma de identidade da Microsoft para obter um token de acesso.In the authorization code grant flow, after consent is obtained, Azure AD will return an authorization_code to your app that it can redeem at the Microsoft identity platform /token endpoint for an access token.

Solicitação de autorizaçãoAuthorization request

Veja a seguir um exemplo de solicitação para o ponto de extremidade /authorize.The following shows an example request to the /authorize endpoint.

Com o ponto de extremidade da plataforma de identidade da Microsoft, as permissões são solicitadas usando o parâmetro scope.With the Microsoft identity platform endpoint, permissions are requested using the scope parameter. Neste exemplo, as permissões do Microsoft Graph solicitadas são para User.Read e Mail.Read, o que permitirá que o aplicativo leia o perfil e o email do usuário conectado.In this example, the Microsoft Graph permissions requested are for User.Read and Mail.Read, which will allow the app to read the profile and mail of the signed-in user. A permissão de acesso_online é solicitada para que o aplicativo possa obter um token de atualização que pode ser usado para obter um novo token de acesso quando o atual expirar.The offline_access permission is requested so that the app can get a refresh token, which it can use to get a new access token when the current one expires.

// Line breaks for legibility only

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=offline_access%20user.read%20mail.read
&state=12345
ParâmetroParameter ObrigatórioRequired DescriçãoDescription
locatáriotenant obrigatóriorequired O valor {tenant} no caminho da solicitação pode ser usado para controlar quem pode entrar no aplicativo. Os valores permitidos são common para contas da Microsoft e contas corporativas ou de estudante, organizations apenas para contas corporativas ou de estudante, consumers apenas para contas da Microsoft e identificadores de locatários, como a ID do locatário ou o nome do domínio. Para obter mais detalhes, confira Noções básicas de protocolo.The {tenant} value in the path of the request can be used to control who can sign into the application. The allowed values are common for both Microsoft accounts and work or school accounts, organizations for work or school accounts only, consumers for Microsoft accounts only, and tenant identifiers such as the tenant ID or domain name. For more detail, see protocol basics.
client_idclient_id obrigatóriorequired A ID do Aplicativo atribuída ao seu aplicativo no portal de registro.The Application ID that the registration portal assigned your app.
response_typeresponse_type obrigatóriorequired Pode incluir code para o fluxo do código de autorização.Must include code for the authorization code flow.
redirect_uriredirect_uri recomendadorecommended A redirect_uri de seu aplicativo, onde as respostas de autenticação podem ser enviadas e recebidas pelo seu aplicativo. Ela deve corresponder exatamente a uma das redirect_uris registradas no portal de registro de aplicativos, exceto que ela deve ser codificada por URL. Para aplicativos nativos e móveis, você deve usar o valor padrão de https://login.microsoftonline.com/common/oauth2/nativeclient.The redirect_uri of your app, where authentication responses can be sent and received by your app. It must exactly match one of the redirect_uris you registered in the app registration portal, except it must be URL encoded. For native and mobile apps, you should use the default value of https://login.microsoftonline.com/common/oauth2/nativeclient.
escoposcope obrigatóriorequired Uma lista separada por espaços das permissões do Microsoft Graph que você deseja que o usuário concorde. Isso também pode incluir escopos do OpenID.A space-separated list of the Microsoft Graph permissions that you want the user to consent to. This may also include OpenID scopes.
response_moderesponse_mode recomendadorecommended Especifica o método que deve ser usado para enviar o token resultante de volta para seu aplicativo. Pode ser query ou form_post.Specifies the method that should be used to send the resulting token back to your app. Can be query or form_post.
estadostate recomendadorecommended Um valor incluído na solicitação que também será retornado na resposta do token. Pode ser uma cadeia de caracteres de qualquer conteúdo desejado. Um valor exclusivo gerado aleatoriamente é tipicamente usado para impedir ataques de solicitação entre sites forjada. O estado também é usado para codificar as informações sobre o estado do usuário no aplicativo antes da solicitação de autenticação ter ocorrido, como a página ou o modo de exibição em que ele estava.A value included in the request that will also be returned in the token response. It can be a string of any content that you wish. A randomly generated unique value is typically used for preventing cross-site request forgery attacks. The state is also used to encode information about the user's state in the app before the authentication request occurred, such as the page or view they were on.

Importante: O Microsoft Graph expõe dois tipos de permissões: delegada e de aplicativo. No caso de aplicativos que são executados com um usuário conectado, solicite Permissões Delegadas no parâmetro scope. Essas permissões delegam os privilégios do usuário conectado ao seu aplicativo, permitindo que ele atue como o usuário conectado ao fazer chamadas para o Microsoft Graph. Para obter mais informações sobre as permissões disponíveis por meio do Microsoft Graph, confira a Referência de permissões.Important: Microsoft Graph exposes two kinds of permissions: application and delegated. For apps that run with a signed-in user, you request delegated permissions in the scope parameter. These permissions delegate the privileges of the signed-in user to your app, allowing it to act as the signed-in user when making calls to Microsoft Graph. For more detailed information about the permissions available through Microsoft Graph, see the Permissions reference.

Neste ponto, o usuário será solicitado a digitar suas credenciais para autenticar usando a Microsoft.At this point, the user will be asked to enter their credentials to authenticate with Microsoft. O ponto de extremidade v2.0 da plataforma de identidade da Microsoft também assegurará que o usuário concordou com as permissões indicadas no parâmetro de consulta scope.The Microsoft identity platform v2.0 endpoint will also ensure that the user has consented to the permissions indicated in the scope query parameter. Se o usuário não tiver concordado com nenhuma dessas permissões e se um administrador não tiver concordado previamente em nome de todos os usuários na organização, será solicitado aos usuários que autorizem as permissões necessárias.If the user has not consented to any of those permissions and if an administrator has not previously consented on behalf of all users in the organization, they will be asked to consent to the required permissions.

O exemplo a seguir mostra a caixa de diálogo de consentimento apresentada para uma conta de usuário da Microsoft.The following is an example of the consent dialog box presented for a Microsoft account user.

Caixa de diálogo de consentimento da conta da Microsoft

Experimente Se você tiver uma conta da Microsoft ou uma conta corporativa ou de estudante do Azure, experimente clicando no link a seguir. Depois de entrar, seu navegador deverá ser redirecionado para https://localhost/myapp/ com um code na barra de endereços.Try If you have a Microsoft account or an Azure AD work or school account, you can try this for yourself by clicking the following link. After signing in, your browser should be redirected to https://localhost/myapp/ with a code in the address bar.

https://login.microsoftonline.com/common/oauth2/v2.0/authorize...https://login.microsoftonline.com/common/oauth2/v2.0/authorize...

Resposta da autorizaçãoAuthorization response

Se o usuário concordar com as permissões que seu aplicativo solicitou, a resposta conterá o código de autorização no parâmetro code. Veja um exemplo de uma resposta à solicitação anterior. Como o parâmetro response_mode na solicitação foi definido como query, a resposta é retornada na cadeia de caracteres da consulta da URL de redirecionamento.If the user consents to the permissions your app requested, the response will contain the authorization code in the code parameter. Here is an example of a successful response to the previous request. Because the response_mode parameter in the request was set to query, the response is returned in the query string of the redirect URL.

GET https://localhost/myapp/?
code=M0ab92efe-b6fd-df08-87dc-2c6500a7f84d
&state=12345
ParâmetroParameter DescriçãoDescription
códigocode O authorization_code que o aplicativo solicitou. O aplicativo pode usar o código de autorização para solicitar um token de acesso para o recurso de destino. Os authorization_codes têm períodos de duração muito curtos, geralmente eles expiram após cerca de 10 minutos.The authorization_code that the app requested. The app can use the authorization code to request an access token for the target resource. Authorization_codes are very short lived, typically they expire after about 10 minutes.
estadostate Se um parâmetro de estado estiver incluído na solicitação, o mesmo valor deverá aparecer na resposta. O aplicativo deve verificar se os valores de estado na solicitação e na resposta são idênticos.If a state parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical.

3. Obtenha um token3. Get a token

Seu aplicativo usa a autorização code recebida na etapa anterior para solicitar um token de acesso enviando uma solicitação POST para o ponto de extremidade /token.Your app uses the authorization code received in the previous step to request an access token by sending a POST request to the /token endpoint.

Solicitação de tokenToken request

// Line breaks for legibility only

POST /{tenant}/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20mail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh    // NOTE: Only required for web apps
ParâmetroParameter ObrigatórioRequired DescriçãoDescription
locatáriotenant obrigatóriorequired O valor {tenant} no caminho da solicitação pode ser usado para controlar quem pode entrar no aplicativo. Os valores permitidos são common para contas da Microsoft e contas corporativas ou de estudante, organizations apenas para contas corporativas ou de estudante, consumers apenas para contas da Microsoft e identificadores de locatários, como a ID do locatário ou o nome do domínio. Para obter mais detalhes, confira Noções básicas de protocolo.The {tenant} value in the path of the request can be used to control who can sign into the application. The allowed values are common for both Microsoft accounts and work or school accounts, organizations for work or school accounts only, consumers for Microsoft accounts only, and tenant identifiers such as the tenant ID or domain name. For more detail, see protocol basics.
client_idclient_id obrigatóriorequired A ID do Aplicativo atribuída ao seu aplicativo no portal de registro).The Application ID that the registration portal) assigned your app.
grant_typegrant_type obrigatóriorequired Deve ser authorization_code para o fluxo de código de autorização.Must be authorization_code for the authorization code flow.
escoposcope obrigatóriorequired Uma lista de escopos separada por espaços. Os escopos solicitados nesta etapa devem ser equivalentes ou ser um subconjunto dos escopos solicitados na primeira etapa (autorização). Se os escopos especificados nesta solicitação abrangerem vários servidores de recursos, o ponto de extremidade v2.0 retornará um token para o recurso especificado no primeiro escopo.A space-separated list of scopes. The scopes requested in this leg must be equivalent to or a subset of the scopes requested in the first (authorization) leg. If the scopes specified in this request span multiple resource servers, then the v2.0 endpoint will return a token for the resource specified in the first scope.
códigocode obrigatóriorequired O authorization_code adquirido na primeira etapa do fluxo.The authorization_code that you acquired in the first leg of the flow.
redirect_uriredirect_uri obrigatóriorequired O mesmo valor do redirect_uri que foi usado para adquirir o authorization_code.The same redirect_uri value that was used to acquire the authorization_code.
client_secretclient_secret obrigatório para aplicativos Webrequired for web apps O segredo do aplicativo que você criou no portal de registro de aplicativos para seu aplicativo. Ele não deve ser usado em um aplicativo nativo já que a permissão client_secrets não pode ser confiavelmente armazenada em dispositivos. É obrigatório para aplicativos Web e APIs da Web que têm a capacidade de armazenar a permissão client_secret em segurança no lado do servidor.The application secret that you created in the app registration portal for your app. It should not be used in a native app, because client_secrets cannot be reliably stored on devices. It is required for web apps and web APIs, which have the ability to store the client_secret securely on the server side.

Resposta do tokenToken response

Embora o token de acesso seja opaco para o aplicativo, a resposta contém uma lista das permissões para as quais o token de acesso servirá no parâmetro scope.Although the access token is opaque to your app, the response contains a list of the permissions that the access token is good for in the scope parameter.

{
    "token_type": "Bearer",
    "scope": "user.read%20Fmail.read",
    "expires_in": 3600,
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4..."
}
ParâmetroParameter DescriçãoDescription
token_typetoken_type Indica o valor de tipo de token. O único tipo a que o Azure AD dá suporte é o token de portador.Indicates the token type value. The only type that Azure AD supports is Bearer.
scopescope Uma lista separada por espaços das permissões do Microsoft Graph para as quais o access_token é válido.A space separated list of the Microsoft Graph permissions that the access_token is valid for.
expires_inexpires_in Por quanto tempo o token de acesso é válido (em segundos).How long the access token is valid (in seconds).
access_tokenaccess_token O token de acesso solicitado. Seu aplicativo pode usar esse token para chamar o Microsoft Graph.The requested access token. Your app can use this token to call Microsoft Graph.
refresh_tokenrefresh_token Um token de atualização OAuth 2.0.An OAuth 2.0 refresh token. Seu aplicativo poderá usar este token para adquirir tokens de acesso adicionais depois que o token de acesso atual expirar.Your app can use this token to acquire additional access tokens after the current access token expires. Os tokens de atualização são de longa duração e podem ser usados para manter o acesso aos recursos por longos períodos de tempo.Refresh tokens are long-lived, and can be used to retain access to resources for extended periods of time. Confira mais detalhes na referência de token v2.0.For more detail, refer to the v2.0 token reference.

4. Use o token de acesso para chamar o Microsoft Graph4. Use the access token to call Microsoft Graph

Após obter o token de acesso, você pode usá-lo para chamar o Microsoft Graph, incluindo-o no cabeçalho Authorization de uma solicitação. A solicitação a seguir obtém o perfil do usuário conectado.After you have an access token, you can use it to call Microsoft Graph by including it in the Authorization header of a request. The following request gets the profile of the signed-in user.

GET https://graph.microsoft.com/v1.0/me
Authorization: Bearer eyJ0eXAiO ... 0X2tnSQLEANnSPHY0gKcgw
Host: graph.microsoft.com

Uma resposta bem-sucedida terá a seguinte aparência (alguns cabeçalhos de resposta foram removidos).A successful response will look similar to the following (some response headers have been removed).

HTTP/1.1 200 OK
Content-Type: application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
request-id: f45d08c0-6901-473a-90f5-7867287de97f
client-request-id: f45d08c0-6901-473a-90f5-7867287de97f
OData-Version: 4.0
Duration: 727.0022
Date: Thu, 20 Apr 2017 05:21:18 GMT
Content-Length: 407

{
    "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity",
    "id":"12345678-73a6-4952-a53a-e9916737ff7f",
    "businessPhones":[
        "+1 555555555"
    ],
    "displayName":"Chris Green",
    "givenName":"Chris",
    "jobTitle":"Software Engineer",
    "mail":null,
    "mobilePhone":"+1 5555555555",
    "officeLocation":"Seattle Office",
    "preferredLanguage":null,
    "surname":"Green",
    "userPrincipalName":"ChrisG@contoso.onmicrosoft.com"
}

5. Use um token de atualização para obter um novo token de acesso5. Use the refresh token to get a new access token

Os tokens de acesso têm curta duração e você deve atualizá-los após a expiração para continuar acessando os recursos. Isso pode ser feito enviando outra solicitação POST ao ponto de extremidade /token, dessa vez fornecendo o refresh_token em vez do code.Access tokens are short lived, and you must refresh them after they expire to continue accessing resources. You can do so by submitting another POST request to the /token endpoint, this time providing the refresh_token instead of the code.

SolicitaçãoRequest

// Line breaks for legibility only

POST /common/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20mail.read
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=refresh_token
&client_secret=JqQX2PNo9bpM0uEihUPzyrh      // NOTE: Only required for web apps
ParâmetroParameter ObrigatórioRequired DescriçãoDescription
client_idclient_id obrigatóriorequired A ID do Aplicativo atribuída ao seu aplicativo no portal de registro.The Application ID that the registration portal assigned your app.
grant_typegrant_type obrigatóriorequired Deve ser refresh_token.Must be refresh_token.
escoposcope obrigatóriorequired Uma lista de permissões (escopos) separada por espaços. As permissões solicitadas devem ser equivalentes ou ser um subconjunto das permissões solicitadas na solicitação original do authorization_code.A space-separated list of permissions (scopes). The permissions requested must be equivalent to or a subset of the permissions requested in the original authorization_code request.
refresh_tokenrefresh_token obrigatóriorequired O refresh_token adquirido durante a solicitação do token.The refresh_token that you acquired during the token request.
redirect_uriredirect_uri obrigatóriorequired O mesmo valor do redirect_uri que foi usado para adquirir o authorization_code.The same redirect_uri value that was used to acquire the authorization_code.
client_secretclient_secret obrigatório para aplicativos Webrequired for web apps O segredo do aplicativo que você criou no portal de registro de aplicativos para seu aplicativo. Ele não deve ser usado em um aplicativo nativo já que a permissão client_secrets não pode ser confiavelmente armazenada em dispositivos. É obrigatório para aplicativos Web e APIs da Web que têm a capacidade de armazenar a permissão client_secret em segurança no lado do servidor.The application secret that you created in the app registration portal for your app. It should not be used in a native app, because client_secrets cannot be reliably stored on devices. It is required for web apps and web APIs, which have the ability to store the client_secret securely on the server side.

RespostaResponse

Uma resposta de token bem-sucedida será semelhante ao seguinte.A successful token response will look similar to the following.

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...",
    "token_type": "Bearer",
    "expires_in": 3599,
    "scope": "user.read%20mail.read",
    "refresh_token": "AwABAAAAvPM1KaPlrEqdFSBzjqfTGAMxZGUTdM0t4B4...",
}
ParâmetroParameter DescriçãoDescription
access_tokenaccess_token O token de acesso solicitado. O aplicativo pode usar esse token em chamadas para o Microsoft Graph.The requested access token. The app can use this token in calls to Microsoft Graph.
token_typetoken_type Indica o valor de tipo de token. O único tipo a que o Azure AD dá suporte é o token de portadorIndicates the token type value. The only type that Azure AD supports is Bearer
expires_inexpires_in Por quanto tempo o token de acesso é válido (em segundos).How long the access token is valid (in seconds).
escoposcope As permissões (escopos) para as quais o access_token é válido.The permissions (scopes) that the access_token is valid for.
refresh_tokenrefresh_token Um novo token de atualização OAuth 2.0. Você deve substituir o token de atualização antigo por este token de atualização recém-adquirido para garantir que seus tokens de atualização permaneçam válidos pelo maior tempo possível.A new OAuth 2.0 refresh token. You should replace the old refresh token with this newly acquired refresh token to ensure your refresh tokens remain valid for as long as possible.

Recursos adicionais e cenários de aplicativo com suporteSupported app scenarios and additional resources

Você pode chamar o Microsoft Graph em nome de um usuário a partir dos seguintes tipos de aplicativos:You can call Microsoft Graph on behalf of a user from the following kinds of apps:

Para saber mais sobre os cenários de aplicativo compatíveis com o ponto de extremidade da plataforma de identidade da Microsoft, consulte Cenários de aplicativo e fluxos de autenticação.For more information about supported app scenarios with the Microsoft identity platform endpoint, see App scenarios and authentication flows.

Observação: chamar o Microsoft Graph a partir de uma API da Web autônoma atualmente não tem suporte do ponto de extremidade da plataforma de identidade da Microsoft.Note: Calling Microsoft Graph from a standalone web API is not currently supported by the Microsoft identity platform endpoint. Nesse caso, você precisa usar o ponto de extremidade do Azure AD.For this scenario, you need to use the Azure AD endpoint.

Para obter mais informações sobre como obter acesso ao Microsoft Graph em nome de um usuário a partir do ponto de extremidade da plataforma de identidade da Microsoft:For more information about getting access to Microsoft Graph on behalf of a user from the Microsoft identity platform endpoint:

Considerações sobre o ponto de extremidadeEndpoint considerations

A Microsoft continua oferecendo suporte ao ponto de extremidade do Azure AD.Microsoft continues to support the Azure AD endpoint. Existem várias diferenças entre a utilização do ponto de extremidade da plataforma de identidade da Microsoft e o ponto de extremidade do Azure AD.There are several differences between using the Microsoft identity platform endpoint and the Azure AD endpoint. Durante o uso do ponto de extremidade do Azure AD:When using the Azure AD endpoint:

  • O aplicativo exigirá uma ID de aplicativo diferente (ID do cliente) para cada plataforma.Your app will require a different application ID (client ID) for each platform.
  • Se o aplicativo for um aplicativo multilocatário, você deve configurá-lo explicitamente para funcionar como multilocatário no portal do Azure.If your app is a multi-tenant app, you must explicitly configure it to be multi-tenant at the Azure portal.
  • Todas as permissões que seu aplicativo precisa devem ser configuradas pelo desenvolvedor.All permissions that your app needs must be configured by the developer. O ponto de extremidade do Azure AD não oferece suporte ao consentimento dinâmico (incremental).The Azure AD endpoint does not support dynamic (incremental) consent.
  • O ponto de extremidade do Azure AD usa um parâmetro resource em solicitações de autorização e de token para especificar o recurso, como o Microsoft Graph, para o qual ele deseja permissões. O ponto de extremidade não é compatível com o parâmetro scope.The Azure AD endpoint uses a resource parameter in authorization and token requests to specify the resource, such as Microsoft Graph, for which it wants permissions. The endpoint does not support the scope parameter.
  • O ponto de extremidade do Azure AD não expõe um ponto de extremidade específico para o consentimento do administrador. Em vez disso, os aplicativos usam o parâmetro prompt=admin_consent na solicitação de autorização para obter o consentimento do administrador para uma organização. Para obter mais informações, confira Como acionar a estrutura do consentimento do Azure AD no tempo de execução no artigo Integração de aplicativos com o Azure Active Directory.The Azure AD endpoint does not expose a specific endpoint for administrator consent. Instead apps use the prompt=admin_consent parameter in the authorization request to obtain administrator consent for an organization. For more information, see Triggering the Azure AD consent framework at runtime in Integrating applications with Azure Active Directory.

Para obter mais informações sobre como obter acesso ao Microsoft Graph em nome de um usuário a partir do ponto de extremidade do Azure AD:For more information about getting access to Microsoft Graph on behalf of a user from the Azure AD endpoint:

  • Para saber mais sobre o ponto de extremidade da plataforma de identidade da Microsoft com diferentes tipos de aplicativos, confira os links de Introdução na documentação de desenvolvedor da plataforma de identidade da Microsoft.For information about using the Microsoft identity platform endpoint with different kinds of apps, see the Get Started links in the Microsoft identity platform developer documentation. A documentação contém links para tópicos de visão geral, guias de início rápido, tutoriais, exemplos de código e documentação de protocolo para diferentes tipos de aplicativos compatíveis com o ponto de extremidade da plataforma de identidade da Microsoft.The documentation contains links to overview topics, quickstarts, tutorials, code samples and protocol documentation for different kinds of apps supported by the Microsoft identity platform endpoint.
  • Para saber mais sobre a MSAL (Biblioteca de Autenticação da Microsoft) e o middleware de servidor disponíveis para uso com o ponto de extremidade da plataforma de identidade da Microsoft, confira Bibliotecas de Autenticação da Microsoft.For information about the Microsoft Authentication Library (MSAL) and server middleware available for use with the Microsoft identity platform endpoint, see Microsoft Authentication Libraries.