我可以在Active Directory用戶進行身份驗證,但我需要知道我們可以在組認證一個特定的用戶,如果我們有多個組。 基本上我重定向到http://[mydirectory].onmicrosoft.com和驗證用戶,但我需要知道我們是否有機制來驗證從特定組中的用戶,這樣我可以根據用來接入。我們可以驗證特定組的用戶在Active Directory中
回答
假設這是天青 AD(而不是本地的Windows Server AD),那麼你有三種選擇來限制通過組訪問應用程序。
選項1:要求用戶/組分配到應用
這是一個不需要在應用程序中添加授權邏輯的唯一選擇。
在配置中的經典Azure的門戶應用程序,您可以設置應用程序需要用戶分配:
然後,在「用戶和組」該應用程序,您可以選擇個人用戶或組應該有權訪問應用程序。
這裏要考慮的最重要的事情是,這隻適用於直接組的成員,而不是嵌套成員。
選項2:要求組織聲稱
此選項可以讓你請求後,用戶已簽訂了含有組列表中的用戶是其成員的令牌返回給應用程序。這包括他們是傳遞成員(即嵌套組)的組。
從經典Azure的門戶應用程序的配置頁面,你可以下載和上傳應用程序的清單JSON文件。在清單中,找到"groupMembershipClaims"
屬性,並將其設置爲"All"
或"SecurityGroup"
(後者將排除分發列表)。
設置此設置後,用戶登錄後,得到的令牌將有一個groups
聲明,其中包含該用戶所屬的組對象ID的列表。然後,您的應用程序可以使用這些聲明來決定用戶是否應該訪問。
Dushyant吉爾進入小組聲稱在細節在他的博客文章:http://www.dushyantgill.com/blog/2014/12/10/authorization-cloud-applications-using-ad-groups/
重要的考慮在這裏是有是可以返回組數的限制。如果用戶是此限制的更多組的成員,則會發出「超額」聲明,並且您的應用程序需要進行Azure AD Graph API調用以獲取完整列表。 (這也是在Dushyant的博客中。)
選項3:使用的Microsoft Graph API或Azure AD Graph API直接
最後的選擇是簡單地調用微軟圖形API(或在Azure AD圖形API ,它們的行爲幾乎完全相同)來確定登錄用戶是否爲給定組的成員。然後您的應用程序可以做出授權決定。
有可以採取幾種方法(所有這些都是可傳遞的檢查,因此嵌套組被支持):
isMemberOf
來檢查該用戶是否是特定的(單)組的成員。如果單個組應授予您應用的訪問權限,這是最簡單的。checkMemberGroups
檢查用戶是否爲組列表中的任何組的成員。如果不同的組在應用程序中授予不同的角色或權限,這很有用。getMemberGroups
返回用戶所屬組的完整列表。這對於進行授權檢查通常不是特別有用。
- 1. 驗證Active Directory用戶
- 2. Active Directory組驗證性能
- 3. Active Directory可以使用MD5散列密碼驗證用戶
- 4. 針對Active Directory驗證ASP.NET用戶:誰管理用戶和組?
- 5. 如何驗證用戶是否屬於C#.NET中的Active Directory用戶組。
- 6. 如何在asp.net中使用Active Directory組進行身份驗證?
- 7. 使用用戶名使用UnboundID驗證Active Directory用戶
- 8. 是否可以使用過期密碼來驗證Active Directory用戶?
- 9. asp.net中的Azure Active Directory身份驗證
- 10. 驗證C#中遠程Active Directory的用戶
- 11. 獲取Active Directory中的用戶組
- 12. 閱讀SharePoint中的Active Directory組用戶
- 13. 通過Azure Active Directory驗證客戶端以連接ApiApp
- 14. 我們可以使用UDF在Excel中自定義的驗證
- 15. 非域用戶的Active Directory認證
- 16. 使用Active Directory進行身份驗證
- 17. 尋找什麼組/通訊組列表特定用戶所屬的Active Directory中
- 18. Active Directory用戶組成員組主體
- 19. 對Active Directory中的安全組的Python LDAP身份驗證
- 20. IIS 5.1,Windows身份驗證,Active Directory的
- 21. 如何驗證對Active Directory的訪問?
- 22. WAS-Active Directory驗證失敗的原因
- 23. Intranet與VB.NET的Active Directory身份驗證
- 24. 使用Powershell更新Active Directory中的Active Directory用戶屬性
- 25. 用戶可以在Active Directory中共享文件夾嗎?
- 26. 如何將用戶添加到Active Directory中的特定域
- 27. 使用Active Directory用戶驗證Oracle數據庫
- 28. 如何使用Active Directory驗證當前用戶?
- 29. 使用Active Directory在面向萬維網的網站中驗證用戶身份
- 30. Active Directory LDAP - 鎖定用戶帳戶
我想你是混合身份驗證和授權。一旦用戶成功通過身份驗證(即他們能夠正確登錄),您可以根據用戶的組在應用程序中定義授權規則,以允許/拒絕訪問應用程序的某些部分。 –
你使用圖形API?如果是這樣,你可以使用checkMemberGroups方法。 https://msdn.microsoft.com/library/azure/ad/graph/api/functions-and-actions#checkMemberGroups正如前面的評論中提到的,你試圖實現的是基於角色的「授權」 – Aravind
你有沒有樣本以基於用戶憑證對組進行授權。目前我正在重定向到http:// [mydirectory] .onmicrosoft.com並進行身份驗證。經過身份驗證後,我沒有收到任何令牌,因此我可以使用Active Directory組進行驗證。 –