2017-12-20 13 views
0

テナントには複数のドメインが割り当てられ、すべてのユーザーはテナント内で直接組織されます。すべてのユーザーの一覧を取得するには、単純に求めることができる:Microsoft Graph:ドメイン名でユーザーをフィルタする方法

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

をしかし、私は、ユーザープリンシパル名内で使用されるドメインでリストをフィルタリングしたいと思います。 explanation at MSDNdeveloper documentationを読んだ後は、このようなことはできないようです。

同等かどうかをチェックしたり、文字列が何らかのテキストで始まっているかどうかだけを確認できますが、文字列が特定のもので終わるかどうかを確認することはできません。私が望む

が何かのように、しかしでもない存在:

https://graph.microsoft.com/v1.0/users?$filter=endsWith(userPrincipalName, 'mydomain.com') 
https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq '*@mydomain.com' 
https://graph.microsoft.com/v1.0/users?$filter=userPrincipalName eq '.*@mydomain.com$' 
https://graph.microsoft.com/v1.0/users?$filter=domain eq 'mydomain.com' 

誰もが特定のドメインのユーザーのリストをフィルタリングする方法についてのアイデアを持っていますか?

+0

APIがendswithフィルタの実行を拒否した場合、おそらく唯一の方法はクライアント側のフィルタリングを行うことです。 – juunas

+0

@ juunas:はい、それは私が現在やっていることですが、それを放棄するだけのダースユーザーをダウンロードするのは意味がありません。そして、なぜそれがサポートされていないのか私が本当に理解できないような単純な要件であるようです。 – Oliver

+0

Perfの理由?インデックスは昇順に並べ替えられますか?クエリは非常に高価でしょうか? – juunas

答えて

1

Microsoft Graphは現在endsWithまたはcontainsをサポートしていません。

これは、定期的に検索する予定のものであれば、userのリソースをターゲットにして、ユーザーの電子メールドメインを保持するSchema Extensionを追加できます。

初期集団は作業集中型であるが、時間の経過と共に維持することは、/deltaエンドポイントを介してtracking changes to usersによって管理することができる。定期的に/deltaを取得し、影響を受けるuserリソースのみを更新することができます。

+0

追加のアイデアありがとう。私はすでにスキーマ拡張を調べていて、作成しようとしました。グラフエクスプローラで掘り下げて試したところ、次の文が見つかりました: "また、現在、グラフエクスプローラでスキーマ拡張定義を作成(または管理)できません。定義を作成するには、管理者または所有者のどちらかでなければなりません。拡張定義と作成リクエストを作成するアプリケーションは、そのアプリケーション(グラフエクスプローラにはなり得ません)から来る必要があります。この最後の制約を緩和することができます。あなたは本当にこのことをリラックスさせるべきです。 – Oliver

関連する問題