Métodos adicionais para autenticar recursos do Azure a partir de aplicativos Python

Este artigo lista métodos adicionais que os aplicativos podem usar para autenticar recursos do Azure. Os métodos neste artigo são menos comumente usados; quando possível, recomendamos que você use um dos métodos descritos na autenticação de aplicativos Python no Azure usando a visão geral do SDK do Azure.

Autenticação interativa do navegador

Este método autentica interativamente um aplicativo através de InteractiveBrowserCredential ao recolher credenciais de utilizador no sistema por defeito.

A autenticação interativa do navegador habilita o aplicativo para todas as operações permitidas pelas credenciais de entrada interativas. Como resultado, se você for o proprietário ou administrador de sua assinatura, seu código terá acesso inerente à maioria dos recursos dessa assinatura sem precisar atribuir permissões específicas. Por esse motivo, o uso da autenticação interativa do navegador é desencorajado para qualquer coisa que não seja experimentação.

Habilitar aplicativos para autenticação interativa do navegador

Execute as etapas a seguir para permitir que o aplicativo se autentique por meio do fluxo interativo do navegador. Essas etapas também funcionam para a autenticação de código de dispositivo descrita mais tarde. Seguir este processo é necessário apenas se usar InteractiveBrowserCredential no seu código.

  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. Em Configurações avançadas, selecione Sim para Permitir fluxos de clientes públicos.

  4. Selecione Guardar para aplicar as alterações.

  5. 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. O Microsoft Graph está habilitado por padrão.

    Importante

    Também tem de ser o administrador do seu locatário para dar consentimento na sua aplicação quando iniciar sessão pela primeira vez.

Se não for possível configurar a opção de fluxo de código do dispositivo no Ative Directory, talvez seja necessário que seu aplicativo seja multilocatário. Para fazer essa alteração, navegue até o painel Autenticação , selecione Contas em qualquer diretório organizacional (em Tipos de conta suportados) e selecione Sim para Permitir fluxos de clientes públicos.

Exemplo usando InteractiveBrowserCredential

O exemplo a seguir demonstra o uso de um InteractiveBrowserCredential para autenticar com o SubscriptionClient:

# Show Azure subscription information

import os
from azure.identity import InteractiveBrowserCredential
from azure.mgmt.resource import SubscriptionClient

credential = InteractiveBrowserCredential()
subscription_client = SubscriptionClient(credential)

subscription = next(subscription_client.subscriptions.list())
print(subscription.subscription_id)

Para obter um controlo mais exato, como a configuração de URIs de redirecionamento, poderá fornecer argumentos específicos a InteractiveBrowserCredential, como redirect_uri.

Autenticação de código de dispositivo

Esse método autentica interativamente um usuário em dispositivos com interface do usuário limitada (normalmente dispositivos sem teclado):

  1. Quando o aplicativo tenta autenticar, a credencial solicita ao usuário uma URL e um código de autenticação.
  2. O usuário visita o URL em um dispositivo separado habilitado para navegador (um computador, smartphone, etc.) e insere o código.
  3. O usuário segue um processo de autenticação normal no navegador.
  4. Após a autenticação bem-sucedida, o aplicativo é autenticado no dispositivo.

Para obter mais informações, consulte Plataforma de identidade da Microsoft e o fluxo de concessão de autorização de dispositivo OAuth 2.0.

A autenticação de código de dispositivo em um ambiente de desenvolvimento habilita o aplicativo para todas as operações permitidas pelas credenciais de entrada interativas. Como resultado, se você for o proprietário ou administrador de sua assinatura, seu código terá acesso inerente à maioria dos recursos dessa assinatura sem precisar atribuir permissões específicas. No entanto, você pode usar esse método com uma ID de cliente específica, em vez do padrão, para o qual você pode atribuir permissões específicas.