Partilhar via


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

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:

  • Habilita Sign-On único (SSO): Permite que os aplicativos simplifiquem a forma como os usuários se autenticam com o Microsoft Entra ID e protege os tokens de atualização do 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.

O Windows fornece um agente de autenticação chamado Web Account Manager (WAM). O WAM permite que provedores de identidade, como o Microsoft Entra ID, se conectem nativamente ao sistema operacional e forneçam serviços de login seguro para aplicativos. 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 suportadas do Windows, a interface do usuário padrão baseada em navegador é substituída por uma experiência de autenticação mais suave, semelhante aos 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 intermediada

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

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

  2. Selecione o registo para a sua aplicação e, em seguida, selecione Autenticação.

  3. Adicione o URI de redirecionamento apropriado ao registro do seu 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 para seu tipo de aplicativo (plataforma) para definir suas configurações, como aplicativos móveis e de desktop.

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

      Platform Redirecionar URL
      Windows 10+ ou WSL ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}
      macOS msauth.com.msauth.unsignedapp://auth para aplicativos não assinados
      msauth.{bundle_id}://auth para aplicativos assinados
      Linux https://login.microsoftonline.com/common/oauth2/nativeclient

      Substitua {your_client_id} ou {bundle_id} pelo ID do aplicativo (cliente) no 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 Guardar 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

    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 do aplicativo com êxito com a autenticação intermediada, 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: atribua a função de Colaborador de Dados da Conta de Armazenamento .
  • Azure Key Vault: atribua a função de Oficial de Segredos do Cofre de Chaves .

Se um aplicativo for especificado, ele deverá ter permissões de API definidas para user_impersonation Armazenamento do Azure Access (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 após o consentimento ser concedido durante o login.

Implementar o código

A biblioteca de Identidade do Azure dá suporte à autenticação intermediada usando InteractiveBrowserCredential. Por exemplo, para usar InteractiveBrowserCredential em um aplicativo de console do Node.js para autenticar no Cofre da Chave do Azure 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 de InteractiveBrowserCredential usando opções de broker e registre o plug-in nativo do broker:

    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),
        },
    });
    

Sugestão

Exiba o código completo do aplicativo de exemplo 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 intermediado silencioso com a conta padrão do sistema. Desta forma, o utilizador não tem de selecionar repetidamente a mesma conta. Se a autenticação intermediada falhar ou useDefaultBrokerAccount estiver definida como false, InteractiveBrowserCredential retornará à autenticação interativa e intermediada.

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

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 alternativa de autenticação interativa e intermediada:

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