Compartilhar via


Autenticar aplicativos JavaScript nos serviços do Azure durante o desenvolvimento local usando a autenticação agenciada

A autenticação agenciada coleta credenciais do usuário usando o agente de autenticação do sistema para autenticar um aplicativo. Um agente de autenticação do sistema é um aplicativo em execução no computador 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 agenciada oferece os seguintes benefícios:

  • Habilita o SSO (Sign-On Único): Permite que os aplicativos simplifiquem a autenticação dos usuários com a ID do Microsoft Entra e protejam os tokens de atualização da ID do Microsoft Entra contra exfiltração e uso indevido.
  • Segurança aprimorada: Muitos aprimoramentos de segurança são fornecidos com o agente, sem a necessidade de atualizar a lógica do aplicativo.
  • Suporte a recursos aprimorados: Com a ajuda do agente, os desenvolvedores podem acessar recursos avançados de sistema operacional e serviço.
  • Integração do sistema: Aplicativos que usam o plug-and-play do agente com o seletor de conta interno, permitindo que o usuário escolha rapidamente uma conta existente em vez de reentrar nas mesmas credenciais várias vez.
  • Proteção de Token: Garante que os tokens de atualização estejam associados ao dispositivo e permita que os aplicativos adquiram tokens de acesso associados ao dispositivo. Consulte a Proteção de Token.

O Windows fornece um agente de autenticação chamado WAM (Gerenciador de Contas Web). O WAM permite que provedores de identidade, como a ID do Microsoft Entra, conectem-se nativamente ao sistema operacional e forneçam serviços de logon seguros aos aplicativos. A autenticação agenciada habilita o aplicativo para todas as operações permitidas pelas credenciais de logon interativas.

Há suporte para contas pessoais e contas corporativas ou de estudante da Microsoft. Em versões do Windows com suporte, a interface do usuário baseada em navegador padrão é substituída por uma experiência de autenticação mais suave, semelhante a aplicativos internos do Windows.

O Linux usa o logon único da Microsoft para Linux como seu agente de autenticação.

Configurar o aplicativo para autenticação agenciada

Para habilitar a autenticação agenciada em seu aplicativo, siga estas etapas:

  1. No portal do Azure, navegue até a ID do Microsoft Entra e selecione registros de aplicativo no menu à esquerda.

  2. Selecione o registro do seu aplicativo e depois Autenticação.

  3. Adicione o URI de redirecionamento apropriado ao registro do aplicativo por meio de uma configuração de plataforma:

    1. Em Configurações da plataforma, selecione + Adicionar uma plataforma.

    2. Em Configurar plataformas, selecione o bloco do seu tipo de aplicativo (plataforma) para definir suas configurações, como aplicativos móveis e de área de trabalho.

    3. Em URIs de redirecionamento personalizado, insira o seguinte URI de redirecionamento para sua plataforma:

      Platform URI de redirecionamento
      Windows 10+ ou WSL ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}
      macOS msauth.com.msauth.unsignedapp://auth para aplicativos sem sinal
      msauth.{bundle_id}://auth para aplicativos assinados
      Linux https://login.microsoftonline.com/common/oauth2/nativeclient

      Substitua {your_client_id} ou {bundle_id} pela ID do aplicativo (cliente) do painel Visão Geral do registro do aplicativo.

    4. Selecione Configurar.

    Para saber mais, consulte Adicionar um URI de redirecionamento a um registro de aplicativo.

  4. De volta ao painel Autenticação, em Configurações avançadas, selecione Sim para Permitir fluxos de clientes públicos.

  5. Selecione Salvar para aplicar as alterações.

  6. Para autorizar o aplicativo para recursos específicos, navegue até o recurso em questão, selecione Permissões de API e habilite o Microsoft Graph e outros recursos que você deseja acessar.

    Importante

    Você também deve ser o administrador do seu locatário para dar consentimento ao seu aplicativo ao fazer logon pela primeira vez.

Atribuir funções

Para executar o código do aplicativo com êxito com a autenticação agenciada, conceda permissões à sua conta de usuário usando o RBAC (controle de acesso baseado em função) do Azure. Atribua uma função apropriada à sua conta de usuário para o serviço relevante do Azure. Por exemplo:

  • Armazenamento de Blobs do Azure: atribuir a função colaborador de dados da conta de armazenamento .
  • Azure Key Vault: atribua a função Key Vault Secrets Officer .

Se um aplicativo for especificado, ele deverá ter permissões de API definidas para user_impersonation no Access Azure Storage (etapa 6 na seção anterior). Essa permissão de API permite que o aplicativo acesse o armazenamento do Azure em nome do usuário conectado depois que o consentimento for concedido durante a entrada.

Implementar o código

A biblioteca de Identidade do Azure dá suporte à autenticação agenciada usando InteractiveBrowserCredential. Por exemplo, para usar InteractiveBrowserCredential em um aplicativo de console Node.js para autenticar no Azure Key Vault com o SecretClient, siga estas etapas:

  1. Instale os pacotes @azure/identity e @azure/identity-broker :

    npm install @azure/identity @azure/identity-broker
    
  2. Crie uma instância do InteractiveBrowserCredential usando opções de agente e registre o plug-in do agente nativo:

    import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
    import { nativeBrokerPlugin } from "@azure/identity-broker";
    
    // Register the native broker plugin for brokered authentication
    useIdentityPlugin(nativeBrokerPlugin);
    
    // Use InteractiveBrowserCredential with broker for interactive or silent authentication
    
    // On Windows: Uses Windows Authentication Manager (WAM) - you'll be prompted to sign in
    // On macOS: Opens a browser window for authentication, since the broker flow isn't currently supported.
    // On Linux: Uses Microsoft Single Sign-on (SSO) for Linux.
    
    const credential = new InteractiveBrowserCredential({
        brokerOptions: {
            enabled: true,
            useDefaultBrokerAccount: true,
            // For Node.js console apps, we need to provide an empty buffer for parentWindowHandle
            parentWindowHandle: new Uint8Array(0),
        },
    });
    

Dica

Exiba o código de aplicativo de exemplo completo no repositório GitHub do SDK do Azure para JavaScript.

No exemplo anterior, a propriedade useDefaultBrokerAccount é definida como true, que opta por um fluxo de autenticação silenciosa e agenciado com a conta do sistema padrão. Dessa forma, o usuário não precisa selecionar repetidamente a mesma conta. Se a autenticação silenciosa e agenciada falhar ou useDefaultBrokerAccount estiver definida como false, InteractiveBrowserCredential retornará à autenticação interativa e agenciada.

A captura de tela a seguir mostra a experiência de autenticação interativa e agenciada alternativa:

Uma captura de tela que mostra a experiência de entrada do Windows ao usar uma instância InteractiveBrowserCredential habilitada para agente para autenticar um usuário.

O vídeo a seguir mostra a experiência de autenticação interativa e agenciada alternativa:

Um gif animado que mostra a experiência de entrada do Linux ao usar uma instância InteractiveBrowserCredential habilitada para agente para autenticar um usuário.