Configurar um aplicativo OpenID Connect/OAuth por meio da galeria de aplicativos do Microsoft Entra

  1. Entre no Centro de administração do Microsoft Entra como pelo menos Administrador de Acesso Condicional.

  2. Navegue até Identidade>Aplicativos>Aplicativos Empresariais.

    A folha Aplicativos empresariais

  3. Selecione Novo aplicativo na parte superior da caixa de diálogo.

    O botão Novo aplicativo

  4. Na caixa de pesquisa, digite o nome do aplicativo. Selecione o aplicativo desejado no painel de resultados e inscreva-se no aplicativo.

    OpenID na lista de resultados

  5. Na página Nome do aplicativo, clique no botão Inscrever-se.

    Botão Adicionar

    Observação

    Aqui o administrador de locatário deve selecionar o botão para se inscrever e dar o consentimento ao aplicativo. Em seguida, o aplicativo é adicionado ao locatário externo, onde você pode definir as configurações. Não é necessário adicionar o aplicativo explicitamente.

  6. Você será redirecionado para a página Logon do Aplicativo ou para a página do Microsoft Entra ID para credenciais de entrada.

  7. Após a autenticação bem-sucedida, você deve aceitar o consentimento da página de consentimento. Depois disso, é exibida a home page do aplicativo.

    Observação

    Você só pode adicionar uma instância do aplicativo. Caso já tenha adicionado uma e tenha tentado fornecer o consentimento novamente, ela não será adicionada outra vez no locatário. Portanto, logicamente, só é possível usar uma instância de aplicativo no locatário.

  8. Siga o vídeo abaixo para adicionar um aplicativo OpenID por meio da galeria.

Fluxo de autenticação usando o OpenID Connect

O fluxo de entrada mais básico contém as seguintes etapas:

Fluxo de autenticação usando o OpenID Connect

Aplicativo multilocatário

Um aplicativo multilocatário é destinado para uso em muitas organizações, não em apenas uma. Esses são normalmente aplicativos de software como serviço (SaaS) escritos por um fornecedor de software independente (ISV).

Aplicativos multilocatários precisam ser provisionados em cada diretório em que serão usados. Eles exigem o consentimento do usuário ou do administrador para registrá-los. Esse processo de consentimento é iniciado quando um aplicativo tiver sido registrado no diretório e receber acesso à API do Graph ou talvez a outra API da Web. Quando um usuário ou administrador de uma organização diferente se inscrever para usar o aplicativo, uma caixa de diálogo exibe as permissões das quais o aplicativo precisa.

O usuário ou administrador pode então dar consentimento ao aplicativo. O consentimento fornece ao aplicativo acesso aos dados declarados e, por fim, registra o aplicativo no diretório.

Observação

Se você estiver disponibilizando seu aplicativo a usuários em múltiplos diretórios, será necessário um mecanismo para determinar em qual locatário eles estão. Um aplicativo de locatário único só precisa procurar por um usuário em seu próprio diretório. Um aplicativo multilocatário precisa identificar um usuário específico em todos os diretórios no Microsoft Entra ID.

Para realizar essa tarefa, o Microsoft Entra ID fornece um ponto de extremidade de autenticação comum em que qualquer aplicativo multilocatário pode direcionar solicitações de entrada, em vez de um ponto de extremidade específico de locatário. Esse ponto de extremidade é https://login.microsoftonline.com/common para todos os diretórios no Microsoft Entra ID. Um ponto de extremidade específico de locatário pode ser https://login.microsoftonline.com/contoso.onmicrosoft.com.

É importante levar em consideração o ponto de extremidade comum quando estiver desenvolvendo seu aplicativo. Você precisará da lógica adequada para lidar com vários locatários durante a entrada, saída e validação de token.

Por padrão, o Microsoft Entra ID promove aplicativos multilocatários. Eles são acessados com facilidade entre organizações e são fáceis de usar depois que o consentimento foi aceito.

É possível usar a estrutura de consentimento do Microsoft Entra para desenvolver aplicativos Web multilocatários e clientes nativos. Esses aplicativos permitem a entrada de contas de usuário de um locatário do Microsoft Entra diferente daquele no qual o aplicativo está registrado. Eles também precisam acessar APIs Web como:

  • A API do Microsoft Graph, para acessar o Microsoft Entra ID, o Intune e serviços no Microsoft 365.
  • Outras APIs de serviços da Microsoft.
  • Suas próprias APIs Web.

A estrutura se baseia em um usuário ou administrador que dá autorização a um aplicativo que solicita seu registro no diretório. O registro pode envolver acesso aos dados de diretório. Depois que o consentimento for dado, o aplicativo cliente pode chamar a API do Microsoft Graph em nome do usuário e usar as informações conforme o necessário.

A API do Microsoft Graph fornece acesso aos dados no Microsoft 365, como:

  • Calendários e mensagens do Exchange.
  • Sites e listas do SharePoint.
  • Documentos do OneDrive.
  • Blocos de notas do OneNote.
  • Tarefas do Planner.
  • Pastas de trabalho do Excel.

A API do Graph também fornece acesso a usuários e grupos do Microsoft Entra ID e outros objetos de dados de mais serviços de nuvem da Microsoft.

As etapas a seguir mostram como a experiência de consentimento funciona para o desenvolvedor e o usuário do aplicativo:

  1. Suponha que você tenha um aplicativo cliente Web que precise solicitar permissões específicas para acessar um recurso ou API. O portal do Azure é usado para declarar as solicitações de permissão em tempo de configuração. Como outras definições de configuração, elas se tornam parte dos registros do Microsoft Entra do aplicativo. Para o caminho de solicitação da permissão, é necessário seguir as etapas abaixo:

    a. Clique nos Registros de aplicativo do lado esquerdo do menu e abra seu aplicativo, digitando o nome dele na caixa de pesquisa.

    Uma captura de tela que mostra a opção

    b. Clique em Exibir Permissões de API.

    Uma captura de tela que mostra a página

    c. Clique em Adicionar uma permissão.

    Uma captura de tela que mostra a seção

    d. Clique em Microsoft Graph.

    Uma captura de tela que mostra a página

    e. Selecione as opções obrigatórias de Permissões delegadas e Permissões do Aplicativo.

    API do Graph

  2. Considere que as permissões do aplicativo tenham sido atualizadas. O aplicativo está em execução e um usuário está prestes a usá-lo pela primeira vez. Primeiro, o aplicativo precisa obter um código de autorização do ponto de extremidade /authorize do Microsoft Entra ID. O código de autorização então pode ser usado para adquirir um novo acesso e token de atualização.

  3. Se o usuário ainda não tiver sido autenticado, o ponto de extremidade /authorize do Microsoft Entra ID solicitará a entrada.

    Uma captura de tela do prompt de entrada da conta

  4. Depois que o usuário tiver entrado, o Microsoft Entra ID determinará se o usuário precisará ver uma página de consentimento. Essa decisão depende do fato de o usuário (ou do administrador da organização) já ter dado o consentimento de aplicativo.

    Se o consentimento não tiver sido dado, o Microsoft Entra solicitará o consentimento ao usuário e exibirá as permissões adequadas de que ele precisa para funcionar. As permissões exibidas na caixa de diálogo de consentimento correspondem àquelas selecionadas nas permissões delegadas.

    Página de consentimento

Um usuário normal pode dar consentimento a algumas permissões. Outras permissões exigem um consentimento do administrador de locatários.

Como administrador, você pode também concorda com permissões do aplicativo em nome de todos os usuários em seu locatário. O consentimento administrativo impedirá que a caixa de diálogo de consentimento apareça para cada usuário no locatário. Os usuários que têm a função de administrador podem fornecer consentimento. Na página Configurações do seu aplicativo, selecione Permissões Necessárias>Conceder consentimento do administrador.

Botão Conceder permissões

Observação

A concessão explícita usando o botão Dar consentimento do administrador agora é necessária para SPAs (aplicativos de página única) que usam o MSAL.js. Caso contrário, o aplicativo falhará quando o token de acesso for solicitado.

As permissões somente do aplicativo sempre exigem o consentimento do administrador de locatários. Se o aplicativo solicitar uma permissão somente aplicativo e um usuário tentar entrar nele, uma mensagem de erro será exibida. A mensagem informa que o usuário não pode consentir.

Se o aplicativo usar permissões que exigem o consentimento do administrador, você precisará ter um gesto, como um botão ou link, em que o administrador pode iniciar a ação. A solicitação que seu aplicativo envia para essa ação é uma solicitação de autorização usual do OAuth2/OpenID Connect. Essa solicitação inclui o parâmetro de cadeia de consulta prompt = admin_consent.

Depois que o administrador fornecer seu consentimento e a entidade de serviço for criada no locatário do cliente, as solicitações posteriores de conexão não precisarão do parâmetro prompt=admin_consent. Como o administrador decidiu que as permissões solicitadas são aceitáveis, não será solicitado o consentimento de nenhum outro usuário no locatário daquele ponto em diante.

Um administrador de locatários pode desabilitar a capacidade dos usuários regulares consentirem aplicativos. Se essa funcionalidade estiver desabilitada, o consentimento do administrador sempre será necessário para o aplicativo a ser usado no locatário. Se desejar testar seu aplicativo com o consentimento do usuário final desabilitado, é possível localizar a opção de configuração no portal do Azure. Ela está na seção Configurações de usuário em Aplicativos empresariais.

O parâmetro prompt=admin_consent também pode ser usado por aplicativos que solicitam permissões que não necessitam do consentimento do administrador. Um exemplo é um aplicativo que exige uma experiência na qual o administrador de locatários "se inscreve" uma vez, e não é solicitado o consentimento de nenhum outro usuário desse ponto em diante.

Imagine que um aplicativo exige o consentimento do administrador e que um administrador entra sem o parâmetro prompt = admin_consent ser enviado. Quando o administrador fornece consentimento ao aplicativo com sucesso, este se aplica somente à sua conta de usuário. Os usuários normais ainda não poderão entrar ou dar consentimento ao aplicativo. Esse recurso é útil se você quiser conceder ao administrador de locatários a capacidade de explorar seu aplicativo antes de permitir o acesso de outros usuários.

Próximas etapas

Configurar o logon único (SSO) baseado em OIDC para um aplicativo no locatário do Microsoft Entra