ユーザーを一覧表示する

名前空間: microsoft.graph

重要

Microsoft Graph のバージョンの /beta API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 API が v1.0 で使用できるかどうかを確認するには、 バージョン セレクターを使用します。

user オブジェクトの一覧を取得します。

この操作は既定で各ユーザーで頻繁に使用されるプロパティのサブセットのみを返します。 これらの 既定 のプロパティは、「プロパティ」セクションに記載されています。 既定で 返されない プロパティを取得するには、ユーザーに対して GET 操作を実行し、$select OData クエリ オプションでプロパティを指定します。

権限

この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ)
委任 (職場または学校のアカウント) User.ReadBasic.All, User.Read.All, User.ReadWrite.All, Directory.Read.All, Directory.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。
アプリケーション User.Read.All、User.ReadWrite.All、Directory.Read.All、Directory.ReadWrite.All

ゲストユーザーはこの APIを呼び出すことができません。メンバー ユーザーとゲスト ユーザーのアクセス許可に関する詳細については、「Azure Active Directory で既定のユーザー アクセス許可とは?」を参照してください。

HTTP 要求

GET /users

オプションのクエリ パラメーター

このメソッドは、応答をカスタマイズするための $count$expand$filter$orderBy$search$select、および $top OData クエリ パラメーターをサポートします。 $skip はサポートされていません。 既定のページ サイズと最大ページ サイズは、それぞれ 100 と 999 のユーザー オブジェクトです。 クエリの中には、ConsistencyLevel ヘッダーの設定を eventual および $count に使用した場合にのみサポートされるものもあります。 詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。 現在、$count および $search パラメーターは Azure AD B2C テナントでは使用できません。

特定のプロパティは、ユーザー コレクションでは返すことができません。単一のユーザーを取得する場合にのみ、aboutMebirthdayhireDateinterestsmySitepastProjectspreferredNameresponsibilitiesschoolsskillsmailboxSettings の各プロパティがサポートされます。

次のプロパティは、個人用の Microsoft アカウントではサポートされていませんnull: aboutMebirthdayinterestsmySitepastProjectspreferredNameresponsibilitiesschoolsskillsstreetAddress

拡張機能と関連データを取得する

拡張機能の種類 コメント
onPremisesExtensionAttributes 1-15 既定で返されます。 $filter (eq)をサポートしています。
スキーマ拡張機能 $select でのみ返されます。 $filter (eq)をサポートしています。
オープン拡張機能 $expand、つまり、users?$expand=extensions でのみ返されます。
ディレクトリ拡張機能 既定で返されます。 $filter (eq)をサポートしています。

要求ヘッダー

ヘッダー
Authorization Bearer {token} (必須)
ConsistencyLevel 最終的。 このヘッダーと $count は、$search を使用する場合、または $filter の特別な使用をする場合に必要です。 ConsistencyLevel および $count の使用方法の詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。

要求本文

このメソッドには、要求本文を指定しません。

応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文で user オブジェクトのコレクションを返します。

/users コレクションで $select を使用して、ユーザー コレクション内で返すことができないプロパティ(たとえば、リクエスト../users?$select=aboutMe)を取得しようとすると、501 Not Implemented エラーコードが返されます。

例 1: すべてのユーザーを取得する

要求

要求の例を次に示します。

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

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

{
  "value":[
    {
      "displayName":"contoso1",
      "mail":"'contoso1@gmail.com",
      "mailNickname":"contoso1_gmail.com#EXT#",
      "otherMails":["contoso1@gmail.com"],
      "proxyAddresses":["SMTP:contoso1@gmail.com"],
      "userPrincipalName":"contoso1_gmail.com#EXT#@microsoft.onmicrosoft.com"
    }
  ]
}

例 2: サインイン名を使用してユーザー アカウントを取得する

サインイン名 (ローカル アカウントとも呼ばれます) を使用して、ユーザー アカウントを検索します。

注: issuerAssignedId をフィルター処理する場合、 issuerissuerAssignedId の両方を指定する必要があります。 ただし、特定のシナリオでは、issuer 値は無視されます。 ID のフィルター処理の詳細については、「objectIdentity リソースの種類」 を参照してください。

要求

要求の例を次に示します。

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

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

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

例 3: 最終サインイン時刻を含むユーザーを取得する

要求

要求の例を次に示します。signInActivity プロパティの詳細には、Azure AD Premium P1/P2 ライセンスと AuditLog.Read.All アクセス許可が必要です。

注: signInActivity プロパティの取得には 既知の問題があります。

GET https://graph.microsoft.com/beta/users?$select=displayName,userPrincipalName,signInActivity

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(displayName,userPrincipalName,signInActivity)",
  "value": [
    {
      "displayName": "Adele Vance",
      "userPrincipalName": "AdeleV@contoso.com",
      "signInActivity": {
        "lastSignInDateTime": "2021-06-17T16:41:33Z",
        "lastSignInRequestId": "d4d31c40-4c36-4775-ad59-7d1e6a171f00",
        "lastNonInteractiveSignInDateTime": "0001-01-01T00:00:00Z",
        "lastNonInteractiveSignInRequestId": ""
      }
    },
    {
      "displayName": "Alex Wilber",
      "userPrincipalName": "AlexW@contoso.com",
      "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"
      }
    }
  ]
}

例 4: 特定の表示名を持つユーザーの最後のサインイン時刻を一覧表示する

要求

要求の例を次に示します。signInActivity プロパティの詳細には、Azure AD Premium P1/P2 ライセンスと AuditLog.Read.All アクセス許可が必要です。

注: signInActivity プロパティの取得には 既知の問題があります。

GET https://graph.microsoft.com/beta/users?$filter=startswith(displayName,'Eric')&$select=displayName,signInActivity

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

{
  "@odata.context": "https://graph.microsoft.com/beta/users?$filter=startswith(displayName,'Eric')&$select=displayName,signInActivity",
  "value": [
    {
      "displayName": "Eric Solomon",
      "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"
      }
    }
  ]
}

例 5: 特定の時間範囲内のユーザーの最後のサインイン時刻を一覧表示する

要求

要求の例を次に示します。signInActivity プロパティの詳細には、Azure AD Premium P1/P2 ライセンスと AuditLog.Read.All アクセス許可が必要です。

注: signInActivity プロパティの取得には 既知の問題があります。

GET https://graph.microsoft.com/beta/users?filter=signInActivity/lastSignInDateTime le 2021-07-21T00:00:00Z

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

{
  "@odata.context": "https://graph.microsoft.com/beta/users?filter=signInActivity/lastSignInDateTime le 2021-07-21T00:00:00Z",
  "value": [
    {
      "displayName": "Adele Vance",
      "userPrincipalName": "AdeleV@contoso.com",
      "signInActivity": {
        "lastSignInDateTime": "2021-06-17T16:41:33Z",
        "lastSignInRequestId": "d4d31c40-4c36-4775-ad59-7d1e6a171f00",
        "lastNonInteractiveSignInDateTime": "0001-01-01T00:00:00Z",
        "lastNonInteractiveSignInRequestId": ""
      }
    },
    {
      "displayName": "Alex Wilber",
      "userPrincipalName": "AlexW@contoso.com",
      "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"
      }
    }
  ]
}

例 6: ユーザー数のみを取得する

要求

要求の例を次に示します。 この要求では、$count が要求にあるため、ConsistencyLevel ヘッダーを eventual に設定する必要があります。 ConsistencyLevel および $count の使用方法の詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。

注: $countおよび$searchのクエリパラメーターは、現在 Azure ADB2C テナントでは使用できません。

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

応答

応答の例を次に示します。

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

893

例 7: $filter と $top を使用して、「a」で始まる表示名のユーザーを 1 つ取得する (返されたオブジェクトの数も含む)

要求

要求の例を次に示します。 この要求では、$orderBy$filter の両方のクエリ パラメーターがあるため、ConsistencyLevel ヘッダーを eventual および $count=true クエリ文字列に設定することが必要です。 ConsistencyLevel および $count の使用方法の詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。

注: $countおよび$searchのクエリパラメーターは、現在 Azure ADB2C テナントでは使用できません。

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

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

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

例 8: $filter を使用して、返されるオブジェクトの数を含む、"a@contoso.com' で終わるメールを持つすべてのユーザーを取得し、userPrincipalName で注文された結果を取得します。

要求

要求の例を次に示します。 この要求では、$orderBy$filter の両方のクエリ パラメーター、および endsWith 演算子があるため、ConsistencyLevel ヘッダーを eventual および $count=true クエリ文字列に設定することが必要です。 ConsistencyLevel および $count の使用方法の詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。

注: $countおよび$searchのクエリパラメーターは、現在 Azure ADB2C テナントでは使用できません。

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

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$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"
      }
    ]
}

例 9: $search を使用して、表示名に「wa」の文字が含まれるユーザーを取得する (返されたオブジェクトの数も含む)

要求

要求の例を次に示します。 この要求では、$search が要求にあるため、ConsistencyLevel ヘッダーを eventual に設定する必要があります。 ConsistencyLevel および $count の使用方法の詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。

注: $countおよび$searchのクエリパラメーターは、現在 Azure ADB2C テナントでは使用できません。

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

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

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

例 10: $searchを使用して、返されるオブジェクトの数を含む文字 'wa' または文字 'ad' を含む表示名を持つユーザーを取得します。

要求

要求の例を次に示します。 この要求では、$search が要求にあるため、ConsistencyLevel ヘッダーを eventual に設定する必要があります。 ConsistencyLevel および $count の使用方法の詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。

注: $countおよび$searchのクエリパラメーターは、現在 Azure ADB2C テナントでは使用できません。

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

応答

応答の例を次に示します。

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

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

{
  "@odata.context":"https://graph.microsoft.com/beta/$metadata#users",
  "@odata.count":7,
  "value":[
    {
      "displayName":"Oscar Ward",
      "givenName":"Oscar",
      "mail":"oscarward@contoso.com",
      "mailNickname":"oscward",
      "userPrincipalName":"oscarward@contoso.com"
    },
    {
      "displayName":"contosoAdmin1",
      "mail":"'contosoadmin1@gmail.com",
      "mailNickname":"contosoadmin1_gmail.com#EXT#",
      "proxyAddresses":["SMTP:contosoadmin1@gmail.com"],
      "userPrincipalName":"contosoadmin1_gmail.com#EXT#@microsoft.onmicrosoft.com"
    }
  ]
}

例 11: $filter を使用して、特定のライセンスが割り当てられているユーザーを取得します

要求

要求の例を次に示します。 この要求では、$search が要求にあるため、ConsistencyLevel ヘッダーを eventual に設定する必要があります。 ConsistencyLevel および $count の使用方法の詳細については、「Azure AD ディレクトリ オブジェクトの詳細クエリ機能」を参照してください。

注: $countおよび$searchのクエリパラメーターは、現在 Azure ADB2C テナントでは使用できません。

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

応答

応答の例を次に示します。

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

{
  "@odata.context": "https://graph.microsoft.com/beta/$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"
        }
      ]
    }
  ]
}

例 12: すべてのユーザーのスキーマ拡張の値を取得する

この例では、スキーマ拡張の ID は ext55gb1l09_msLearnCourses です。

要求

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

応答

次の応答では、スキーマ拡張プロパティ ext55gb1l09_msLearnCourses が 2 つのユーザー オブジェクトで割り当てられていません。

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

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

注: スキーマ拡張プロパティに $filter を適用して、コレクション内のプロパティが指定した値と一致するオブジェクトを取得することもできます。構文は /users?$filter={schemaPropertyID}/{propertyName} eq 'value' です。たとえば、GET /users?$select=ext55gb1l09_msLearnCourses&$filter=ext55gb1l09_msLearnCourses/courseType eq 'Developer'eq および not 演算子がサポートされています。