como dar ao Azure Service Principal os mesmos direitos que o meu próprio usuário?

1

Estou pesquisando o Azure e queria usar um Service Principal ao fazer logon através do Azure CLI em vez de autenticar pelo método de login da web. Eu criei um Service Principal com az ad sp create-for-rbac com o escopo na raiz da minha assinatura e a função 'Owner'. Eu posso fazer o login com sucesso usando o Service Principal, mas quando tento fazer az ad sp list , recebo o erro que eu não tenho privilégios suficientes: azure.graphrbac.models.graph_error.GraphErrorException: Insufficient privileges to complete the operation.

Quando olho para a guia Controle de acesso (IAM) no meu blade de assinatura no portal, posso ver que o Service Principal é Owner e minha própria conta é Owner and Service administrator.

Existe uma maneira de dar ao diretor de serviços exatamente os mesmos direitos que minha própria conta?

    
por Nicolas Mommaerts 29.12.2017 / 10:12

2 respostas

1

Aparentemente, atribuir um SP ao papel de 'Proprietário' não é suficiente. Você tem o papel de "Directory Readers". Isso não é possível usando o CLI ou o Portal do Azure. Você precisa usar a API de gráficos do Azure AD, a maneira mais fácil de fazer isso é usar o link .

Em segundo lugar, você não pode usar o site graphexplorer usando sua própria conta do Azure (no meu caso, eu tinha uma configuração simples do Azure pessoal somente com o administrador), mas você precisa criar um usuário no AD do Azure. Dei-lhe o papel de Administrador Global apenas para ter certeza, não tenho certeza qual seria o papel mínimo para poder usar a API do Graph.

Agora, as etapas para adicionar ao SP a função de Leitores de Diretório são um pouco longas para explicar aqui, eu as encontrei aqui:

Não sei por que isso precisa ser tão complicado e por que isso não pode ser encontrado na documentação.

    
por 03.01.2018 / 22:19
0

Se seu sp tem Owner role, o comando az ad sp list poderia listar seus sps.

Eu sugiro que você feche seu shell atual e reabra um novo shell, usando o seguinte comando para fazer o login da sua assinatura.

az login --service-principal -u <client id> -p <client secret> --tenant <tenant id>
    
por 29.12.2017 / 11:03