簡體   English   中英

Azure 通過 Rest API 或 python 模塊(MS Graph)按名稱或 email 地址搜索用戶、組或服務原則?

[英]Azure search for user, groups, or service principle by name or email address via Rest API or python module (MS Graph)?

在 azure 中,將用戶、組或服務負責人添加到角色時,您可以在同一搜索中按名稱和 email 地址進行搜索(下圖)。 當我查看 MS Graph API 時,有針對用戶、組和服務原則的單獨 API(下面的 MS Graph API 文檔鏈接)。 看起來搜索選項不能混合(只是顯示名稱或只是電子郵件)。

有誰知道如何使用 Azure REST API 實現這樣的搜索。我很好奇是否有人知道 Azure 實際在做什么,如果它們是已發布的 rest API 的一部分? 或者,如果一個搜索結合了多個 API 調用,這會令人困惑,因為分頁很難弄清楚從哪個顯示什么......

我正在構建一個應用程序來添加權限,並且我正在嘗試重新創建類似此搜索的功能。

我現在能想到的實現這一目標的唯一方法是向 select 提供一個選項來搜索“組”、“用戶”或“服務原則”。 然后另一個選項 select 通過“電子郵件”搜索或通過“顯示名稱”搜索(但不能同時搜索)。 這看起來更笨重,但技術上還可以……但我寧願像下面的 azure 屏幕截圖那樣做。

https://learn.microsoft.com/en-us/graph/api/user-list?view=graph-rest-1.0&tabs=http

https://learn.microsoft.com/en-us/graph/api/group-list?view=graph-rest-1.0&tabs=http

https://learn.microsoft.com/en-us/graph/api/serviceprincipal-list?view=graph-rest-1.0&tabs=http

Azure 門戶屏幕截圖

Microsoft Graph API 提供批處理功能,您可以將多個請求一起批處理並將它們作為單個請求發送以進行處理。 在您的情況下,在服務器端(圖 API 端)將處理三個請求,但是從您的應用程序您將發送一個請求並獲得一個響應。

您的請求類似於:

{
  "requests": [
    {
      "id": "1",
      "method": "GET",
      "url": "/users?$filter=<your-filter-criteria>"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/groups?$filter=<your-filter-criteria>"
    },
    {
      "id": "3",
      "method": "GET",
      "url": "/servicePrincipals?$filter=<your-filter-criteria>"
    }
  ]
}

您可以在此處了解有關 Microsoft Graph API 中批處理功能的更多信息: https://learn.microsoft.com/en-us/graph/json-batching

所以批處理的答案並不是我想要的,而是我將來可能會使用的非常酷的東西!

由於分頁結果的批處理可能會變得丑陋,因為我想要 30 個總結果(所以我將分頁設置為 10、10、10),那么如果一個給出 10 並且有下一個鏈接,下一個給出 0,最后一個給出 5。我現在有要顯示 15 個結果,但與另一個進行分頁,並且在下一個之后對結果進行排序可能會更早地拋出結果。 這可能很奇怪,我沒有時間仔細考慮。

我剛剛為用戶、組和服務主體做了一個下拉列表。 而且您必須單獨搜索。 不像 MS 在內部做的那樣酷,但它是一致的、可預測的和有效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM