Por que atualizar para a plataforma Microsoft Identity (v 2.0)?Why update to Microsoft identity platform (v2.0)?

Ao desenvolver um novo aplicativo, é importante conhecer as diferenças entre os pontos de extremidade da plataforma de identidade da Microsoft (v 2.0) e do Azure Active Directory (v 1.0).When developing a new application, it's important to know the differences between the Microsoft identity platform (v2.0) and Azure Active Directory (v1.0) endpoints. Este artigo aborda as principais diferenças entre os pontos de extremidade e algumas limitações existentes para a plataforma Microsoft Identity.This article covers the main differences between the endpoints and some existing limitations for Microsoft identity platform.

Observação

O ponto de extremidade da plataforma de identidade da Microsoft não dá suporte a todos os cenários e recursos do Azure AD.The Microsoft identity platform endpoint doesn't support all Azure AD scenarios and features. Para determinar se você deve usar o ponto de extremidade da plataforma de identidade da Microsoft, leia sobre as limitações da plataforma de identidade da Microsoft.To determine if you should use the Microsoft identity platform endpoint, read about Microsoft identity platform limitations.

Quem pode entrarWho can sign in

Quem pode entrar com endpoints v1.0 e v2.0

  • O ponto de extremidade v1.0 permite que apenas contas do trabalho e da escola entrem no seu aplicativo (Azure AD)The v1.0 endpoint allows only work and school accounts to sign in to your application (Azure AD)
  • O ponto de extremidade da plataforma de identidade da Microsoft permite contas corporativas e de estudante do Azure AD e do MSA (contas pessoais da Microsoft), como hotmail.com, outlook.com e msn.com, para entrar.The Microsoft identity platform endpoint allows work and school accounts from Azure AD and personal Microsoft accounts (MSA), such as hotmail.com, outlook.com, and msn.com, to sign in.
  • Os dois pontos de extremidade também aceitam entradas de usuários convidados de um diretório do Azure ad para aplicativos configurados como locatário único ou para aplicativos multilocatários configurados para apontarem para ohttps://login.microsoftonline.com/{TenantId_or_Name}ponto de extremidade específico do locatário ().Both endpoints also accept sign-ins of guest users of an Azure AD directory for applications configured as single-tenant or for multi-tenant applications configured to point to the tenant-specific endpoint (https://login.microsoftonline.com/{TenantId_or_Name}).

O ponto de extremidade da plataforma de identidade da Microsoft permite que você escreva aplicativos que aceitem entradas de contas pessoais da Microsoft e contas corporativas e de estudante.The Microsoft identity platform endpoint allows you to write apps that accept sign-ins from personal Microsoft accounts, and work and school accounts. Isso lhe dá a capacidade de escrever seu aplicativo completamente independente de conta.This gives you the ability to write your app completely account-agnostic. Por exemplo, se seu aplicativo chamar o Microsoft Graph, alguns recursos e dados adicionais estarão disponíveis para contas de trabalho, como seus sites do SharePoint ou dados do Diretório.For example, if your app calls the Microsoft Graph, some additional functionality and data will be available to work accounts, such as their SharePoint sites or directory data. Mas, para muitas ações, como a leitura de um e-mail de um usuário, o mesmo código pode acessar o e-mail para contas pessoais e de trabalho e escola.But for many actions, such as Reading a user's mail, the same code can access the email for both personal and work and school accounts.

Para o ponto de extremidade da plataforma Microsoft Identity, você pode usar a MSAL (biblioteca de autenticação da Microsoft) para obter acesso aos mundos do consumidor, da educação e da empresa.For Microsoft identity platform endpoint, you can use the Microsoft Authentication Library (MSAL) to gain access to the consumer, educational, and enterprise worlds. O ponto de extremidade do Azure AD v1.0 aceita logins apenas de contas do trabalho e da escola.The Azure AD v1.0 endpoint accepts sign-ins from work and school accounts only.

Os aplicativos que usam o endpoint do Azure AD v1.0 precisam especificar suas permissões necessárias do OAuth 2.0 antecipadamente, por exemplo:Apps using the Azure AD v1.0 endpoint are required to specify their required OAuth 2.0 permissions in advance, for example:

Exemplo mostrando a interface do usuário de registro de permissões

As permissões definidas diretamente no registro do aplicativo são static.The permissions set directly on the application registration are static. Embora as permissões estáticas do aplicativo definidas no portal do Azure mantivessem o código simples e agradável, ele apresenta alguns problemas para os desenvolvedores:While static permissions of the app defined in the Azure portal keep the code nice and simple, it presents some possible issues for developers:

  • O aplicativo precisa solicitar todas as permissões que precisaria no primeiro login do usuário.The app needs to request all the permissions it would ever need upon the user's first sign-in. Isso pode resultar em uma lista longa de permissões, o que desencorajava os usuários finais a aprovarem o acesso do aplicativo na entrada inicial.This can lead to a long list of permissions that discourages end users from approving the app's access on initial sign-in.

  • O aplicativo precisa conhecer todos os recursos que jamais acessaria antes do tempo.The app needs to know all of the resources it would ever access ahead of time. Era difícil criar aplicativos que pudessem acessar um número arbitrário de recursos.It was difficult to create apps that could access an arbitrary number of resources.

Com o ponto de extremidade da plataforma Microsoft Identity, você pode ignorar as permissões estáticas definidas nas informações de registro do aplicativo no portal do Azure e solicitar permissões incrementalmente, o que significa solicitar um conjunto mínimo de permissões antecipadamente e crescendo mais ao longo do tempo à medida que o cliente usa recursos de aplicativo adicionais.With the Microsoft identity platform endpoint, you can ignore the static permissions defined in the app registration information in the Azure portal and request permissions incrementally instead, which means asking for a bare minimum set of permissions upfront and growing more over time as the customer uses additional app features. Para fazer isso, você pode especificar os escopos que seu aplicativo precisa, incluindo os novos escopos no parâmetro scope ao solicitar um token de acesso, sem a necessidade de pré-defini-los nas informações de registro do aplicativo.To do so, you can specify the scopes your app needs at any time by including the new scopes in the scope parameter when requesting an access token - without the need to pre-define them in the application registration information. Se o usuário ainda não tiver consentido em novos escopos adicionados à solicitação, ele será solicitado a consentir apenas com as novas permissões.If the user hasn't yet consented to new scopes added to the request, they'll be prompted to consent only to the new permissions. Para obter mais informações, consulte permissões, autorização e escopos.To learn more, see permissions, consent, and scopes.

Permitir que um aplicativo solicite permissões dinamicamente por meio do parâmetro scope fornece aos desenvolvedores controle total sobre a experiência do usuário.Allowing an app to request permissions dynamically through the scope parameter gives developers full control over your user's experience. Você também pode optar por carregar sua experiência de consentimento e solicitar todas as permissões em uma solicitação inicial de autorização.You can also front load your consent experience and ask for all permissions in one initial authorization request. Ou, se seu aplicativo precisar de um grande número de permissões, você pode reunir essas permissões do usuário de forma incremental, à medida que ele tentar usar determinados recursos do seu aplicativo ao longo do tempo.If your app requires a large number of permissions, you can gather those permissions from the user incrementally as they try to use certain features of the app over time.

Consentimento do administrador realizado em nome de uma organização ainda exige as permissões estáticas registradas para o aplicativo, portanto, você deve definir essas permissões para aplicativos no portal de registro do aplicativo se precisar de um administrador para dar consentimento em nome de toda a organização.Admin consent done on behalf of an organization still requires the static permissions registered for the app, so you should set those permissions for apps in the app registration portal if you need an admin to give consent on behalf of the entire organization. Isso reduz os ciclos exigidos pelo administrador da organização para configurar o aplicativo.This reduces the cycles required by the organization admin to set up the application.

Escopos, não recursosScopes, not resources

Para aplicativos que usam o endpoint v1.0, um aplicativo pode se comportar como um recurso ou um destinatário de tokens.For apps using the v1.0 endpoint, an app can behave as a resource, or a recipient of tokens. Um recurso pode definir um número de escopos ou oAuth2Permissions que ele entende, permitindo que os aplicativos cliente solicitem tokens a esse recurso de um determinado conjunto de escopos.A resource can define a number of scopes or oAuth2Permissions that it understands, allowing client apps to request tokens from that resource for a certain set of scopes. Considere a API do Graph do AD do Azure como um exemplo de um recurso:Consider the Azure AD Graph API as an example of a resource:

  • Identificador de recurso, ou AppID URI: https://graph.windows.net/Resource identifier, or AppID URI: https://graph.windows.net/
  • Escopos, ou oAuth2Permissions: Directory.Read, Directory.Writee assim por diante.Scopes, or oAuth2Permissions: Directory.Read, Directory.Write, and so on.

Isso se aplica ao ponto de extremidade da plataforma Microsoft Identity.This holds true for the Microsoft identity platform endpoint. Um aplicativo ainda pode se comportar como recurso, definir escopos e ser identificado por um URI.An app can still behave as a resource, define scopes, and be identified by a URI. Aplicativos cliente ainda podem solicitar acesso a esses escopos.Client apps can still request access to those scopes. No entanto, a maneira como um cliente solicita essas permissões foi alterada.However, the way that a client requests those permissions have changed.

Para o ponto de extremidade v1.0, uma solicitação de autorização do OAuth 2.0 para o Azure AD pode ter parecido com:For the v1.0 endpoint, an OAuth 2.0 authorize request to Azure AD might have looked like:

GET https://login.microsoftonline.com/common/oauth2/authorize?
client_id=2d4d11a2-f814-46a7-890a-274a72a7309e
&resource=https://graph.windows.net/
...

Aqui, o parâmetro recurso indicava o recurso para o qual o aplicativo cliente estava solicitando a autorização.Here, the resource parameter indicated which resource the client app is requesting authorization. O Microsoft Azure Active Directory computava as permissões exigidas pelo aplicativo com base na configuração estática no Portal do Azure e emitia os tokens de acordo.Azure AD computed the permissions required by the app based on static configuration in the Azure portal, and issued tokens accordingly.

Para aplicativos que usam o ponto de extremidade da plataforma Microsoft Identity, a mesma solicitação de autorização OAuth 2,0 é semelhante a:For applications using the Microsoft identity platform endpoint, the same OAuth 2.0 authorize request looks like:

GET https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=2d4d11a2-f814-46a7-890a-274a72a7309e
&scope=https://graph.windows.net/directory.read%20https://graph.windows.net/directory.write
...

Aqui, parâmetro escopo indica para qual recurso e permissões o aplicativo está solicitando autorização.Here, the scope parameter indicates which resource and permissions the app is requesting authorization. O recurso desejado ainda está presente na solicitação; ele simplesmente está englobado em cada um dos valores do parâmetro de escopo.The desired resource is still present in the request - it's encompassed in each of the values of the scope parameter. Usar o parâmetro scope dessa maneira permite que o ponto de extremidade da plataforma de identidade da Microsoft seja mais compatível com a especificação OAuth 2,0 e se alinhe mais de acordo com as práticas comuns do setor.Using the scope parameter in this manner allows the Microsoft identity platform endpoint to be more compliant with the OAuth 2.0 specification, and aligns more closely with common industry practices. Ele também permite que os aplicativos façam o consentimento incremental , solicitando permissões somente quando o aplicativo os exige, em oposição à frente.It also enables apps to do incremental consent - only requesting permissions when the application requires them as opposed to up front.

Escopos conhecidosWell-known scopes

Acesso offlineOffline access

Aplicativos que usam o ponto de extremidade da plataforma Microsoft Identity podem exigir o uso de uma nova permissão conhecida para aplicativos offline_access – o escopo.Apps using the Microsoft identity platform endpoint may require the use of a new well-known permission for apps - the offline_access scope. Todos os aplicativos terão que solicitar essa permissão se precisarem acessar recursos em nome de um usuário por um longo período de tempo, mesmo quando o usuário pode não estiver usando o aplicativo de maneira ativa.All apps will need to request this permission if they need to access resources on the behalf of a user for a prolonged period of time, even when the user may not be actively using the app. O escopo offline_access aparecerá para o usuário em diálogos de consentimento como Acesse seus dados a qualquer momento, com os quais o usuário deve concordar.The offline_access scope will appear to the user in consent dialogs as Access your data anytime, which the user must agree to. Solicitar a offline_access permissão permitirá que seu aplicativo Web receba o OAuth 2,0 refresh_tokens do ponto de extremidade da plataforma Microsoft Identity.Requesting the offline_access permission will enable your web app to receive OAuth 2.0 refresh_tokens from the Microsoft identity platform endpoint. Os tokens de atualização são de longa duração e podem ser trocados por novos tokens de acesso do OAuth 2.0 por longos períodos de acesso.Refresh tokens are long-lived, and can be exchanged for new OAuth 2.0 access tokens for extended periods of access.

Se seu aplicativo não solicitar o offline_access escopo, ele não receberá tokens de atualização.If your app doesn't request the offline_access scope, it won't receive refresh tokens. Isso significa que, quando você resgatar um código de autorização no fluxo do código de autorização do OAuth 2.0, receberá apenas um token de acesso do ponto de extremidade /token.This means that when you redeem an authorization code in the OAuth 2.0 authorization code flow, you'll only receive back an access token from the /token endpoint. Esse token de acesso permanecerá válido por um curto período de tempo (geralmente uma hora), mas acabará expirando.That access token remains valid for a short period of time (typically one hour), but will eventually expire. Nesse momento, seu aplicativo precisará redirecionar o usuário de volta ao ponto de extremidade /authorize para recuperar um novo código de autorização.At that point in time, your app will need to redirect the user back to the /authorize endpoint to retrieve a new authorization code. Durante esse redirecionamento, o usuário pode ou não precisar digitar suas credenciais novamente ou consentir de novo as permissões, dependendo do tipo do aplicativo.During this redirect, the user may or may not need to enter their credentials again or reconsent to permissions, depending on the type of app.

Para saber mais sobre o OAuth 2,0 refresh_tokens, o access_tokense o, confira a referência do protocolo de plataforma de identidade da Microsoft.To learn more about OAuth 2.0, refresh_tokens, and access_tokens, check out the Microsoft identity platform protocol reference.

OpenID, perfil e emailOpenID, profile, and email

Historicamente, o fluxo de entrada mais básico do OpenID Connect com a plataforma de identidade da Microsoft forneceria muitas informações sobre o usuário no id_tokenresultante.Historically, the most basic OpenID Connect sign-in flow with Microsoft identity platform would provide a lot of information about the user in the resulting id_token. As declarações em um id_token podem incluir o nome do usuário, nome de usuário preferido, endereço de email, ID do objeto e muito mais.The claims in an id_token can include the user's name, preferred username, email address, object ID, and more.

As informações que o escopo de openid permite que seu aplicativo acesse agora estão restritas.The information that the openid scope affords your app access to is now restricted. O escopo de openid apenas permitirá que seu aplicativo faça logon do usuário e receba um identificador específico do aplicativo para o usuário.The openid scope will only allow your app to sign in the user and receive an app-specific identifier for the user. Se você quiser obter dados pessoais sobre o usuário em seu aplicativo, seu aplicativo precisará solicitar permissões adicionais do usuário.If you want to get personal data about the user in your app, your app needs to request additional permissions from the user. Dois novos escopos email e profile – permitirão que você solicite permissões adicionais.Two new scopes, email and profile, will allow you to request additional permissions.

  • O escopo de email permite que seu aplicativo acesse o endereço de email principal do usuário por meio da declaração email no id_token, supondo que o usuário tem um endereço de email endereçável.The email scope allows your app access to the user’s primary email address through the email claim in the id_token, assuming the user has an addressable email address.
  • O profile escopo dá ao seu aplicativo acesso a todas as outras informações básicas sobre o usuário, como nome, nome de usuário preferencial, ID de objeto e assim por diante, no id_token.The profile scope affords your app access to all other basic information about the user, such as their name, preferred username, object ID, and so on, in the id_token.

Esse escopo permite que você codifique seu aplicativo com uma divulgação mínima. Você só pode solicitar ao usuário o conjunto de informações de que seu aplicativo precisa para fazer seu trabalho.These scopes allow you to code your app in a minimal-disclosure fashion so you can only ask the user for the set of information that your app needs to do its job. Para obter mais informações sobre esses escopos, consulte a referência de escopo da plataforma de identidade da Microsoft.For more information on these scopes, see the Microsoft identity platform scope reference.

Declarações de tokenToken claims

O ponto de extremidade da plataforma de identidade da Microsoft emite um conjunto menor de declarações em seus tokens por padrão para manter as cargas pequenas.The Microsoft identity platform endpoint issues a smaller set of claims in its tokens by default to keep payloads small. Se você tiver aplicativos e serviços que têm uma dependência em uma declaração específica em um token v 1.0 que não é mais fornecido por padrão em um token da plataforma de identidade da Microsoft, considere usar o recurso de declarações opcionais para incluir essa declaração.If you have apps and services that have a dependency on a particular claim in a v1.0 token that is no longer provided by default in a Microsoft identity platform token, consider using the optional claims feature to include that claim.

Importante

os tokens v 1.0 e v 2.0 podem ser emitidos pelos pontos de extremidade v 1.0 e v 2.0!v1.0 and v2.0 tokens can be issued by both the v1.0 and v2.0 endpoints! id_tokens sempre correspondem ao ponto de extremidade do qual eles são solicitados e os tokens de acesso sempre correspondem ao formato esperado pela API Web que seu cliente chamará usando esse token.id_tokens always match the endpoint they're requested from, and access tokens always match the format expected by the Web API your client will call using that token. Portanto, se seu aplicativo usar o v 2.0 igual ao ponto para obter um token para chamar Microsoft Graph, que espera tokens de acesso de formato v 1.0, seu aplicativo receberá um token no formato v 1.0.So if your app uses the v2.0 endpoiont to get a token to call Microsoft Graph, which expects v1.0 format access tokens, your app will recieve a token in the v1.0 format.

LimitaçõesLimitations

Há algumas restrições a serem consideradas ao usar a plataforma de identidade da Microsoft.There are a few restrictions to be aware of when using Microsoft identity platform.

Ao criar aplicativos que se integram com a plataforma de identidade da Microsoft, você precisa decidir se os protocolos de autenticação e o ponto de extremidade da plataforma de identidade da Microsoft atendem às suas necessidades.When you build applications that integrate with the Microsoft identity platform, you need to decide whether the Microsoft identity platform endpoint and authentication protocols meet your needs. O ponto de extremidade v 1.0 e a plataforma ainda têm suporte total e, em alguns aspectos, é mais rico em recursos do que a plataforma de identidade da Microsoft.The v1.0 endpoint and platform is still fully supported and, in some respects, is more feature rich than Microsoft identity platform. No entanto, a plataforma de identidade da Microsoft apresenta benefícios significativos para os desenvolvedores.However, Microsoft identity platform introduces significant benefits for developers.

Aqui está uma recomendação simplificada para os desenvolvedores agora:Here's a simplified recommendation for developers now:

  • Se você quiser ou precisar dar suporte a contas pessoais da Microsoft em seu aplicativo ou se estiver escrevendo um novo aplicativo, use a plataforma de identidade da Microsoft.If you want or need to support personal Microsoft accounts in your application, or you're writing a new application, use Microsoft identity platform. Mas antes de fazer isso, tenha certeza de que entende as limitações discutidas neste artigo.But before you do, make sure you understand the limitations discussed in this article.
  • Se você estiver migrando ou atualizando um aplicativo que dependa do SAML, não poderá usar a plataforma de identidade da Microsoft.If you're migrating or updating an application that relies on SAML, you can't use Microsoft identity platform. Em vez disso, consulte o Guia do Azure ad v 1.0.Instead, refer to the Azure AD v1.0 guide.

O ponto de extremidade da plataforma de identidade da Microsoft evoluirá para eliminar as restrições listadas aqui, para que você nunca precise usar o ponto de extremidade da plataforma de identidade da Microsoft.The Microsoft identity platform endpoint will evolve to eliminate the restrictions listed here, so that you'll only ever need to use the Microsoft identity platform endpoint. Enquanto isso, use este artigo para determinar se o ponto de extremidade da plataforma de identidade da Microsoft é ideal para você.In the meantime, use this article to determine whether the Microsoft identity platform endpoint is right for you. Continuaremos a atualizar este artigo para refletir o estado atual do ponto de extremidade da plataforma Microsoft Identity.We'll continue to update this article to reflect the current state of the Microsoft identity platform endpoint. Verifique novamente para reavaliar seus requisitos em relação aos recursos da plataforma de identidade da Microsoft.Check back to reevaluate your requirements against Microsoft identity platform capabilities.

Restrições quanto a registros de aplicativosRestrictions on app registrations

Para cada aplicativo que você deseja integrar com o ponto de extremidade da plataforma de identidade da Microsoft, você pode criar um registro de aplicativo na nova experiência de Registros de aplicativo no portal do Azure.For each app that you want to integrate with the Microsoft identity platform endpoint, you can create an app registration in the new App registrations experience in the Azure portal. Os aplicativos conta Microsoft existentes não são compatíveis com o portal, mas todos os aplicativos do Azure AD são, independentemente de onde ou quando eles foram registrados.Existing Microsoft account apps aren't compatible with the portal, but all Azure AD apps are, regardless of where or when they were registered.

Registros de aplicativo que dão suporte ao trabalho e contas de estudante e contas pessoais têm as seguintes condições:App registrations that support work and school accounts and personal accounts have the following caveats:

  • Apenas dois segredos do aplicativo são permitidos por ID do Aplicativo.Only two app secrets are allowed per application ID.
  • Um aplicativo que não foi registrado em um locatário só pode ser gerenciado pela conta que o registrou.An application that wasn't registered in a tenant can only be managed by the account that registered it. Ele não pode ser compartilhado com outros desenvolvedores.It can’t be shared with other developers. Esse é o caso para a maioria dos aplicativos que foram registrados usando uma conta pessoal da Microsoft no Portal de registro do aplicativo.This is the case for most apps that were registered using a personal Microsoft account in the App Registration Portal. Se você quiser compartilhar seu registro de aplicativo com vários desenvolvedores, registre o aplicativo em um locatário usando a nova seção registros de aplicativo da portal do Azure.If you’d like to share your app registration with multiple developers, register the application in a tenant using the new App registrations section of the Azure portal.
  • Existem várias restrições quanto ao formato do URL de redirecionamento permitido.There are several restrictions on the format of the redirect URL that is allowed. Para mais informações sobre o URL de redirecionamento, consulte a próxima seção.For more information about redirect URL, see the next section.

Restrições em URLs de redirecionamentoRestrictions on redirect URLs

Os aplicativos registrados para a plataforma Microsoft Identity são restritos a um conjunto limitado de valores de URL de redirecionamento.Apps that are registered for Microsoft identity platform are restricted to a limited set of redirect URL values. O URL de redirecionamento para aplicativos e serviços da web deve começar com o esquema https, e todos os valores de URL de redirecionamento devem compartilhar um único domínio DNS.The redirect URL for web apps and services must begin with the scheme https, and all redirect URL values must share a single DNS domain. O sistema de registro compara todo o nome DNS do URL de redirecionamento existente com o nome DNS do URL de redirecionamento que você está adicionando.The registration system compares the whole DNS name of the existing redirect URL to the DNS name of the redirect URL that you're adding. http://localhost também é compatível como uma URL de redirecionamento.http://localhost is also supported as a redirect URL.

A solicitação para adicionar o nome DNS falhará se alguma das condições abaixo for verdadeira:The request to add the DNS name will fail if either of the following conditions is true:

  • Todo o nome DNS do novo URL de redirecionamento não corresponde ao nome DNS do URL de redirecionamento existente.The whole DNS name of the new redirect URL doesn't match the DNS name of the existing redirect URL.
  • O nome DNS completo da URL de redirecionamento novo não for um subdomínio da URL de redirecionamento existente.The whole DNS name of the new redirect URL isn't a subdomain of the existing redirect URL.

Exemplo 1Example 1

Se o aplicativo tem uma URL de redirecionamento de https://login.contoso.com, você pode adicionar uma URL de redirecionamento em que o nome DNS corresponde exatamente, conforme mostrado no exemplo a seguir:If the app has a redirect URL of https://login.contoso.com, you can add a redirect URL where the DNS name matches exactly, as shown in the following example:

https://login.contoso.com/new

Ou, você pode se referir a um DNS de subdomínio logon.contoso.com, conforme mostrado no exemplo a seguir:Or, you can refer to a DNS subdomain of login.contoso.com, as shown in the following example:

https://new.login.contoso.com

Exemplo 2Example 2

Se você quiser ter um aplicativo que tenha login-east.contoso.com e login-west.contoso.com como URLs de redirecionamento, adicione os URLs de redirecionamento nesta ordem:If you want to have an app that has login-east.contoso.com and login-west.contoso.com as redirect URLs, you must add those redirect URLs in the following order:

https://contoso.com
https://login-east.contoso.com
https://login-west.contoso.com

Você pode adicionar os dois últimos porque eles são subdomínios da primeira URL de redirecionamento, contoso.com.You can add the latter two because they're subdomains of the first redirect URL, contoso.com.

Você pode ter apenas 20 URLs de resposta para um aplicativo específico – esse limite se aplica a todos os tipos de aplicativo que o registro dá suporte (SPA (aplicativo de página única), cliente nativo, aplicativo Web e serviço).You can have only 20 reply URLs for a particular application - this limit applies across all app types that the registration supports (single-page application (SPA), native client, web app, and service).

Para saber como registrar um aplicativo para uso com a plataforma de identidade da Microsoft, consulte registrar um aplicativo usando a nova experiência de registros de aplicativo.To learn how to register an app for use with Microsoft identity platform, see Register an app using the new App registrations experience.

Restrição de bibliotecas e SDKsRestrictions on libraries and SDKs

Atualmente, o suporte à biblioteca para o ponto de extremidade da plataforma Microsoft Identity é limitado.Currently, library support for the Microsoft identity platform endpoint is limited. Se você quiser usar o ponto de extremidade da plataforma de identidade da Microsoft em um aplicativo de produção, terá estas opções:If you want to use the Microsoft identity platform endpoint in a production application, you have these options:

  • Se você estiver criando um aplicativo Web, você pode usar com segurança o middleware do lado do servidor disponível para fazer logon e validação de token.If you're building a web application, you can safely use the generally available server-side middleware to do sign-in and token validation. Isso inclui o middleware OWIN Open ID Connect para ASP.NET e o plug-in Passport do Node.js.These include the OWIN OpenID Connect middleware for ASP.NET and the Node.js Passport plug-in. Para obter exemplos de código que usam o middleware da Microsoft, consulte a seção introdução à plataforma de identidade da Microsoft .For code samples that use Microsoft middleware, see the Microsoft identity platform getting started section.
  • Se você estiver criando um aplicativo móvel ou desktop, poderá usar uma das MSAL (bibliotecas de autenticação da Microsoft).If you're building a desktop or mobile application, you can use one of the Microsoft Authentication Libraries (MSAL). Essas bibliotecas estão geralmente disponíveis ou em uma versão prévia com suporte de produção, portanto, é seguro usá-las em aplicativos de produção.These libraries are generally available or in a production-supported preview, so it is safe to use them in production applications. Leia mais sobre os termos da versão prévia e as bibliotecas disponíveis na referência de bibliotecas de autenticação.You can read more about the terms of the preview and the available libraries in authentication libraries reference.
  • Para plataformas não cobertas pelas bibliotecas da Microsoft, você pode integrar-se ao ponto de extremidade da plataforma de identidade da Microsoft enviando e recebendo diretamente mensagens de protocolo no código do aplicativo.For platforms not covered by Microsoft libraries, you can integrate with the Microsoft identity platform endpoint by directly sending and receiving protocol messages in your application code. Os protocolos do OpenID Connect e do OAuth são documentados explicitamente para ajudá-lo a fazer essa integração.The OpenID Connect and OAuth protocols are explicitly documented to help you do such an integration.
  • Por fim, você pode usar o OpenID Connect e as bibliotecas do OAuth de software livre para integrar com o ponto de extremidade da plataforma de identidade da Microsoft.Finally, you can use open-source OpenID Connect and OAuth libraries to integrate with the Microsoft identity platform endpoint. O ponto de extremidade da plataforma de identidade da Microsoft deve ser compatível com muitas bibliotecas de protocolo de código aberto sem alterações.The Microsoft identity platform endpoint should be compatible with many open-source protocol libraries without changes. A disponibilidade desses tipos de bibliotecas varia por idioma e plataforma.The availability of these kinds of libraries varies by language and platform. Os sites do Open ID Connect e do OAuth 2.0 mantêm uma lista das implementações populares.The OpenID Connect and OAuth 2.0 websites maintain a list of popular implementations. Para obter mais informações, consulte plataforma de identidade da Microsoft e bibliotecas de autenticaçãoe a lista de bibliotecas de cliente de software livre e exemplos que foram testados com o ponto de extremidade da plataforma Microsoft Identity.For more information, see Microsoft identity platform and authentication libraries, and the list of open-source client libraries and samples that have been tested with the Microsoft identity platform endpoint.
  • Para referência, o .well-known ponto de extremidade para o ponto de extremidade comum https://login.microsoftonline.com/common/v2.0/.well-known/openid-configurationda plataforma de identidade da Microsoft é.For reference, the .well-known endpoint for the Microsoft identity platform common endpoint is https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration. Substitua common pela ID do locatário para obter dados específicos para o locatário.Replace common with your tenant ID to get data specific to your tenant.

Alterações do protocoloProtocol changes

O ponto de extremidade da plataforma de identidade da Microsoft não oferece suporte a SAML ou WS-Federation; Ele só dá suporte a OpenID Connect e a OAuth 2,0.The Microsoft identity platform endpoint does not support SAML or WS-Federation; it only supports OpenID Connect and OAuth 2.0. As alterações importantes para os protocolos OAuth 2.0 do ponto de extremidade v1.0 são:The notable changes to the OAuth 2.0 protocols from the v1.0 endpoint are:

  • A declaração email será retornada somente se uma declaração opcional estiver configurada ou scope=email tiver sido especificado na solicitação.The email claim is returned if an optional claim is configured or scope=email was specified in the request.
  • O parâmetro scope agora tem suporte em vez do resource parâmetro.The scope parameter is now supported in place of the resource parameter.
  • Muitas respostas foram modificadas para torná-lo mais compatível com a especificação do OAuth 2.0, por exemplo, retornando corretamente expires_in como um int em vez de uma cadeia de caracteres.Many responses have been modified to make them more compliant with the OAuth 2.0 specification, for example, correctly returning expires_in as an int instead of a string.

Para entender melhor o escopo da funcionalidade de protocolo com suporte no ponto de extremidade da plataforma de identidade da Microsoft, consulte OpenID Connect e referência de protocolo OAuth 2,0.To better understand the scope of protocol functionality supported in the Microsoft identity platform endpoint, see OpenID Connect and OAuth 2.0 protocol reference.

Restrições de SAMLSAML restrictions

Se você usou o Biblioteca de Autenticação do Active Directory (ADAL) em aplicativos do Windows, você pode ter aproveitado a autenticação integrada do Windows, que usa a concessão de asserção do Security Assertion Markup Language (SAML).If you've used Active Directory Authentication Library (ADAL) in Windows applications, you might have taken advantage of Windows Integrated authentication, which uses the Security Assertion Markup Language (SAML) assertion grant. Com essa concessão, os usuários de locatários do Azure AD federados se autenticam com suas instâncias do Active Directory local sem inserir as credenciais.With this grant, users of federated Azure AD tenants can silently authenticate with their on-premises Active Directory instance without entering credentials. A concessão de Asserção SAML não tem suporte no ponto de extremidade da plataforma de identidade da Microsoft.The SAML assertion grant isn't supported on the Microsoft identity platform endpoint.