Enumerar servicePrincipals

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Recupera una lista de los objetos servicePrincipal.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Application.Read.All Application.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Application.Read.All Application.ReadWrite.OwnedBy, Application.ReadWrite.All, Directory.Read.All

Nota:

Una entidad de servicio puede recuperar sus propios detalles de aplicación y entidad de servicio sin que se le concedan permisos de aplicación. El permiso Application.ReadWrite.OwnedBy permite a una aplicación llamar GET /applications y GET /servicePrincipals enumerar todas las aplicaciones y entidades de servicio del inquilino. Este ámbito de acceso se ha permitido para el permiso.

Solicitud HTTP

GET /servicePrincipals

Parámetros de consulta opcionales

Este método admite los $countparámetros de consulta , $expand, $filter, $orderby$search, $selecty $top OData para ayudar a personalizar la respuesta. Los tamaños de página predeterminados y máximos son 100 y 999 objetos de entidad de servicio respectivamente. Algunas consultas solo se admiten cuando se usa el encabezado ConsistencyLevel establecido en eventual y $count. Para obtener más información, vea Funcionalidades avanzadas de consulta en objetos de directorio.

De forma predeterminada, esta API no devuelve el valor de la clave en la propiedad keyCredentials al enumerar todas las entidades de servicio. Para recuperar la información de la clave pública en la clave, la propiedad keyCredentials debe especificarse en una consulta $select. Por ejemplo, $select=id,appId,keyCredentials.

El uso de $select para obtener keyCredentials para las entidades de servicio tiene un límite de 150 solicitudes por minuto para cada espacio empresarial.

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
ConsistencyLevel eventual. Este encabezado y $count son necesarios cuando se usa $search,o en un uso específico de $filter. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Cuerpo de la solicitud

No proporcione un cuerpo de solicitud para este método.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y colección de objetos servicePrincipal en el cuerpo de la respuesta.

Ejemplos

Ejemplo 1: Obtener una lista de las entidades de servicio

Solicitud

GET https://graph.microsoft.com/beta/servicePrincipals

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "accountEnabled":true,
      "displayName":"amasf",
      "publisherName":"Contoso",
      "servicePrincipalType":"Application",
      "signInAudience":"AzureADMyOrg"
    }
  ]
}

Ejemplo 2: Obtener solo un recuento de las entidades de servicio

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual porque $count está en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/servicePrincipals/$count
ConsistencyLevel: eventual

Respuesta

En el ejemplo siguiente se muestra la respuesta.

HTTP/1.1 200 OK
Content-type: text/plain

893

Ejemplo 3: Usar $filter y $top para obtener una entidad de servicio cuyo nombre para mostrar comience por "a", junto con un recuento de los objetos devueltos

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual y la cadena de consulta $count=true porque la solicitud tiene los parámetros de consulta $orderby y $filter. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/servicePrincipals?$filter=startswith(displayName, 'a')&$count=true&$top=1&$orderby=displayName
ConsistencyLevel: eventual

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context":"https://graph.microsoft.com/beta/$metadata#servicePrinciples",
  "@odata.count":1,
  "value":[
    {
      "accountEnabled":true,
      "displayName":"a",
      "publisherName":"Contoso",
      "servicePrincipalType":"Application",
      "signInAudience":"AzureADMyOrg"
    }
  ]
}

Ejemplo 4: Usar $search para obtener entidades de servicio con nombres para mostrar que contengan las letras "Team", junto con un recuento de los objetos devueltos

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere que el encabezado ConsistencyLevel se establezca en eventual porque $search y la cadena de consulta $count=true están en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/servicePrincipals?$search="displayName:Team"&$count=true&$select=accountEnabled,displayName,publisherName,servicePrincipalType,signInAudience
ConsistencyLevel: eventual

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(accountEnabled,displayName,publisherName,servicePrincipalType,signInAudience)",
  "@odata.count":1396,
  "value":[
    {
      "accountEnabled":true,
      "displayName":"myContosoTeam",
      "publisherName":"Contoso",
      "servicePrincipalType":"Application",
      "signInAudience":"AzureADMyOrg"
    }
  ]
}

Ejemplo 5: Obtención de entidades de servicio con menos de dos propietarios

Solicitud

En el ejemplo siguiente se muestra la solicitud. Esta solicitud requiere el encabezado ConsistencyLevel establecido en eventual porque $count está en la solicitud. Para obtener más información sobre el uso de ConsistencyLevel y $count, vea Funcionalidades avanzadas de consulta en objetos de directorio.

Nota: Los parámetros de consulta $count y $search actualmente no están disponibles en inquilinos de Azure AD B2C.

GET https://graph.microsoft.com/beta/serviceprincipals?$filter=owners/$count eq 0 or owners/$count eq 1&$count=true&$select=id,displayName
ConsistencyLevel: eventual

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#servicePrincipals(id,displayName)",
    "@odata.count": 3,
    "value": [
        {
            "id": "c4ca17b7-4f3e-4c3a-b884-bfa4100c745d",
            "displayName": "Box"
        },
        {
            "id": "b5966bf3-e895-4f01-ae19-64f434c35b58",
            "displayName": "LinkedIn"
        },
        {
            "id": "ed17bd95-fbef-43eb-abea-9496e46eee42",
            "displayName": "BrowserStack"
        }
    ]
}