2017-02-21 58 views
0

我想授權用戶通過Microsft Graph針對AD組。只有AD組的成員才能訪問該API。哪些Microsoft Graph查詢(API URL)需要執行此授權?或者還有其他選擇嗎?如何授權Microsoft Graph中的AD組中的用戶

如果您對此建議最佳實踐,敬請欣賞。

在此先感謝您的建議和幫助。

最好的問候, 德布

回答

0

如果API使用ASP.NET你可以使用內置的ID連接功能,並在要保護這些API控制器或方法使用常規的[Authorize]屬性。

有一個comprehensive sample

該示例使用常規的OpenID Connect身份驗證,並使用JWT令牌聲明來檢索用戶的組成員資格。如果這些組不能包含在JWT令牌中,則該令牌將包含一個指向您可以檢索它們的鏈接。這在樣本的ClaimHelper.cs文件中處理。

要獲取JWT令牌中的組聲明,請記住在樣本的設置過程中遵循step 3,因爲它們在默認情況下不存在。

您甚至可以將來自AAD的組對象ID放入ASP.NET「角色」中,因此您可以使用[Authorize]屬性,如[Authorize(Roles="217ea9e4-0350-4a2d-b805-d71317fa0245")],其中GUID是需要成員資格的組的objectID。

要實現最後一部分,您需要先將組聲明添加到清單(上述步驟3),然後將TokenValidationParameters添加到OpenIdConnectAuthenticationOptions,您可以在其中定義哪個聲明類型將定義角色(在Startup.Auth的.cs):

new OpenIdConnectAuthenticationOptions 
    { 
     // add this: 
     TokenValidationParameters = new TokenValidationParameters() 
     { 
      RoleClaimType = "groups" 
     }, 
     // end added code 
     ClientId = ConfigHelper.ClientId, 

後者可能不是最好的做法,因爲你需要組的ObjectID在[Authorize]屬性。

+0

謝謝。現在我被困在我提到RoleCliamType =「group」的地方,沒有在StartUp.Auth.cs中找到代碼。 –

+0

示例StartUp.Auth.cs沒有RoleClaimType –

+0

我在代碼片段中將''TokenValidationParameters''屬性添加到''OpenIdConnectAuthenticationOptions'',所以它更清楚。 – RasmusW

相關問題