Usar a autenticação somente aplicativo com a CLI do Microsoft Graph
A CLI (interface de linha de comando) do Microsoft Graph dá suporte a dois tipos de autenticação: acesso delegado e acesso somente aplicativo. Este tópico descreve a configuração necessária para habilitar o acesso somente ao aplicativo.
Observação
O acesso somente aplicativo concede permissões diretamente a um aplicativo e requer que um administrador consenta com os escopos de permissão necessários. Para obter mais informações, consulte plataforma de identidade da Microsoft e o fluxo de credenciais do cliente OAuth 2.0.
Neste tópico, você configurará o acesso somente ao aplicativo para um script simples para listar usuários e grupos em seu locatário do Microsoft 365.
Configuração
Antes de usar o acesso somente ao aplicativo com o SDK, você precisa do seguinte:
- Um certificado a ser usado como credencial para o aplicativo. Isso pode ser um certificado autoassinado ou um certificado de uma autoridade. Para obter detalhes sobre como criar um certificado autoassinado, consulte a seção Conteúdo relacionado .
- Registre um aplicativo no Microsoft Entra ID, configure-o com os escopos de permissão que seu cenário exige e compartilhe a chave pública do certificado.
Certificado
Você precisará de um certificado X.509 instalado no repositório confiável do usuário no computador em que você executará o script. Você também precisará da chave pública do certificado exportada no formato .cer, .pem ou .crt. Você precisará do valor da entidade de certificado ou da impressão digital.
Registrar o aplicativo
Você pode registrar o aplicativo no centro de administração do Microsoft Entra.
Expanda o menu >Identidade selecione Aplicativos>Registros de aplicativo>Novo registro.
Na página Registrar um aplicativo, defina os valores da seguinte forma.
- Defina Nome para
Graph CLI App-Only
. - Defina tipos de conta com suporte apenas para contas neste diretório organizacional.
- Deixe o URI de redirecionamento em branco.
- Defina Nome para
Selecione Registrar. Na página Somente Aplicativo da CLI do Graph , copie os valores da ID do Aplicativo (cliente) e da ID do Diretório (locatário) e salve-os.
Em Gerenciar, selecione Permissões de API. Escolha Adicionar uma permissão.
Selecione Microsoft Graph e permissões de aplicativo. Adicione User.Read.All e Group.Read.All e selecione Adicionar permissões.
Nas permissões configuradas, remova a permissão delegada User.Read no Microsoft Graph selecionando o ... à direita da permissão e selecionando Remover permissão. Selecione Sim, remova para confirmar.
Selecione o botão Conceder consentimento de administrador para... e selecione Sim para conceder o consentimento do administrador para as permissões de aplicativo configuradas. A coluna Status na tabela Permissões configuradas é alterada para Concedida para ....
Em Gerenciar, selecione Certificados & segredos e selecione a guia Certificados . Selecione o botão Carregar certificado . Navegue até o arquivo de chave pública do certificado e selecione Adicionar.
Autenticar
Você deve ter três informações depois de concluir as etapas de configuração anteriores:
- Assunto de certificado ou impressão digital do certificado carregado no registro do aplicativo Microsoft Entra.
- ID do aplicativo para o registro do aplicativo.
- Sua ID do locatário.
Você usará essas informações para testar a autenticação. Abra o PowerShell e execute o comando a seguir, substituindo os espaços reservados por suas informações.
mgc login --client-id YOUR_APP_ID --tenant-id YOUR_TENANT_ID --certificate-name "YOUR_CERT_SUBJECT" --strategy ClientCertificate
Como alternativa, você pode usar a impressão digital do certificado em vez do assunto.
mgc login --client-id YOUR_APP_ID --tenant-id YOUR_TENANT_ID --certificate-thumb-print "YOUR_CERT_THUMBPRINT" --strategy ClientCertificate
Listar usuários e grupos
Execute o comando a seguir para listar os primeiros 50 usuários em seu locatário, formatados como uma tabela.
mgc users list --select displayName,id --top 50 --output TABLE
O comando retorna os nomes de exibição e as IDs dos usuários em uma tabela.
┌────────────────────────────────────┬──────────────────────────────────────────────────┐
│ displayName │ id │
├────────────────────────────────────┼──────────────────────────────────────────────────┤
│ Conf Room Adams │ 70214bd8-c3eb-4ec4-8c3e-9027b2764c52 │
│ Adele Vance │ 05fb57bf-2653-4396-846d-2f210a91d9cf │
│ MOD Administrator │ 965d30b5-f1ba-4f59-90f0-4d81dfb1aa42 │
│ Alex Wilber │ a36fe267-a437-4d24-b39e-7344774d606c │
│ Allan Deyoung │ 54cebbaa-2c56-47ec-b878-c8ff309746b0 │
└────────────────────────────────────┴──────────────────────────────────────────────────┘
Execute o comando a seguir para listar os primeiros 50 grupos em seu locatário, formatados como JSON.
mgc groups list --select displayName,id --top 50
O comando retorna os nomes de exibição e as IDs dos grupos no formato JSON.
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups(displayName,id)",
"value": [
{
"displayName": "Parents of Contoso",
"id": "1a0405b3-57d1-48fc-ad18-6cb63b350826"
},
{
"displayName": "Digital Initiative Public Relations",
"id": "22cf3814-dbef-4eb0-abe3-759b320b7d76"
},
{
"displayName": "Communications",
"id": "268360c5-ad3a-44c0-b35c-cef473609d9d"
},
{
"displayName": "Paralegals",
"id": "2fb31b50-4c46-4ae9-8177-19347e68ce8e"
},
{
"displayName": "Leadership",
"id": "364fad81-7c37-455d-94bb-7d5a209c42fe"
},
]
}
Sair
Por fim, saia da CLI.
mgc logout