Autenticar em seu espaço de trabalho usando uma entidade de serviço

Às vezes, não é adequado usar autenticação interativa ou autenticar como uma conta de usuário. Esses casos podem surgir quando você deseja enviar trabalhos de um serviço Web, outra função de trabalho ou um sistema automatizado. Uma opção é configurar uma identidade gerenciada, outra opção é usar uma entidade de serviço, que este artigo irá explicar.

Pré-requisito: Criar uma entidade de serviço e um segredo de aplicativo

Para autenticar como uma entidade de serviço, você deve primeiro criar uma entidade de serviço.

Para criar uma entidade de serviço, atribuir acesso e gerar uma credencial:

  1. Crie um aplicativo do Azure AD:

    Nota

    Não é necessário definir um URI de redirecionamento.

    1. Uma vez criado, anote o ID do aplicativo (cliente) e o ID do diretório (locatário).
  2. Crie uma credencial para entrar como o aplicativo:

    1. Nas configurações do seu aplicativo, selecione Certificados & segredos.
    2. Em Segredos do Cliente, selecione Criar Novo Segredo.
    3. Forneça uma descrição e duração e, em seguida, selecione Adicionar.
    4. Copie o valor do segredo para um lugar seguro imediatamente - você não será capaz de vê-lo novamente!
  3. Conceda à entidade de serviço permissões para acessar seu espaço de trabalho:

    1. Abra o portal do Azure.
    2. Na barra de pesquisa, insira o nome do grupo de recursos no qual você criou seu espaço de trabalho. Selecione o grupo de recursos quando ele aparecer nos resultados.
    3. Na visão geral do grupo de recursos, selecione Controle de acesso (IAM).
    4. Selecione Adicionar atribuição de função.
    5. Procure e selecione a entidade de serviço.
    6. Atribua a função de Colaborador ou Proprietário .

Nota

Para criar uma atribuição de função no grupo de recursos ou espaço de trabalho, você precisa ser um proprietário ou administrador de acesso de usuário no escopo da atribuição de função. Se você não tiver permissões para criar a Entidade de Serviço em sua assinatura, precisará solicitar permissão ao proprietário ou administrador da assinatura do Azure.

Se você tiver permissões somente no nível do grupo de recursos ou do espaço de trabalho, poderá criar a entidade de serviço na função de Colaborador usando:

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/<SUBSCRIPTION-ID>

Autenticar como entidade de serviço

Opção 1: Usando variáveis de ambiente: A credencial padrão usada na criação do Workspace objeto é a DefaultAzureCredential, que tentará vários tipos de autenticação. O primeiro é o EnvironmentCredential e, com isso, você passa as credenciais da entidade de serviço por meio das seguintes variáveis de ambiente:

  • AZURE_TENANT_ID: ID do locatário da entidade de serviço. Também chamado de ID de 'diretório'.
  • AZURE_CLIENT_ID: ID do cliente da entidade de serviço.
  • AZURE_CLIENT_SECRET: um dos segredos do cliente da entidade de serviço.

Opção 2: Usando o ClientSecretCredential: passe um ClientSecretCredential durante a instanciação do Workspace objeto ou defina a credentials propriedade.

from azure.identity import ClientSecretCredential

tenant_id = os.environ["AZURE_TENANT_ID"]
client_id = os.environ["AZURE_CLIENT_ID"]
client_secret = os.environ["AZURE_CLIENT_SECRET"]
credential = ClientSecretCredential(tenant_id=tenant_id, client_id=client_id, client_secret=client_secret)

workspace.credentials = credential

Nota

O workspace.login() método foi preterido e não é mais necessário. Na primeira vez que houver uma chamada para o serviço, uma autenticação será tentada usando as credenciais passadas no Workspace construtor ou em sua credentials propriedade. Se nenhuma credencial for passada, vários métodos de autenticação serão tentados pelo DefaultAzureCredential.