2017-06-01 88 views
0

我想弄清楚如何使用Azure圖形API從給定用戶名查詢用戶的全名(第一個和最後一個)。我明白我可以用下面的圖形API調用做到這一點...Azure圖形API - 查詢用戶信息

https://graph.windows.net/myorganization/users/{user_id}?api-version 

但是,我不知道我該怎麼去獲得一個訪問令牌與此使用,因爲這個過程將無需用戶調用登錄,這通常是我們如何獲得訪問令牌。

是否有無論如何我可以使用cURL或其他方式將用戶名/密碼傳遞給給定的URL,並以這種方式獲得訪問令牌,因此它是在幕後完成的?

回答

3

有其通過的OAuth 2支撐的兩個主要的認證方法:

  1. Authorization Code Grant
  2. Client Credentials Grant

第一流需要用戶代理存在登錄到所述客戶服務,並在授權令牌。第二種方法不需要用戶登錄,因爲它只使用客戶機密鑰進行身份驗證;這導致應用程序只有令牌

如果您希望創建一個後臺服務來捕獲AAD Graph API中的數據,那麼您可以使用客戶端憑證授權流程完成此操作,該過程不需要用戶在身份驗證流程中的任何時間出現。

您只需將您的應用程序配置爲讓應用程序僅適用於範圍。閱讀here: Permission scopes | Graph API concepts。僅應用程序範圍都需要租戶管理員同意該應用程序才能訪問數據。

最後,我覺得我必須提到在OAuth 2規範中指定了另一個較少使用的流:Resource Owner Password Credentials Grant。此流程指定了知道用戶的用戶名和密碼的客戶端應用程序如何直接傳遞這些參數並代表用戶獲取訪問令牌。但是使用這種流程根本不是好的做法。

資源所有者密碼憑證授予類型適合在 情況下資源所有者具有與 客戶的信任關係,諸如設備操作系統或高特權 應用。授權服務器在啓用此授權類型時應特別注意,並且只有在其他流程不是 可行時才允許授權服務器。

我們在我們的V1端點支持這一點,但不支持我們的新V2端點。你可以閱讀this blog to learn more