Freigeben über


Benutzer auflisten

Namespace: microsoft.graph

Dient zum Abrufen einer Liste von Benutzerobjekten.

Hinweis: Bei dieser Anforderung kann es zu Replikationsverzögerungen für Benutzer kommen, die kürzlich erstellt, aktualisiert oder gelöscht wurden.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Weltweiter Service US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Eine der nachfolgenden Berechtigungen ist erforderlich, um diese API aufrufen zu können. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie unter Berechtigungen.

Berechtigungstyp Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)
Delegiert (Geschäfts-, Schul- oder Unikonto) User.ReadBasic.All, User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt
Anwendung User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All

Gäste können diese API nicht aufrufen. Weitere Informationen zu den Berechtigungen für Mitglieder und Gäste finden Sie unter Was sind die Standardbenutzerberechtigungen in Microsoft Entra ID?

Berechtigungen für bestimmte Szenarien

  • User-Mail.ReadWrite.All ist die Berechtigung mit den geringsten Berechtigungen zum Lesen und Schreiben der otherMails-Eigenschaft ; ermöglicht auch das Lesen einiger bezeichnerbezogener Eigenschaften für das Benutzerobjekt.
  • User-PasswordProfile.ReadWrite.All ist die Berechtigung mit den geringsten Berechtigungen zum Lesen und Schreiben der passwordProfile-Eigenschaft . ermöglicht auch das Lesen einiger bezeichnerbezogener Eigenschaften für das Benutzerobjekt.
  • User-Phone.ReadWrite.All ist die berechtigung mit den geringsten Berechtigungen zum Lesen und Schreiben der Eigenschaften businessPhones und mobilePhone ; ermöglicht auch das Lesen einiger bezeichnerbezogener Eigenschaften für das Benutzerobjekt.
  • User.EnableDisableAccount.All + User.Read.All ist die Am wenigsten privilegierte Kombination von Berechtigungen zum Lesen und Schreiben der accountEnabled-Eigenschaft .

HTTP-Anforderung

GET /users

Optionale Abfrageparameter

Diese Methode unterstützt die OData-Abfrageparameter$count, $expand$orderby$filter, , $search, $selectund $top zum Anpassen der Antwort. $skip wird nicht unterstützt. Sie müssen oder $filter=signInActivity beim Auflisten von Benutzern angeben$select=signInActivity, da die signInActivity-Eigenschaft nicht standardmäßig zurückgegeben wird.

Einige Abfragen werden nur unterstützt, wenn Sie die Kopfzeile ConsistencyLevel verwenden, die auf eventual und $count festgelegt ist. Weitere Informationen finden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte. Die Parameter $count und $search stehen im Azure Active Directory B2C-Mandanten derzeit nicht zur Verfügung.

Standardmäßig wird nur ein begrenzter Satz von Eigenschaften zurückgegeben (businessPhones, displayName, givenName, id, jobTitle,mail, mobilePhone, officeLocation, preferredLanguage, surname, userPrincipalName). Um einen alternativen Eigenschaftensatz zurückgegeben, geben Sie den gewünschten Satz von Benutzereigenschaften mittels des OData-Abfrageparameters $select an. Um zum Beispiel displayName, givenName und postalCode zurückzugeben, fügen Sie Folgendes zur Abfrage hinzu: $select=displayName,givenName,postalCode.

Erweiterungseigenschaften unterstützen auch Abfrageparameter wie folgt:

Erweiterungstyp Kommentare
onPremisesExtensionAttributes 1-15 Wird nur mit $select zurückgegeben. Unterstützt $filter (eq, ne und eq für null-Werte).
Schemaerweiterungen Wird nur mit $select zurückgegeben. Unterstützt $filter (eq, ne und eq für null-Werte).
Offene Erweiterungen Wird nur mit $expand zurückgegeben, d. h. users?$expand=extensions.
Verzeichniserweiterungen Wird nur mit $select zurückgegeben. Unterstützt $filter (eq, ne und eq für null-Werte).

Bestimmte Eigenschaften können innerhalb einer Benutzersammlung nicht zurückgegeben werden. Die folgenden Eigenschaften werden nur beim Abrufen eines einzelnen Benutzers unterstützt: aboutMe, birthday, hireDate, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, mailboxSettings.

Die folgenden Eigenschaften werden in persönlichen Microsoft-Konten nicht unterstützt und sind null: aboutMe, birthday, interests, mySite, pastProjects, preferredName, responsibilities, schools, skills, streetAddress.

Anforderungsheader

Kopfzeile Wert
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung.
ConsistencyLevel schließlich. Diese Kopfzeile und $count sind erforderlich, wenn $search verwendet wird oder wenn $filter verwendet wird. Weitere Informationen zur Verwendung von ConsistencyLevel und $countfinden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

Anforderungstext

Geben Sie keinen Anforderungstext für diese Methode an.

Antwort

Wenn die Methode erfolgreich verläuft, werden der Antwortcode 200 OK und eine Sammlung von user-Objekten im Antworttext zurückgegeben. Wenn eine umfangreiche Benutzerauflistung zurückgegeben wird, können Sie das Paging in Ihrer App verwenden.

Wenn Sie versuchen, für die /users Auflistung zu verwenden$select, um Eigenschaften abzurufen, die innerhalb einer Benutzersammlung nicht zurückgegeben werden können (z. B. die Anforderung ../users?$select=aboutMe), wird ein 501 Not Implemented Fehlercode zurückgegeben.

Beispiele

Beispiel 1: Alle Benutzenden abrufen

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

GET https://graph.microsoft.com/v1.0/users

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
    "value": [
        {
            "businessPhones": [],
            "displayName": "Conf Room Adams",
            "givenName": null,
            "jobTitle": null,
            "mail": "Adams@contoso.com",
            "mobilePhone": null,
            "officeLocation": null,
            "preferredLanguage": null,
            "surname": null,
            "userPrincipalName": "Adams@contoso.com",
            "id": "6ea91a8d-e32e-41a1-b7bd-d2d185eed0e0"
        },
        {
            "businessPhones": [
                "425-555-0100"
            ],
            "displayName": "MOD Administrator",
            "givenName": "MOD",
            "jobTitle": null,
            "mail": null,
            "mobilePhone": "425-555-0101",
            "officeLocation": null,
            "preferredLanguage": "en-US",
            "surname": "Administrator",
            "userPrincipalName": "admin@contoso.com",
            "id": "4562bcc8-c436-4f95-b7c0-4f8ce89dca5e"
        }
    ]
}

Beispiel 2: Benutzerkonto mithilfe eines Anmeldenamens abrufen

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

Hinweis: Beim Filtern nach issuerAssignedId müssen Sie issuer und issuerAssignedId angeben. Der Wert für issuer wird jedoch in bestimmten Szenarien ignoriert. Weitere Informationen zum Filtern nach Identitäten finden Sie unter objectIdentity-Ressourcentyp.

GET https://graph.microsoft.com/v1.0/users?$select=displayName,id&$filter=identities/any(c:c/issuerAssignedId eq 'j.smith@yahoo.com' and c/issuer eq 'My B2C tenant')

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
  "value": [
    {
      "displayName": "John Smith",
      "id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
    }
  ]
}

Beispiel 3: Nur die Anzahl der Benutzenden abrufen

Anforderung

Das folgende Beispiel zeigt eine Anfrage. Für diese Anforderung muss die Kopfzeile ConsistencyLevel auf eventual festgelegt werden, da $count in der Anforderung enthalten ist. Weitere Informationen zur Verwendung von ConsistencyLevel und $countfinden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

Hinweis: Die Abfrageparameter $count und $search sind im Azure AD B2C-Mandanten derzeit nicht verfügbar.

GET https://graph.microsoft.com/v1.0/users/$count
ConsistencyLevel: eventual

Antwort

Das folgende Beispiel zeigt die Antwort.

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

893

Beispiel 4: Verwenden Sie $filter und $top, um eine Gruppe mit einem Anzeigenamen abzurufen, der mit 'a' beginnt, einschließlich der Anzahl erhaltener Objekte

Anforderung

Das folgende Beispiel zeigt eine Anfrage. Für diese Anforderung muss die Kopfzeile ConsistencyLevel auf eventual und die $count=true-Abfragezeichenfolge festgelegt werden, da die Anforderung die Abfrageparameter $orderby und $filter aufweist. Weitere Informationen zur Verwendung von ConsistencyLevel und $countfinden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

Hinweis: Die Abfrageparameter $count und $search sind im Azure AD B2C-Mandanten derzeit nicht verfügbar.

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

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.count":1,
  "value":[
    {
      "displayName":"a",
      "mail":"a@contoso.com",
      "mailNickname":"a_contoso.com#EXT#",
      "userPrincipalName":"a_contoso.com#EXT#@contoso.com"
    }
  ]
}

Beispiel 5: Verwenden sie $filter, um alle Benutzer mit einer E-Mail abzurufen, die mit ""a@contoso.com endet, einschließlich der Anzahl der zurückgegebenen Objekte, wobei die Ergebnisse nach userPrincipalName sortiert sind.

Anforderung

Das folgende Beispiel zeigt eine Anfrage. Für diese Anforderung muss die Kopfzeile ConsistencyLevel auf eventual und die $count=true-Abfragezeichenfolge festgelegt werden, da die Anforderung die Abfrageparameter $orderby und $filter aufweist und den Operator endsWith verwendet. Weitere Informationen zur Verwendung von ConsistencyLevel und $countfinden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

Hinweis: Die Abfrageparameter $count und $search sind im Azure AD B2C-Mandanten derzeit nicht verfügbar.

GET https://graph.microsoft.com/v1.0/users?$filter=endswith(mail,'a@contoso.com')&$orderby=userPrincipalName&$count=true
ConsistencyLevel: eventual

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.count": 1,
  "value": [
    {
      "displayName": "Grady Archie",
      "givenName": "Grady",
      "jobTitle": "Designer",
      "mail": "GradyA@contoso.com",
      "userPrincipalName": "GradyA@contoso.com",
      "id": "e8b753b5-4117-464e-9a08-713e1ff266b3"
      }
    ]
}

Beispiel 6: Verwenden Sie $search, um Benutzer mit Anzeigenamen abzurufen, die die Buchstaben „wa“ enthalten, einschließlich der Anzahl zurückgegebener Objekte

Anforderung

Das folgende Beispiel zeigt eine Anfrage. Für diese Anforderung muss die Kopfzeile ConsistencyLevel auf eventual festgelegt werden, da $search in der Anforderung enthalten ist. Weitere Informationen zur Verwendung von ConsistencyLevel und $countfinden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

Hinweis: Die Abfrageparameter $count und $search sind im Azure AD B2C-Mandanten derzeit nicht verfügbar.

GET https://graph.microsoft.com/v1.0/users?$search="displayName:wa"&$orderby=displayName&$count=true
ConsistencyLevel: eventual

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "userPrincipalName":"oscarward@contoso.com"
    }
  ]
}

Beispiel 7: Verwenden sie $search, um Benutzer mit Anzeigenamen abzurufen, welche die Buchstabenkombinationen „wa“ oder „ad“ enthalten einschließlich der Anzahl zurückgegebener Objekte.

Anforderung

Das folgende Beispiel zeigt eine Anfrage. Für diese Anforderung muss die Kopfzeile ConsistencyLevel auf eventual festgelegt werden, da $search in der Anforderung enthalten ist. Weitere Informationen zur Verwendung von ConsistencyLevel und $countfinden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

Hinweis: Die Abfrageparameter $count und $search sind im Azure AD B2C-Mandanten derzeit nicht verfügbar.

GET https://graph.microsoft.com/v1.0/users?$search="displayName:wa" OR "displayName:ad"&$orderbydisplayName&$count=true
ConsistencyLevel: eventual

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
  "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "userPrincipalName":"oscarward@contoso.com"
    },
    {
      "displayName":"contosoAdmin1",
      "givenName":"Contoso Administrator",
      "mail":"'contosoadmin1@fabrikam.com",
      "userPrincipalName":"contosoadmin1_fabrikam.com#EXT#@contoso.com"
    }
  ]
}

Beispiel 8: Abrufen von Gastbenutzern (B2B) von einem bestimmten Mandanten oder einer bestimmten Domäne nach userPrincipalName

Anforderung

Das folgende Beispiel zeigt eine Anfrage. Der UserPrincipalName-Wert für Gastbenutzer (B2B-Zusammenarbeit) enthält immer den Bezeichner "#EXT#". Beispielsweise ist AdeleV@adatum.comder userPrincipalName eines Benutzers in ihrem Basismandanten . Wenn Sie den Benutzer zur Zusammenarbeit in Ihrem Mandanten einladen, contoso.com, lautet dessen userPrincipalName in Ihrem Mandanten "AdeleV_adatum.com#EXT#@contoso.com".

Für diese Anforderung ist der ConsistencyLevel-Header auf eventual und die $count=true Abfragezeichenfolge erforderlich, da die Anforderung den operator endsWith enthält. Weitere Informationen zur Verwendung von ConsistencyLevel und $countfinden Sie unter Erweiterte Abfragefunktionen für Verzeichnisobjekte.

ANMERKUNG: Sie müssen das reservierte Zeichen "#" im UserPrincipalName-Wert in der Anforderungs-URL als "%23" codieren. Weitere Informationen finden Sie unter Codieren von Sonderzeichen.

GET https://graph.microsoft.com/v1.0/users?$select=id,displayName,mail,identities&$filter=endsWith(userPrincipalName,'%23EXT%23@contoso.com')&$count=true
ConsistencyLevel: eventual

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,mail,identities)",
    "@odata.count": 2,
    "value": [
        {
            "id": "39807bd1-3dde-48f3-8165-81ddd4e46de0",
            "displayName": "Adele Vance",
            "mail": "AdeleV@adatum.com",
            "identities": [
                {
                    "signInType": "userPrincipalName",
                    "issuer": "contoso.com",
                    "issuerAssignedId": "AdeleV_adatum.com#EXT#@cntoso.com"
                }
            ]
        }
    ]
}

Beispiel 9: Verwenden von $filter zum Abrufen von Benutzern, denen eine bestimmte Lizenz zugewiesen ist

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

GET https://graph.microsoft.com/v1.0/users?$select=id,mail,assignedLicenses&$filter=assignedLicenses/any(u:u/skuId eq cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46)

Antwort

Das folgende Beispiel zeigt die Antwort.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,mail,assignedLicenses)",
  "value": [
    {
      "id": "cb4954e8-467f-4a6d-a8c8-28b9034fadbc",
      "mail": "admin@contoso.com",
      "assignedLicenses": [
        {
          "disabledPlans": [],
          "skuId": "cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46"
        }
      ]
    },
    {
      "id": "81a133c2-bdf2-4e67-8755-7264366b04ee",
      "mail": "DebraB@contoso.com",
      "assignedLicenses": [
        {
          "disabledPlans": [],
          "skuId": "cbdc14ab-d96c-4c30-b9f4-6ada7cdc1d46"
        }
      ]
    }
  ]
}

Beispiel 10: Abrufen des Werts einer Schemaerweiterung für alle Benutzer

In diesem Beispiel lautet die ID der Schemaerweiterung ext55gb1l09_msLearnCourses.

Anforderung

GET https://graph.microsoft.com/v1.0/users?$select=ext55gb1l09_msLearnCourses

Antwort

In der folgenden Antwort ist die Schemaerweiterungseigenschaft ext55gb1l09_msLearnCourses in zwei der Benutzerobjekte nicht zugewiesen.

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

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(ext55gb1l09_msLearnCourses)",
    "value": [
        {},
        {
            "ext55gb1l09_msLearnCourses": {
                "@odata.type": "#microsoft.graph.ComplexExtensionValue",
                "courseType": "Developer",
                "courseName": "Introduction to Microsoft Graph",
                "courseId": 1
            }
        },
        {}
    ]
}

Hinweis: Sie können auch $filter auf die Schemaerweiterungseigenschaft anwenden, um Objekte abzurufen, bei denen eine Eigenschaft in der Sammlung mit einem angegebenen Wert übereinstimmt. Die Syntax lautet /users?$filter={schemaPropertyID}/{propertyName} eq 'value'. Beispiel: GET /users?$select=ext55gb1l09_msLearnCourses&$filter=ext55gb1l09_msLearnCourses/courseType eq 'Developer'. Die Operatoren eq und not werden unterstützt.

Beispiel 11: Abrufen von Benutzern einschließlich ihrer letzten Anmeldungszeit

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

Hinweis

  • Details für die signInActivity-Eigenschaft erfordern eine Microsoft Entra ID P1- oder P2-Lizenz und die AuditLog.Read.All Berechtigung.
  • Wenn Sie oder $filter=signInActivity beim Auflisten von Benutzern angeben$select=signInActivity, beträgt die maximale Seitengröße für $top 120. Anforderungen mit $top einer Festlegung von mehr als 120 Seiten mit bis zu 120 Benutzern. Die signInActivity-Eigenschaft unterstützt $filter (eq, ne, not, ge, ), leaber nicht mit anderen filterbaren Eigenschaften.
GET https://graph.microsoft.com/v1.0/users?$select=displayName,userPrincipalName,signInActivity

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
  "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(displayName,userPrincipalName,signInActivity)",
  "value": [
    {
      "displayName": "Adele Vance",
      "userPrincipalName": "AdeleV@contoso.com",
      "id": "1aecaf40-dc3a-461f-88a8-d06994e12898",
      "signInActivity": {
        "lastSignInDateTime": "2021-06-17T16:41:33Z",
        "lastSignInRequestId": "d4d31c40-4c36-4775-ad59-7d1e6a171f00",
        "lastNonInteractiveSignInDateTime": "0001-01-01T00:00:00Z",
        "lastNonInteractiveSignInRequestId": "",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    },
    {
      "displayName": "Alex Wilber",
      "userPrincipalName": "AlexW@contoso.com",
      "id": "f0662ee5-84b1-43d6-8338-769cce1bc141",
      "signInActivity": {
        "lastSignInDateTime": "2021-07-29T15:53:27Z",
        "lastSignInRequestId": "f3149ee1-e347-4181-b45b-99a1f82b1c00",
        "lastNonInteractiveSignInDateTime": "2021-07-29T17:53:42Z",
        "lastNonInteractiveSignInRequestId": "868efa6a-b2e9-40e9-9b1c-0aaea5b50200",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    }
  ]
}