Compartir a través de


Uso de la autenticación de solo aplicación con la CLI de Microsoft Graph

La interfaz de línea de comandos (CLI) de Microsoft Graph admite dos tipos de autenticación: acceso delegado y acceso de solo aplicación. En este tema se describe la configuración necesaria para habilitar el acceso solo a la aplicación.

Nota:

El acceso solo a la aplicación concede permisos directamente a una aplicación y requiere que un administrador dé su consentimiento a los ámbitos de permisos necesarios. Para obtener más información, vea Plataforma de identidad de Microsoft y el flujo de credenciales de cliente de OAuth 2.0.

En este tema, configurará el acceso solo a la aplicación para un script sencillo para enumerar usuarios y grupos en el inquilino de Microsoft 365.

Configuración

Para poder usar el acceso solo a la aplicación con el SDK, necesita lo siguiente:

  • Certificado que se va a usar como credencial para la aplicación. Puede ser un certificado autofirmado o un certificado de una entidad de certificación. Para obtener más información sobre cómo crear un certificado autofirmado, consulte la sección Contenido relacionado .
  • Registre una aplicación en Microsoft Entra ID, configúrela con los ámbitos de permisos que requiere el escenario y comparta la clave pública para el certificado.

Certificado

Necesitará un certificado X.509 instalado en el almacén de confianza del usuario en la máquina donde ejecutará el script. También necesitará la clave pública del certificado exportada en formato .cer, .pem o .crt. Necesitará el valor del firmante del certificado o su huella digital.

Registrar la aplicación

Puede registrar la aplicación en el Centro de administración Microsoft Entra.

  1. Inicie sesión en el Centro de administración Microsoft Entra.

  2. Expanda el menú >Identidad y seleccione Aplicaciones>Registros de aplicaciones>Nuevo registro.

  3. En la página Registrar una aplicación, establezca los valores siguientes.

    • Establezca Nombre como Graph CLI App-Only.
    • Establezca Tipos de cuenta admitidosen Solo cuentas en este directorio organizativo.
    • Deje el URI de redirección en blanco.
  4. Seleccione Registrar. En la página Solo aplicación de la CLI de Graph , copie los valores del identificador de aplicación (cliente) y del identificador de directorio (inquilino) y guárdelos.

    Una captura de pantalla del Id. de aplicación del nuevo registro de la aplicación

  5. En Administrar, seleccione Permisos de API. Elija Agregar un permiso.

  6. Seleccione Microsoft Graph y, después, Permisos de aplicación. Agregue User.Read.All y Group.Read.All y, a continuación, seleccione Agregar permisos.

  7. En Permisos configurados, quite el permiso user.read delegado en Microsoft Graph seleccionando ... a la derecha del permiso y seleccionando Quitar permiso. Seleccione Sí, quite para confirmar.

  8. Seleccione el botón Conceder consentimiento de administrador para... y, a continuación, seleccione para conceder el consentimiento del administrador para los permisos de aplicación configurados. La columna Estado de la tabla Permisos configurados cambia a Concedido para ....

    Captura de pantalla de los permisos configurados con el consentimiento del administrador concedido

  9. En Administrar, seleccione Certificados & secretos y, a continuación, seleccione la pestaña Certificados . Seleccione el botón Cargar certificado . Vaya al archivo de clave pública del certificado y seleccione Agregar.

Autenticar

Debe tener tres fragmentos de información después de completar los pasos de configuración anteriores:

  • Firmante del certificado o huella digital del certificado cargado en el registro de la aplicación Microsoft Entra.
  • Id. de aplicación para el registro de la aplicación.
  • Su identificador de inquilino.

Usará esta información para probar la autenticación. Abra PowerShell y ejecute el siguiente comando, reemplazando los marcadores de posición por su información.

mgc login --client-id YOUR_APP_ID --tenant-id YOUR_TENANT_ID --certificate-name "YOUR_CERT_SUBJECT" --strategy ClientCertificate

Como alternativa, puede usar la huella digital del certificado en lugar del asunto.

mgc login --client-id YOUR_APP_ID --tenant-id YOUR_TENANT_ID --certificate-thumb-print "YOUR_CERT_THUMBPRINT" --strategy ClientCertificate

Enumerar usuarios y grupos

Ejecute el siguiente comando para enumerar los primeros 50 usuarios del inquilino, con formato de tabla.

mgc users list --select displayName,id --top 50 --output TABLE

El comando devuelve los nombres para mostrar de los usuarios y los identificadores de una tabla.

┌────────────────────────────────────┬──────────────────────────────────────────────────┐
│ 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             │
└────────────────────────────────────┴──────────────────────────────────────────────────┘

Ejecute el siguiente comando para enumerar los primeros 50 grupos del inquilino, con formato JSON.

mgc groups list --select displayName,id --top 50

El comando devuelve los nombres para mostrar de los grupos y los identificadores en 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"
    },
  ]
}

Cerrar sesión

Por último, cierre la sesión de la CLI.

mgc logout