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

Este artigo lista outros métodos que os aplicativos podem usar para se autenticar nos 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 em Visão geral de autenticação de aplicativos Python no Azure usando o SDK do Azure.

Autenticação interativa do navegador

Esse método autentica interativamente um aplicativo por meio de InteractiveBrowserCredential coletando credenciais de usuário no sistema padrão.

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 da sua assinatura, seu código terá acesso inerente à maioria dos recursos nessa assinatura sem precisar atribuir permissões específicas. Por esse motivo, o uso da autenticação interativa do navegador não é recomendável em todos os casos além de experimentação.

Habilitar aplicativos para autenticação interativa do navegador

Execute as etapas a seguir para permitir que o aplicativo seja autenticado por meio do fluxo interativo do navegador. Essas etapas também funcionam para a autenticação de código de dispositivo descrita posteriormente. Só será necessário seguir esse processo se você estiver usando InteractiveBrowserCredential em seu código.

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

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

  3. Em Configurações avançadas, selecione Sim para Permitir fluxos de cliente público.

  4. Selecione Salvar 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

    Você também deve ser o administrador do seu tenant para dar consentimento ao seu aplicativo ao acessar pela primeira vez.

Se você não conseguir configurar a opção de fluxo de código do dispositivo em seu Active Directory, talvez seu aplicativo precise ser multilocatário. Para fazer essa alteração, navegue até o painel Autenticação, selecione Contas em qualquer diretório organizacional (em Tipos de conta com suporte) e selecione Sim para Permitir fluxos de cliente público.

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 um controle mais exato, como definir URIs de redirecionamento, é possível fornecer argumentos específicos para InteractiveBrowserCredential tais como redirect_uri.

Autenticação de código de dispositivo

Este 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 a URL em um dispositivo separado com navegador (um computador, smartfone 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, confira 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 do 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 da sua assinatura, seu código terá acesso inerente à maioria dos recursos nessa 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 a qual você pode atribuir permissões específicas.