Partilhar via


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.

  1. Entre no Centro de administração do Microsoft Entra.

  2. Expanda o menu >Identidade selecione Aplicativos>Registros de aplicativo>Novo registro.

  3. 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.
  4. 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.

    Captura de tela da ID do aplicativo do novo registro do aplicativo

  5. Em Gerenciar, selecione Permissões de API. Escolha Adicionar uma permissão.

  6. Selecione Microsoft Graph e permissões de aplicativo. Adicione User.Read.All e Group.Read.All e selecione Adicionar permissões.

  7. 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.

  8. 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 ....

    Uma captura de tela das permissões configuradas com o consentimento do administrador concedido

  9. 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