O que é a autenticação?What is authentication?

Autenticação é o ato de desafiar uma parte para o fornecimento de credenciais legítimas, fornecendo a base para a criação de uma entidade de segurança a ser usada para controle de identidade e acesso.Authentication is the act of challenging a party for legitimate credentials, providing the basis for creation of a security principal to be used for identity and access control. Em termos mais simples, é o processo de provar que você é quem diz ser.In simpler terms, it's the process of proving you are who you say you are. Às vezes, a autenticação é abreviada para AuthN.Authentication is sometimes shortened to AuthN.

Autorização é o ato de conceder a uma entidade de segurança autenticada a permissão para fazer algo.Authorization is the act of granting an authenticated security principal permission to do something. Ela especifica quais dados você tem permissão para acessar e o que você pode fazer com eles.It specifies what data you're allowed to access and what you can do with it. Às vezes, a autorização é abreviada para AuthZ.Authorization is sometimes shortened to AuthZ.

A plataforma de identidade da Microsoft simplifica a autenticação para os desenvolvedores de aplicativos, fornecendo a identidade como serviço, com suporte para protocolos padrão do setor, como OAuth 2.0 e OpenID Connect, bem como bibliotecas de software livre para diferentes plataformas para ajudá-lo a começar a codificação rapidamente.Microsoft identity platform simplifies authentication for application developers by providing identity as a service, with support for industry-standard protocols such as OAuth 2.0 and OpenID Connect, as well as open-source libraries for different platforms to help you start coding quickly.

Há dois casos de uso principais no modelo de programação da plataforma de identidade da Microsoft:There are two primary use cases in the Microsoft identity platform programming model:

  • Durante um fluxo de concessão de autorização do OAuth 2.0 – quando o proprietário do recurso concede autorização para o aplicativo cliente, permitindo que o cliente acesse os recursos do proprietário do recurso.During an OAuth 2.0 authorization grant flow - when the resource owner grants authorization to the client application, allowing the client to access the resource owner's resources.
  • Durante o acesso a recursos pelo cliente – conforme implementado pelo servidor de recursos, usando os valores de declaração presentes no token de acesso para tomar decisões de controle de acesso com base neles.During resource access by the client - as implemented by the resource server, using the claims values present in the access token to make access control decisions based upon them.

Noções básicas de autenticação na plataforma de identidade da MicrosoftAuthentication basics in Microsoft identity platform

Considere o cenário mais básico em que a identidade é necessária: um usuário em um navegador da Web precisa se autenticar em um aplicativo Web.Consider the most basic scenario where identity is required: a user in a web browser needs to authenticate to a web application. O seguinte diagrama mostra esse cenário:The following diagram shows this scenario:

Visão geral de logon no aplicativo Web

Isto é o que você precisa saber sobre os vários componentes mostrados no diagrama:Here’s what you need to know about the various components shown in the diagram:

  • A plataforma de identidade da Microsoft é o provedor de identidade.Microsoft identity platform is the identity provider. O provedor de identidade é responsável por verificar a identidade dos usuários e dos aplicativos existentes no diretório de uma organização e emite tokens de segurança após a autenticação bem-sucedida desses usuários e aplicativos.The identity provider is responsible for verifying the identity of users and applications that exist in an organization’s directory, and issues security tokens upon successful authentication of those users and applications.
  • Um aplicativo que deseja terceirizar a autenticação para a plataforma de identidade da Microsoft precisa ser registrado no Azure AD (Azure Active Directory).An application that wants to outsource authentication to Microsoft identity platform must be registered in Azure Active Directory (Azure AD). O Azure AD registra e identifica exclusivamente o aplicativo no diretório.Azure AD registers and uniquely identifies the app in the directory.
  • Os desenvolvedores podem usar as bibliotecas de autenticação da plataforma de identidade da Microsoft de software livre para facilitar a autenticação manipulando os detalhes de protocolo para você.Developers can use the open-source Microsoft identity platform authentication libraries to make authentication easy by handling the protocol details for you. Para obter mais informações, confira as bibliotecas de autenticação v2.0 e as bibliotecas de autenticação v1.0 da plataforma de identidade da Microsoft.For more info, see Microsoft identity platform v2.0 authentication libraries and v1.0 authentication libraries.
  • Depois de autenticar um usuário, o aplicativo deverá validar o token de segurança do usuário para garantir que a autenticação foi bem-sucedida.Once a user has been authenticated, the application must validate the user’s security token to ensure that authentication was successful. Encontre inícios rápidos, tutoriais e exemplos de código em uma variedade de linguagens e estruturas que mostram o que o aplicativo precisa fazer.You can find quickstarts, tutorials, and code samples in a variety of languages and frameworks which show what the application must do.
    • Para criar rapidamente um aplicativo e adicionar funcionalidades como obtenção de tokens, atualização de tokens, conexão do usuário, exibição de algumas informações do usuário e muito mais, confira a seção Inícios Rápidos da documentação.To quickly build an app and add functionality like getting tokens, refreshing tokens, signing in a user, displaying some user info, and more, see the Quickstarts section of the documentation.
    • Para obter procedimentos detalhados baseados em cenário para as principais tarefas do desenvolvedor de autenticação, como obtenção de tokens de acesso e seu uso em chamadas à API do Microsoft Graph e a outras APIs, implementação da entrada com a Microsoft com um aplicativo baseado em navegador da Web tradicional usando o OpenID Connect e muito mais, confira a seção Tutoriais da documentação.To get in-depth, scenario-based procedures for top auth developer tasks like obtaining access tokens and using them in calls to the Microsoft Graph API and other APIs, implementing sign-in with Microsoft with a traditional web browser-based app using OpenID Connect, and more, see the Tutorials section of the documentation.
    • Para baixar exemplos de código, acesse o GitHub.To download code samples, go to GitHub.
  • O fluxo de solicitações e respostas do processo de autenticação é determinado pelo protocolo de autenticação que foi usado, como OAuth 2.0, OpenID Connect, Web Services Federation ou SAML 2.0.The flow of requests and responses for the authentication process is determined by the authentication protocol that you used, such as OAuth 2.0, OpenID Connect, WS-Federation, or SAML 2.0. Para obter mais informações sobre protocolos, consulte a seção conceitos > Protocolo de autenticação da documentação do.For more info about protocols, see the Concepts > Authentication protocol section of the documentation.

No cenário de exemplo acima, você pode classificar os aplicativos de acordo com estas duas funções:In the example scenario above, you can classify the apps according to these two roles:

  • Aplicativos que precisam acessar os recursos com segurançaApps that need to securely access resources
  • Aplicativos que desempenham a função do recurso em siApps that play the role of the resource itself

Agora que você tem uma visão geral dos conceitos básicos, continue lendo para entender a API e o modelo de aplicativo de identidade, como funciona o provisionamento na plataforma de identidade da Microsoft e obter links para informações detalhadas sobre os cenários comuns aos quais a plataforma de identidade da Microsoft dá suporte.Now that you have an overview of the basics, read on to understand the identity app model and API, how provisioning works in Microsoft identity platform, and links to detailed info about the common scenarios that Microsoft identity platform supports.

Modelo de aplicativoApplication model

A plataforma de identidade da Microsoft representa aplicativos que seguem um modelo específico projetado para cumprir duas funções principais:Microsoft identity platform represents applications following a specific model that's designed to fulfill two main functions:

  • Identificar o aplicativo de acordo com os protocolos de autenticação aos quais ele dá suporte – isso envolve a enumeração de todos os identificadores, as URLs, os segredos e as informações relacionadas que são necessárias no momento da autenticação.Identify the app according to the authentication protocols it supports - This involves enumerating all the identifiers, URLs, secrets, and related information that are needed at authentication time. Aqui, a plataforma de identidade da Microsoft:Here, Microsoft identity platform:

    • Armazena todos os dados necessários para dar suporte à autenticação em tempo de execução.Holds all the data required to support authentication at run time.
    • Armazena todos os dados para decidir quais recursos um aplicativo pode precisar acessar e se determinada solicitação deve ser atendida e em quais circunstâncias.Holds all the data for deciding what resources an app might need to access and whether a given request should be fulfilled and under what circumstances.
    • Fornece a infraestrutura para implementação do provisionamento de aplicativos dentro do locatário do desenvolvedor do aplicativo e em qualquer outro locatário do Azure AD.Provides the infrastructure for implementing app provisioning within the app developer's tenant and to any other Azure AD tenant.
  • Manipula o consentimento do usuário durante o tempo de solicitação do token e facilita o provisionamento dinâmico de aplicativos entre locatários – aqui, a plataforma de identidade da Microsoft:Handle user consent during token request time and facilitate the dynamic provisioning of apps across tenants - Here, Microsoft identity platform:

    • Permite aos usuários e administradores conceder ou negar de forma dinâmica o consentimento ao aplicativo para o acesso de recursos em seu nome.Enables users and administrators to dynamically grant or deny consent for the app to access resources on their behalf.
    • Permite aos administradores decidir, em última análise, o que os aplicativos têm permissão para fazer, quais usuários podem usar aplicativos específicos e como os recursos do diretório são acessados.Enables administrators to ultimately decide what apps are allowed to do and which users can use specific apps, and how the directory resources are accessed.

Na plataforma de identidade da Microsoft, um objeto de aplicativo descreve um aplicativo como uma entidade abstrata.In Microsoft identity platform, an application object describes an application as an abstract entity. Os desenvolvedores trabalham com aplicativos.Developers work with applications. No momento da implantação, a plataforma de identidade da Microsoft usa um objeto de aplicativo específico como um blueprint para criar uma entidade de serviço, que representa uma instância concreta de um aplicativo em um diretório ou um locatário.At deployment time, Microsoft identity platform uses a given application object as a blueprint to create a service principal, which represents a concrete instance of an application within a directory or tenant. É a entidade de serviço que define o que o aplicativo pode realmente fazer em um diretório de destino específico, quem pode usá-lo, a quais recursos ele tem acesso e assim por diante.It's the service principal that defines what the app can actually do in a specific target directory, who can use it, what resources it has access to, and so on. A plataforma de identidade da Microsoft cria uma entidade de serviço com base em um objeto de aplicativo por meio do consentimento.Microsoft identity platform creates a service principal from an application object through consent.

O diagrama a seguir mostra um fluxo de provisionamento simplificado da plataforma de identidade da Microsoft orientado por consentimento.The following diagram shows a simplified Microsoft identity platform provisioning flow driven by consent. Nele, há dois locatários (A e B), em que o locatário A possui o aplicativo e o locatário B está instanciando o aplicativo por meio de uma entidade de serviço.In it, two tenants exist (A and B), where tenant A owns the application, and tenant B is instantiating the application via a service principal.

Fluxo de provisionamento simplificado orientado por consentimento

Neste fluxo de provisionamento:In this provisioning flow:

  1. Um usuário do locatário B tenta entrar com o aplicativo; o ponto de extremidade da autorização solicita um token para o aplicativo.A user from tenant B attempts to sign in with the app, the authorization endpoint requests a token for the application.
  2. As credenciais do usuário são adquiridas e verificadas quanto à autenticaçãoThe user credentials are acquired and verified for authentication
  3. O usuário deve fornecer consentimento ao aplicativo para obter acesso ao locatário BThe user is prompted to provide consent for the app to gain access to tenant B
  4. A plataforma de identidade da Microsoft usa o objeto de aplicativo no locatário A como um blueprint para criar uma entidade de serviço no locatário BMicrosoft identity platform uses the application object in tenant A as a blueprint for creating a service principal in tenant B
  5. O usuário recebe o token solicitadoThe user receives the requested token

Você pode repetir esse processo quantas vezes desejar para outros locatários (C, D e assim por diante).You can repeat this process as many times as you want for other tenants (C, D, and so on). O locatário A mantém o blueprint para o aplicativo (objeto de aplicativo).Tenant A retains the blueprint for the app (application object). Os usuários e os administradores de todos os outros locatários nos quais o aplicativo recebe consentimento retêm o controle sobre o que o aplicativo pode fazer por meio do objeto de entidade de serviço correspondente em cada locatário.Users and admins of all the other tenants where the app is given consent retain control over what the application is allowed to do through the corresponding service principal object in each tenant. Para obter mais informações, confira Objetos de entidade de serviço e aplicativo na plataforma de identidade da Microsoft.For more information, see Application and service principal objects in Microsoft identity platform.

Declarações em tokens de segurança da plataforma de identidade da MicrosoftClaims in Microsoft identity platform security tokens

Os tokens de segurança (tokens de acesso e ID) emitidos pela plataforma de identidade da Microsoft contêm declarações de informações sobre a entidade autenticada.Security tokens (access and ID tokens) issued by Microsoft identity platform contain claims, or assertions of information about the subject that has been authenticated. Os aplicativos podem usar declarações para diversas tarefas, incluindo:Applications can use claims for various tasks, including:

  • Validar o tokenValidate the token
  • Identificar o locatário de diretório da entidadeIdentify the subject's directory tenant
  • Exibir informações do usuárioDisplay user information
  • Determinar a autorização da entidadeDetermine the subject's authorization

As declarações presentes em qualquer token de segurança variam de acordo com o tipo de token, o tipo de credencial usada para autenticar o usuário e a configuração do aplicativo.The claims present in any given security token are dependent upon the type of token, the type of credential used to authenticate the user, and the application configuration.

Uma breve descrição de cada tipo de declaração emitida pela plataforma de identidade da Microsoft é fornecida na tabela abaixo.A brief description of each type of claim emitted by Microsoft identity platform is provided in the table below. Para obter informações mais detalhadas, confira os tokens de acesso e os tokens de ID emitidos pela plataforma de identidade da Microsoft.For more detailed information, see the access tokens and ID tokens issued by Microsoft identity platform.

DeclaraçãoClaim DescriçãoDescription
ID do AplicativoApplication ID Identifica o aplicativo que está usando o token.Identifies the application that is using the token.
AudiênciaAudience Identifica o recurso de destinatário ao qual o token é destinado.Identifies the recipient resource the token is intended for.
Referência de classe de contexto de autenticação de aplicativoApplication Authentication Context Class Reference Indica como o cliente foi autenticado (cliente público versus cliente confidencial).Indicates how the client was authenticated (public client vs. confidential client).
Instante da autenticaçãoAuthentication Instant Registra a data e o horário em que ocorreu a autenticação.Records the date and time when the authentication occurred.
Método de AutenticaçãoAuthentication Method Indica como a entidade do token foi autenticada (senha, certificado, etc.).Indicates how the subject of the token was authenticated (password, certificate, etc.).
NomeFirst Name Apresenta o nome fornecido do usuário conforme definido no Azure AD.Provides the given name of the user as set in Azure AD.
GruposGroups Contém as IDs de objeto dos grupos do Azure AD em que o usuário é membro.Contains object IDs of Azure AD groups that the user is a member of.
Provedor de IdentidadeIdentity Provider Registra o provedor de identidade que autenticou a entidade do token.Records the identity provider that authenticated the subject of the token.
Emitido emIssued At Registra o horário em que o token foi emitido, geralmente usado para atualização de token.Records the time at which the token was issued, often used for token freshness.
EmissorIssuer Identifica o STS que emitiu o token, bem como o locatário do Azure AD.Identifies the STS that emitted the token as well as the Azure AD tenant.
SobrenomeLast Name Apresenta o sobrenome fornecido do usuário conforme definido no Azure AD.Provides the surname of the user as set in Azure AD.
NomeName Fornece um valor legível que identifica a entidade do token.Provides a human readable value that identifies the subject of the token.
ID de objetoObject ID Contém um identificador exclusivo e imutável da entidade no Azure AD.Contains an immutable, unique identifier of the subject in Azure AD.
FunçõesRoles Contém os nomes amigáveis de funções de aplicativo do Azure AD que o usuário recebeu.Contains friendly names of Azure AD Application Roles that the user has been granted.
EscopoScope Indica as permissões concedidas ao aplicativo cliente.Indicates the permissions granted to the client application.
SubjectSubject Indica a entidade de segurança sobre a qual o token declara informações.Indicates the principal about which the token asserts information.
ID do locatárioTenant ID Contém um identificador exclusivo e imutável do locatário do diretório que emitiu o token.Contains an immutable, unique identifier of the directory tenant that issued the token.
Vida útil do tokenToken Lifetime Define o intervalo de tempo no qual um token é válido.Defines the time interval within which a token is valid.
Nome principal do usuárioUser Principal Name Contém o nome principal de usuário da entidade.Contains the user principal name of the subject.
VersionVersion Contém o número de versão do token.Contains the version number of the token.

Próximas etapasNext steps