如何使用 Azure Active Directory 图形客户端在 Azure B2C 中查找具有相同用户 name\email 地址的所有用户?

How to find all users with the same User name\email address in Azure B2C using Azure Active Directory Graph Client?

B2C Azure AD 的用户使用与 'someuser@gmail.com' 相同的电子邮件地址。

User name                User type       Source                
someuser@gmail.com       Member          Azure Active Directory
someuser@gmail.com       Member          Microsoft Account
someuser@gmail.com       Member          Facebook

请注意,来源 列有所不同。邮箱是一样的。

现在当我进行这样的搜索时:

GET https://graph.windows.net/myb2ctenant.onmicrosoft.com/users?api-version=1.6&$filter=signInNames/any(x:x/value%20eq%20%27someuser@gmail.com%27)

我只得到一行:来源 = Azure Active Directory 而不是来自外部身份提供者 (IDP) 的其他 2 行。

如何一次性检索与此用户 name\email 地址匹配的 3 行?

一旦我获得这 3 个用户,我想删除它们。

#######编辑#######

来自 Chris Padget 我可以这样获取将 Facebook 作为发行者的用户:

Get-User $filter=userIdentities/any(x:x/issuer%20eq%20%27facebook.com%27)

在摆弄 $filter 选项后,我像这样一次完成它的工作:

Get-User $filter=signInNames/any(x:x/value%20eq%20%27someuser@gmail.com%27)%20or%20otherMails/any(y:y%20eq%20%27someuser@gmail.com%27)

对于外部身份提供者,我们需要检查 otherMails 属性。

#######

注意:需要对邮箱地址进行编码。我刚刚使用 C# 代码和电子邮件地址 someuser+1@gmail.com 测试了这个 $filter,它没有检索用户。那是因为 + 符号。

我们可以使用HttpUtility.UrlEncode(email).

更多信息here