Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Se a sua aplicação de desktop ou móvel correr no Windows e numa máquina ligada a um domínio Windows (Active Directory ou Microsoft Entra ligados), é possível usar a Autenticação Windows Integrada (IWA) para adquirir um token silenciosamente. Nenhuma interface do usuário é necessária ao usar o aplicativo.
final String AUTHORITY;
final String APP_ID;
String userName;
List<String> scopes;
PublicClientApplication app = PublicClientApplication.builder(APP_ID)
.authority(AUTHORITY)
.build();
IntegratedWindowsAuthenticationParameters parameters =
IntegratedWindowsAuthenticationParameters.builder(scope, userName).build();
IAuthenticationResult future = app.acquireToken(parameters).get();
Restrições
- Apenas utilizadores federados*, ou seja, quando a autenticação está a ser federada para uma autoridade local (ADFS, por exemplo), ou cenários híbridos onde o seamless-sso está ativado. Os locatários exclusivamente na cloud, em que os utilizadores estão diretamente no Microsoft Entra ID, sem qualquer suporte do Active Directory subjacente, não podem utilizar este fluxo.
- A IWA NÃO contorna MFA (autenticação multifator). Se a MFA estiver configurada, a IWA poderá falhar se for necessário um desafio de MFA, porque a MFA requer interação do usuário.
Esta é complicada. A IWA não é interativa, mas a 2FA requer interatividade do utilizador. Tu não controlas quando o fornecedor de identidade solicita a realização da 2FA, é o administrador do inquilino que controla. Pelas nossas observações, a 2FA é necessária quando faz login a partir de um país/região diferente, quando não está ligado via VPN a uma rede corporativa, e por vezes até quando está ligado via VPN. Não esperes um conjunto determinístico de regras, o Microsoft Entra ID usa IA para aprender continuamente se for necessário 2FA. Deves recorrer a um prompt de utilizador se o IWA falhar
A autoridade transmitida em
PublicApplicationdeve ser:- tenanted (do tipo
https://login.microsoftonline.com/{tenant}/, em quetenanté o GUID que representa o ID do inquilino ou um domínio associado ao inquilino. - para quaisquer contas profissionais e escolares (
https://login.microsoftonline.com/organizations/)
As contas pessoais da Microsoft não são suportadas (não pode utilizar os locatários /common ou /consumers)
- tenanted (do tipo
Porque a Autenticação Windows Integrada é um fluxo silencioso:
- O utilizador da sua aplicação deve ter previamente consentido em usar a aplicação
- ou o administrador do tenant deve ter previamente consentido que todos os utilizadores do tenant usem a aplicação.
- Isto significa que:
- ou o utilizador, como desenvolvedor, clicou no botão Conceder no portal do Azure para si próprio,
- ou um administrador do inquilino clicou no botão Conceder/revogar o consentimento de administrador para {tenant domain} no separador Permissões da API do registo da aplicação
- Ou então forneceu uma forma para os utilizadores consentirem com a aplicação
- ou forneceu uma forma de o administrador do locatário dar consentimento à aplicação