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.
A autenticação intermediada coleta credenciais de usuário usando o agente de autenticação do sistema para autenticar um aplicativo. Um agente de autenticação de sistema é um aplicativo executado na máquina de um usuário que gerencia os handshakes de autenticação e a manutenção de token para todas as contas conectadas.
A autenticação intermediada oferece os seguintes benefícios:
- Ativa o Single Sign-On (SSO): Permite que as aplicações simplifiquem a autenticação dos utilizadores com Microsoft Entra ID e protege os tokens de atualização Microsoft Entra ID contra exfiltração e uso indevido.
- Segurança reforçada: Muitos aprimoramentos de segurança são fornecidos com o corretor, sem a necessidade de atualizar a lógica do aplicativo.
- Suporte aprimorado a recursos: Com a ajuda do corretor, os desenvolvedores podem acessar recursos avançados de sistema operacional e serviço.
- Integração de sistemas: Aplicativos que usam o plug-and-play do broker com o seletor de contas integrado, permitindo que o usuário escolha rapidamente uma conta existente em vez de reinserir as mesmas credenciais repetidamente.
- Proteção de token: Garante que os tokens de atualização estejam vinculados ao dispositivo e permite que os aplicativos adquiram tokens de acesso vinculado ao dispositivo. Consulte Proteção de tokens.
Windows fornece um corretor de autenticação chamado Gestor de Contas Web (WAM). O WAM permite que fornecedores de identidade como o Microsoft Entra ID se liguem nativamente ao sistema operativo e forneçam serviços de login seguros às aplicações. A autenticação intermediada habilita o aplicativo para todas as operações permitidas pelas credenciais de login interativas.
Há suporte para contas pessoais da Microsoft e contas corporativas ou de estudante. Nas versões Windows suportadas, a interface padrão baseada no navegador é substituída por uma autenticação mais suave, semelhante às aplicações Windows integradas.
Configurar o aplicativo para autenticação intermediada
Para habilitar a autenticação intermediada em seu aplicativo, siga estas etapas:
No portal Azure, navegue até Microsoft Entra ID e selecione App registrations no menu esquerdo.
Selecione o registo para a sua aplicação e, em seguida, selecione Autenticação.
Adicione o URI de redirecionamento apropriado ao registro do seu aplicativo por meio de uma configuração de plataforma:
Em Configurações da plataforma, selecione + Adicionar uma plataforma.
Em Configurar plataformas, selecione o bloco para seu tipo de aplicativo (plataforma) para definir suas configurações, como aplicativos móveis e de desktop.
Em URIs de redirecionamento personalizados, insira o seguinte URI de redirecionamento:
ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}Substitua
{your_client_id}pelo ID da Aplicação (cliente) no painel de Visão Geral do registo da aplicação.Selecione Configurar.
Para saber mais, consulte Adicionar um URI de redirecionamento a um registro de aplicativo.
De volta ao painel Autenticação , em Configurações avançadas, selecione Sim para Permitir fluxos de clientes públicos.
Selecione Guardar para aplicar as alterações.
Para autorizar a aplicação para recursos específicos, navegue até ao recurso em questão, selecione Permissões da API e ative Microsoft Graph e outros recursos aos quais pretende aceder.
Importante
Também tem de ser o administrador do seu inquilino para dar o seu consentimento à sua aplicação quando iniciar sessão pela primeira vez.
Atribuir funções
Para executar o código da sua aplicação com sucesso com autenticação intermediada, conceda permissões à sua conta de utilizador usando o controlo de acesso baseado em funções (RBAC) do Azure. Atribua um papel apropriado à tua conta de utilizador para o serviço Azure relevante. Por exemplo:
- Azure Blob Storage: Atribuir o papel de Contribuidor de Dados da Conta de Armazenamento.
- Azure Key Vault: Atribuir o papel de Oficial de Segredos do Key Vault.
Se uma aplicação for especificada, deve ter permissões de API definidas para user_impersonation Acesso Azure Storage (passo 6 na secção anterior). Esta permissão da API permite que a aplicação aceda ao armazenamento do Azure em nome do utilizador autenticado, após ser concedido o consentimento durante o início de sessão.
Implementar o código
A biblioteca Azure Identity suporta autenticação intermediária através do uso de InteractiveBrowserCredential. A biblioteca azure-identity-broker fornece InteractiveBrowserBrokerCredentialBuilder, que cria um InteractiveBrowserCredential capaz de usar o corretor de autenticação do sistema. Por exemplo, para usar autenticação intermediada numa aplicação de consola Java para autenticar a Azure Key Vault com o SecretClient, siga estes passos:
Adicione a
azure-identity-brokerdependência ao seupom.xmlficheiro:<dependency> <groupId>com.azure</groupId> <artifactId>azure-identity-broker</artifactId> </dependency>Obtenha uma referência à janela pai sobre a qual o diálogo do seletor de contas deve aparecer. Para exemplos, veja Obter um identificador de janela.
Crie uma instância de
InteractiveBrowserCredentialusandoInteractiveBrowserBrokerCredentialBuilder:import com.azure.identity.InteractiveBrowserCredential; import com.azure.identity.broker.InteractiveBrowserBrokerCredentialBuilder; import com.azure.security.keyvault.secrets.SecretClient; import com.azure.security.keyvault.secrets.SecretClientBuilder; import com.azure.security.keyvault.secrets.models.KeyVaultSecret; long windowHandle = getWindowHandle(); // See examples below InteractiveBrowserCredential credential = new InteractiveBrowserBrokerCredentialBuilder() .setWindowHandle(windowHandle) .useDefaultBrokerAccount() .build(); SecretClient client = new SecretClientBuilder() .vaultUrl("https://<your-key-vault-name>.vault.azure.net") .credential(credential) .buildClient(); KeyVaultSecret secret = client.getSecret("MySecret"); System.out.println("Retrieved secret: " + secret.getName());
No exemplo anterior, useDefaultBrokerAccount opta por aderir a um fluxo de autenticação silencioso e intermediado com a conta padrão do sistema. Desta forma, o utilizador não tem de selecionar repetidamente a mesma conta. Se a autenticação silenciosa e intermediada falhar, recorre InteractiveBrowserCredential à autenticação interativa e intermediada.
A captura de tela a seguir mostra a experiência alternativa de autenticação interativa e intermediada:
Arranja uma maçaneta para a janela
Quando autenticas interativamente usando InteractiveBrowserCredential, precisas de um handle de janela pai para garantir que o diálogo de autenticação aparece corretamente sobre a janela que envia o pedido.
Aplicação JavaFX
Para uma aplicação JavaFX, use JNA (Java Native Access) para obter o identificador da janela.
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.User32;
import com.sun.jna.platform.win32.WinDef;
public long getWindowHandle(Stage stage) {
WinDef.HWND hwnd = User32.INSTANCE.FindWindow(null, stage.getTitle());
return Pointer.nativeValue(hwnd.getPointer());
}
Aplicação de consola
Para uma aplicação de consola no Windows, use o JNA para obter o handler da janela da consola:
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.Kernel32;
import com.sun.jna.platform.win32.WinDef;
WinDef.HWND hwnd = Kernel32.INSTANCE.GetConsoleWindow();
long windowHandle = Pointer.nativeValue(hwnd.getPointer());