次の方法で共有


ユーザーを一覧表示する

名前空間: microsoft.graph

重要

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

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

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

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この 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 を呼び出すことはできません。 メンバーおよびゲスト ユーザーのアクセス許可の詳細については、「Microsoft Entra IDの既定のユーザーアクセス許可とは」を参照してください。

HTTP 要求

GET /users

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

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

拡張プロパティ では、場合によっては高度なクエリ パラメーターでのみクエリ パラメーターもサポートされます。 詳細については、「拡張機能のプロパティによるサポート$filter」を参照してください。

特定のプロパティは、ユーザー コレクション内では返すことができません。 次のプロパティは、 1 人のユーザーを取得する場合にのみサポートされます。 aboutMebirthdayhireDateinterestsmySitepastProjectspreferredName責任学校スキルmailboxSettings

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

要求ヘッダー

ヘッダー
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。
ConsistencyLevel 最終的。 このヘッダーと $count は、$search を使用する場合、または $filter の特別な使用をする場合に必要です。 ConsistencyLevel$countの使用の詳細については、「ディレクトリ オブジェクトに対する高度なクエリ機能」を参照してください。

要求本文

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

応答

成功した場合、このメソッドは 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#@contoso.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: userPrincipalName によって特定のテナントまたはドメインからゲスト (B2B) ユーザーを取得する

要求

次の例は要求を示しています。 guest (B2B コラボレーション) ユーザーの userPrincipalName 値には、常に "#EXT#" 識別子が含まれます。 たとえば、ホーム テナント内のユーザーの userPrincipalName は です AdeleV@adatum.com。 テナントで共同作業するようにユーザーを招待すると、 contoso.com、テナント内の userPrincipalName は "AdeleV_adatum.com#EXT#@contoso.com" になります。

要求には endsWith 演算子が含まれているため、この要求には ConsistencyLevel ヘッダーが に eventual 設定され $count=true 、クエリ文字列が必要です。 ConsistencyLevel$countの使用の詳細については、「ディレクトリ オブジェクトに対する高度なクエリ機能」を参照してください。

手記: userPrincipalName 値の予約文字 "#" は、要求 URL の "%23" としてエンコードする必要があります。 詳細については、「 特殊文字のエンコード」を参照してください。

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

応答

次の例は応答を示しています。

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

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

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

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

要求

次の例は要求を示しています。

注:

signInActivity プロパティの詳細には、Microsoft Entra ID P1 または P2 ライセンスとアクセス許可がAuditLog.Read.All必要です。

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",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    }
  ]
}

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

要求

次の例は要求を示しています。

注:

signInActivity プロパティの詳細には、Microsoft Entra ID P1 または P2 ライセンスとアクセス許可がAuditLog.Read.All必要です。

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": "",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    },
    {
      "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",
        "lastSuccessfulSignInDateTime": "",
        "lastSuccessfulSignInRequestId": ""
      }
    }
  ]
}

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

要求

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

注:$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の使用の詳細については、「ディレクトリ オブジェクトに対する高度なクエリ機能」を参照してください。

注:$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#@contoso.com"
    }
  ]
}

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

要求

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

注:$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の使用の詳細については、「ディレクトリ オブジェクトに対する高度なクエリ機能」を参照してください。

注:$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の使用の詳細については、「ディレクトリ オブジェクトに対する高度なクエリ機能」を参照してください。

注:$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#@contoso.com"
    }
  ]
}

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

要求

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

注:$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 演算子がサポートされています。

例 13: 値と等しいカスタム セキュリティ属性の割り当てを持つすべてのユーザーを一覧表示する

次の例では、値と等しいカスタム セキュリティ属性の割り当てを持つすべてのユーザーを一覧表示する方法を示します。 この例では、値が Canada に等しい AppCountry という名前のカスタム セキュリティ属性を持つユーザーを取得します。 フィルター値では、大文字と小文字が区別されます。 要求またはヘッダーに ConsistencyLevel=eventual を追加する必要があります。 要求が正しくルーティングされるようにするには、$count=true も含める必要があります。

ユーザー #1

  • 属性セット: Marketing
  • 属性: AppCountry
  • 属性データ型: 文字列のコレクション
  • 属性値: ["India","Canada"]

ユーザー #2

  • 属性セット: Marketing
  • 属性: AppCountry
  • 属性データ型: 文字列のコレクション
  • 属性値: ["Canada","Mexico"]

カスタム セキュリティ属性の割り当てを取得するには、呼び出し元のプリンシパルに属性割り当てリーダーまたは属性割り当て管理者の役割を割り当て、CustomSecAttributeAssignment.ReadWrite.All または CustomSecAttributeAssignment.ReadWrite.All のアクセス許可を付与する必要があります。

カスタム セキュリティ属性の割り当ての例については、「例: Microsoft Graph APIを使用してカスタム セキュリティ属性の割り当てを割り当て、更新、一覧表示、または削除する」を参照してください。

要求

GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry eq 'Canada'
ConsistencyLevel: eventual

応答

HTTP/1.1 200 OK

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,displayName,customSecurityAttributes)",
    "@odata.count": 2,
    "value": [
        {
            "id": "dbaf3778-4f81-4ea0-ac1c-502a293c12ac",
            "displayName": "Jiya",
            "customSecurityAttributes": {
                "Engineering": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "Datacenter@odata.type": "#Collection(String)",
                    "Datacenter": [
                        "India"
                    ]
                },
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "India",
                        "Canada"
                    ],
                    "EmployeeId": "KX19476"
                }
            }
        },
        {
            "id": "6bac433c-48c6-4213-a316-1428de32701b",
            "displayName": "Jana",
            "customSecurityAttributes": {
                "Marketing": {
                    "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
                    "AppCountry@odata.type": "#Collection(String)",
                    "AppCountry": [
                        "Canada",
                        "Mexico"
                    ],
                    "EmployeeId": "GS46982"
                }
            }
        }
    ]
}

例 14: 管理が制限されているすべてのユーザーを一覧表示する

要求

GET https://graph.microsoft.com/beta/users?$filter=isManagementRestricted eq true&$select=displayName,userPrincipalName

応答

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

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

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(displayName,userPrincipalName)",
    "value": [
        {
            "displayName": "Adele",
            "userPrincipalName": "Adele@contoso.com"
        },
        {
            "displayName": "Bob",
            "userPrincipalName": "Bob@contoso.com"
        }
    ]
}