Configurar um aplicativo OpenID Connect OAuth da galeria de aplicativos do Microsoft Entra
Processo de adicionar um aplicativo OpenID da galeria
Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
Navegue até Aplicativos de identidade>>Aplicativos corporativos.
Selecione Novo aplicativo na parte superior da caixa de diálogo.
Na caixa de pesquisa, digite o nome do aplicativo. Selecione o aplicativo desejado no painel de resultados e inscreva-se no aplicativo.
Na página Nome do aplicativo, clique no botão Inscrever-se.
Nota
Aqui, o administrador do locatário deve selecionar o botão de inscrição e fornecer o consentimento para o aplicativo. O aplicativo é então adicionado ao locatário externo, onde você pode fazer as configurações. Não há necessidade de adicionar o aplicativo explicitamente.
Você será redirecionado para a página Login do Aplicativo ou para a página ID do Microsoft Entra para obter credenciais de entrada.
Após a autenticação bem-sucedida, você aceita o consentimento da página de consentimento. Depois disso, a página inicial do aplicativo é exibida.
Nota
Você pode adicionar apenas uma instância do aplicativo. Se você já adicionou um e tentou fornecer o consentimento novamente, ele não será adicionado novamente no locatário. Portanto, logicamente, você pode usar apenas uma instância de aplicativo no locatário.
Siga o vídeo abaixo para adicionar um aplicativo OpenID da galeria.
Fluxo de autenticação usando o OpenID Connect
O fluxo de entrada mais básico contém as seguintes etapas:
Aplicativo multilocatário
Um aplicativo multilocatário destina-se ao uso em muitas organizações, não apenas em uma. Normalmente, são aplicativos SaaS (software como serviço) escritos por um fornecedor de software independente (ISV).
Os aplicativos multilocatários precisam ser provisionados em cada diretório onde serão usados. Eles exigem o consentimento do usuário ou administrador para registrá-los. Esse processo de consentimento começa quando um aplicativo é registrado no diretório e recebe acesso à Graph API ou talvez a outra API da Web. Quando um usuário ou administrador de uma organização diferente se inscreve para usar o aplicativo, uma caixa de diálogo exibe as permissões de que o aplicativo precisa.
O usuário ou administrador pode então consentir com o aplicativo. O consentimento dá ao aplicativo acesso aos dados declarados e, finalmente, registra o aplicativo no diretório.
Nota
Se você estiver disponibilizando seu aplicativo para usuários em vários diretórios, precisará de um mecanismo para determinar em qual locatário eles estão. Um aplicativo de locatário único só precisa procurar um usuário em seu próprio diretório. Um aplicativo multilocatário precisa identificar um usuário específico de 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 onde qualquer aplicativo multilocatário pode direcionar solicitações de entrada, em vez de um ponto de extremidade específico do locatário. Este ponto de extremidade é https://login.microsoftonline.com/common
para todos os diretórios no Microsoft Entra ID. Um ponto de extremidade específico do locatário pode ser https://login.microsoftonline.com/contoso.onmicrosoft.com
.
O ponto de extremidade comum é importante considerar quando você estiver desenvolvendo seu aplicativo. Você precisará da lógica necessária 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ário. Eles são facilmente acessados em todas as organizações e são fáceis de usar depois que você aceita o consentimento.
Enquadramento do consentimento
Você pode usar a estrutura de consentimento do Microsoft Entra para desenvolver aplicativos Web e cliente nativos multilocatário. Esses aplicativos permitem a entrada por contas de usuário de um locatário do Microsoft Entra, diferente daquele em que o aplicativo está registrado. Eles também podem precisar acessar APIs da Web, como:
- A API do Microsoft Graph, para acessar o Microsoft Entra ID, o Intune e os serviços no Microsoft 365.
- APIs de outros serviços da Microsoft.
- Suas próprias APIs da Web.
A estrutura baseia-se num utilizador ou administrador que dá consentimento a uma aplicação que lhe pede para ser registada no diretório. O registo pode envolver o acesso a dados de diretório. Após o consentimento ser dado, o aplicativo cliente pode chamar a API do Microsoft Graph em nome do usuário e usar as informações conforme necessário.
A API do Microsoft Graph fornece acesso a 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:
Suponha que você tenha um aplicativo cliente da Web que precisa solicitar permissões específicas para acessar um recurso ou API. O portal do Azure é usado para declarar solicitações de permissão no momento da 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 de permissão, você precisa seguir as etapas abaixo:
a. Clique nos registos da aplicação no lado esquerdo do menu e abra a sua aplicação introduzindo o nome da aplicação na caixa de pesquisa.
b. Clique em Exibir permissões da API.
c. Clique em Adicionar uma permissão.
d. Clique em No Microsoft Graph.
e. Selecione as opções necessárias em Permissões delegadas e Permissões de aplicativo.
Considere que as permissões do seu aplicativo foram 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 Microsoft Entra ID /authorize endpoint. O código de autorização pode então ser usado para adquirir um novo token de acesso e atualização.
Se o usuário ainda não estiver autenticado, o Microsoft Entra ID /authorize endpoint solicitará a entrada.
Depois que o usuário entrar, o ID do Microsoft Entra determina se o usuário precisa receber uma página de consentimento. Essa determinação é baseada no fato de o usuário (ou o administrador de sua organização) já ter concedido o consentimento do aplicativo.
Se o consentimento não tiver sido concedido, o Microsoft Entra solicitará o consentimento do usuário e exibirá as permissões necessárias para que ele funcione. As permissões exibidas na caixa de diálogo de consentimento correspondem às selecionadas nas permissões delegadas.
Um usuário regular pode consentir com algumas permissões. Outras permissões requerem o consentimento de um administrador de locatário.
Diferença entre consentimento de administrador e consentimento de usuário
Como administrador, você também pode consentir com as permissões delegadas de um aplicativo em nome de todos os usuários em seu locatário. O consentimento administrativo impede 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. Selecione Gerenciar>permissões de API. Em Conceder consentimento, selecione Conceder consentimento de administrador para.
Nota
A concessão de consentimento explícito usando o botão Conceder consentimento de administrador agora é necessária para aplicativos de página única (SPAs) que usam MSAL.js. Caso contrário, o aplicativo falhará quando o token de acesso for solicitado.
As permissões somente de aplicativo sempre exigem o consentimento de um administrador de locatário. Se o seu aplicativo solicitar uma permissão somente para o aplicativo e um usuário tentar entrar no aplicativo, uma mensagem de erro será exibida. A mensagem diz que o usuário não pode consentir.
Se seu aplicativo usa permissões que exigem o consentimento do administrador, você precisa ter um gesto, como um botão ou link onde o administrador possa iniciar a ação. A solicitação que seu aplicativo envia para essa ação é a solicitação de autorização OAuth2/OpenID Connect usual. Essa solicitação inclui o parâmetro prompt=admin_consent query string.
Depois que o administrador consentir e a entidade de serviço for criada no locatário do cliente, as solicitações de entrada posteriores não precisarão do parâmetro prompt=admin_consent . Como o administrador decidiu que as permissões solicitadas são aceitáveis, nenhum outro usuário no locatário será solicitado a dar consentimento a partir desse ponto.
Um administrador de locatário pode desabilitar a capacidade de usuários comuns consentirem com aplicativos. Se esse recurso estiver desativado, o consentimento do administrador será sempre necessário para que o aplicativo seja usado no locatário. Se quiser testar seu aplicativo com o consentimento do usuário final desabilitado, você pode encontrar a opção de configuração no portal do Azure. Encontra-se na secção Definições do utilizador em Aplicações empresariais.
O parâmetro prompt=admin_consent também pode ser usado por aplicativos que solicitam permissões que não exigem consentimento do administrador. Um exemplo é um aplicativo que requer uma experiência em que o administrador do locatário "se inscreve" uma vez e nenhum outro usuário é solicitado a dar consentimento a partir desse ponto.
Imagine que um aplicativo requer o consentimento do administrador e um administrador entra sem que o parâmetro prompt=admin_consent seja enviado. Quando o administrador consente com êxito com o aplicativo, ele se aplica apenas à sua conta de usuário. Os utilizadores regulares continuarão a não conseguir iniciar sessão ou consentir a aplicação. Esse recurso é útil se você quiser dar ao administrador do locatário a capacidade de explorar seu aplicativo antes de permitir o acesso de outros usuários.