Azure AD B2C: Protocolos de autenticaçãoAzure AD B2C: Authentication protocols

O Azure AD B2C (Azure Active Directory B2C) fornece identidade como um serviço para seus aplicativos, com suporte a dois protocolos de padrão do setor: OpenID Connect e OAuth 2.0.Azure Active Directory B2C (Azure AD B2C) provides identity as a service for your apps by supporting two industry standard protocols: OpenID Connect and OAuth 2.0. O serviço está em conformidade com o padrão, mas pode haver diferenças sutis entre duas implementações quaisquer desses protocolos.The service is standards-compliant, but any two implementations of these protocols can have subtle differences.

As informações neste guia são úteis se você escreve seu código enviando e manipulando solicitações HTTP diretamente, em vez de usar uma biblioteca de software livre.The information in this guide is useful if you write your code by directly sending and handling HTTP requests, rather than by using an open source library. Recomendamos a leitura desta página antes de se aprofundar nos detalhes de cada protocolo específico.We recommend that you read this page before you dive into the details of each specific protocol. Mas se você já estiver familiarizado com o Azure AD B2C, acesse diretamente os guias de referência de protocolo.But if you're already familiar with Azure AD B2C, you can go straight to the protocol reference guides.

Noções básicasThe basics

Todo aplicativo que usa o Azure AD B2C precisa ser registrado em seu diretório B2C no Portal do Azure.Every app that uses Azure AD B2C needs to be registered in your B2C directory in the Azure portal. O processo de registro do aplicativo coleta e atribui alguns valores ao seu aplicativo:The app registration process collects and assigns a few values to your app:

  • Uma ID de aplicativo que identifica exclusivamente o aplicativo.An Application ID that uniquely identifies your app.
  • Um URI de Redirecionamento ou Identificador de Pacote que pode ser usado para direcionar as respostas de volta ao aplicativo.A Redirect URI or package identifier that can be used to direct responses back to your app.
  • Alguns outros valores específicos de cenário.A few other scenario-specific values. Para obter mais informações, saiba como registrar seu aplicativo.For more information, learn how to register your application.

Depois de registrar seu aplicativo, ele se comunicará com o Azure AD (Azure Active Directory), enviando solicitações para o ponto de extremidade:After you register your app, it communicates with Azure Active Directory (Azure AD) by sending requests to the endpoint:

https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/authorize
https://{tenant}.b2clogin.com/{tenant}.onmicrosoft.com/oauth2/v2.0/token

Em quase todos os fluxos do OAuth e do OpenID Connect, há quatro partes envolvidas na troca:In nearly all OAuth and OpenID Connect flows, four parties are involved in the exchange:

Funções do OAuth 2.0

  • O servidor de autorização é o ponto de extremidade do Azure AD.The authorization server is the Azure AD endpoint. Ele trata de forma segura tudo o que for relacionado ao acesso e informações do usuário.It securely handles anything related to user information and access. Ele também manipula as relações de confiança entre as partes em um fluxo.It also handles the trust relationships between the parties in a flow. Ele é responsável pela verificação da identidade do usuário, concessão e revogação do acesso a recursos e emissão de tokens.It is responsible for verifying the user's identity, granting and revoking access to resources, and issuing tokens. Ele também é conhecido como o provedor de identidade.It is also known as the identity provider.

  • O Proprietário do Recurso normalmente é o usuário final.The resource owner is typically the end user. Ele é a parte que possui os dados e tem o poder de permitir que terceiros acessem esses dados ou recurso.It is the party that owns the data, and it has the power to allow third parties to access that data or resource.

  • O cliente OAuth é seu aplicativo.The OAuth client is your app. Ele é identificado pela ID do aplicativo.It's identified by its Application ID. Geralmente é a parte com a qual os usuários finais interagem.It's usually the party that end users interact with. Ele também solicita tokens do servidor de autorização.It also requests tokens from the authorization server. O proprietário do recurso deve conceder ao cliente a permissão para acessar o recurso.The resource owner must grant the client permission to access the resource.

  • O Servidor de Recurso é o local no qual o recurso ou os dados residem.The resource server is where the resource or data resides. Ele confia no servidor de autorização para autenticar e autorizar o cliente OAuth com segurança.It trusts the authorization server to securely authenticate and authorize the OAuth client. Ele também usa os tokens de acesso de portador para garantir a concessão a um recurso.It also uses bearer access tokens to ensure that access to a resource can be granted.

Políticas e fluxos de usuáriosPolicies and user flows

Sem dúvida, as políticas do AD B2C do Azure são os recursos mais importantes do serviço.Arguably, Azure AD B2C policies are the most important features of the service. O AD B2C do Azure amplia os protocolos padrão do OAuth 2.0 e do OpenID Connect ao introduzir as políticas.Azure AD B2C extends the standard OAuth 2.0 and OpenID Connect protocols by introducing policies. Elas permitem que o AD B2C do Azure execute muito mais do que uma simples autenticação e uma autorização.These allow Azure AD B2C to perform much more than simple authentication and authorization.

Para ajudá-lo a configurar as tarefas de identidade mais comuns, o portal do Azure AD B2C inclui políticas predefinidas e configuráveis chamadas fluxos dos usuários.To help you set up the most common identity tasks, the Azure AD B2C portal includes predefined, configurable policies called user flows. Os fluxos dos usuários descrevem totalmente as experiências de identidade do consumidor, incluindo inscrição, entrada e edição de perfil.User flows fully describe consumer identity experiences, including sign-up, sign-in, and profile editing. Os fluxos dos usuários podem ser definidos em uma interface do usuário administrativa.User flows can be defined in an administrative UI. Elas podem ser executadas usando um parâmetro de consulta especial nas solicitações de autenticação HTTP.They can be executed by using a special query parameter in HTTP authentication requests.

Políticas e fluxos dos usuários não são recursos padrão do OAuth 2.0 e OpenID Connect, portanto, você deve reservar um tempo para compreendê-los.Policies and user flows are not standard features of OAuth 2.0 and OpenID Connect, so you should take the time to understand them. Para obter mais informações, consulte o guia de referência do fluxo de usuário do Azure AD B2C.For more information, see the Azure AD B2C user flow reference guide.

TokensTokens

A implementação do AD B2C do Azure do OAuth 2.0 e do OpenID Connect faz amplo uso de tokens de portador, incluindo os tokens de portador representados como JWTs (tokens Web JSON).The Azure AD B2C implementation of OAuth 2.0 and OpenID Connect makes extensive use of bearer tokens, including bearer tokens that are represented as JSON web tokens (JWTs). Um token de portador é um token de segurança leve que concede ao "portador" acesso a um recurso protegido.A bearer token is a lightweight security token that grants the "bearer" access to a protected resource.

O portador é qualquer parte que possa apresentar o token.The bearer is any party that can present the token. Primeiro, o Azure AD deve autenticar uma parte para que ela possa receber um token de portador.Azure AD must first authenticate a party before it can receive a bearer token. Porém, se as medidas necessárias não forem tomadas para proteger o token durante a transmissão e o armazenamento, ele poderá ser interceptado e usado por uma parte não planejada.But if the required steps are not taken to secure the token in transmission and storage, it can be intercepted and used by an unintended party.

Alguns tokens de segurança têm um mecanismo interno que impede que partes não autorizadas os usem, mas os tokens de portador não têm esse mecanismo.Some security tokens have built-in mechanisms that prevent unauthorized parties from using them, but bearer tokens do not have this mechanism. Eles devem ser transportados em um canal seguro, como HTTPS (protocolo TLS).They must be transported in a secure channel, such as a transport layer security (HTTPS).

Se um token de portador for transmitido fora de um canal seguro, uma parte mal-intencionada poderá usar um ataque por parte de intermediários para adquirir o token e usá-lo para acesso não autorizado a um recurso protegido.If a bearer token is transmitted outside a secure channel, a malicious party can use a man-in-the-middle attack to acquire the token and use it to gain unauthorized access to a protected resource. Os mesmos princípios de segurança são aplicáveis ao se armazenar ou manter em cache tokens de portador para uso posterior.The same security principles apply when bearer tokens are stored or cached for later use. Sempre se certifique de que seu aplicativo transmita e armazene tokens de portador de maneira segura.Always ensure that your app transmits and stores bearer tokens in a secure manner.

Para obter mais considerações de segurança sobre tokens de portador, confira RFC 6750 seção 5.For additional bearer token security considerations, see RFC 6750 Section 5.

Há mais informações sobre os diferentes tipos de tokens usados no Azure AD B2C disponíveis na referência de token do Azure AD.More information about the different types of tokens that are used in Azure AD B2C are available in the Azure AD token reference.

ProtocolosProtocols

Quando você estiver pronto para ver algumas solicitações de exemplo, inicie com um dos seguintes tutoriais.When you're ready to review some example requests, you can start with one of the following tutorials. Cada um corresponde a um cenário de autenticação específico.Each corresponds to a particular authentication scenario. Se precisar de ajuda para determinar qual é o fluxo certo para você, confira os tipos de aplicativos que você pode compilar usando o Azure AD B2C.If you need help determining which flow is right for you, check out the types of apps you can build by using Azure AD B2C.