2017-02-09 25 views
2

特定的角色,我希望發展,因爲主要使用Azure的Active Directory中的應用程序,內置於網絡API和在各種Azure工具輕鬆驗證支持。Azure的AD - 爲子項目

我的應用程序將包括一定數量的每一個都包含若干個子項目的項目。通過身份驗證,我正試圖解決現在如何處理Azure AD的授權問題。我預計每個子項目(5-10)都會有不同的角色,每個子項目都會分配給他們。我知道AD支持角色和組。角色是權限集,組是用戶組。雖然我可以爲每個子項目創建一個組,但我預計其中一些角色可能會因每個較大的項目而異,因此我不能只檢查給定用戶是否分配給X組,並且Y角色。更不用說,因爲一個用戶可能被分配到多個組和角色,我沒有看到一種方法來指定該角色僅適用於一個組(因爲用戶可能不打算在該組中扮演角色)所有組)。

所以,我現在看到前進的唯一方法是創建新的角色,每一個我創建了一個新的項目和子項目特定於各一次。然而,隨着這些項目和子項目隨着時間的推移而被創建和刪除,我希望我們將開始達到AD總共支持多少角色(尤其是基於每個用戶)的上限。

在傳統的Active Directory中,我預計這將通過組織單位,可以表示每個項目和每個子項目,每個分配角色和組來處理。但是,根據https://docs.microsoft.com/en-us/azure/active-directory-domain-services/active-directory-ds-admin-guide-create-ou,Azure AD中不支持組織單位,並且不能通過AD Graph API分配它。

使用Azure的AD,有沒有更好的辦法除了在這裏採取的獨特的角色在這一點上每一個子項目?

謝謝!

編輯的詳細資料:

現在Azure的AD支持組和角色。假設我有兩個項目A和B,每個項目都有兩個內部子項目A1和A2以及B1和B2。另外,我有一個用戶,我想要分配給A1上的管理員角色,B2上的高級用戶角色,並且無權訪問B2或A1。

看來,我可以做一個組A1,A2,B1和B2,只是用戶分配到A1和B2組。在後端,我可以指定用戶應該在這些組中,並拒絕任何不是的人訪問。

好的,這樣可以處理組訪問,但是我想分配角色。我可以授予他們管理員和高級用戶,但是他們將在他們所在的兩個組中都具有這兩個角色,因爲我無法在組的上下文中分配角色。

我能看到的唯一方法是爲每個組創建不同的角色,所以現在我有「Admin-A1」,「Power User-A1」,「Admin-A2」,「Power User-A2 「,」Admin-B1「,」Power User-B1「,」Admin-B2「和」Power User-B2「,但這會隨着時間的推移而大大增加我的對象數量(50個項目包含10個子項目有8個角色將開始在那裏工作,但500k是相當高的門檻)。

由於擁有這麼多角色,我預見了一個可維護性問題。由於我無法將角色與組關聯,只能爲其指定顯示名稱和說明(兩者對於項目所有者分配時都是有用的),您如何建議我在後端識別哪些角色與哪個項目關聯(無需保留我自己的guid列表來存儲額外的屬性)?有沒有辦法用角色/組提交自定義屬性?

回答

0

你正在開發什麼樣的角色?你的意思是應用程序的角色?

根據我的理解,我們可以在Azure門戶上爲每個子項目註冊單獨的應用程序,並根據我們註冊的每個應用程序自定義角色,並將角色分配給我們想要的用戶/組。這個角色應該只適用於應用程序的相應項目。

有關基於角色管理應用程序的更多詳細信息,請參閱代碼示例here

,我預計我們會開始打的AD一共多少角色支持上端蓋(尤其是在每個用戶的基礎上)。

對於單個用戶的角色沒有這樣的限制。但是,如果您使用的是免費版Azure AD,則它支持500,000個對象。對象是目錄服務中的一個條目,由其唯一的可分辨名稱表示。下面是供您參考兩個有用的鏈接:

Azure AD service limits and restrictions

Azure Active Directory editions

+0

飛嗨,我更新了原來的問題添加一個應用場景,說明爲什麼它似乎很奇怪,需要這麼多不同的角色,而不是一些它們之間的某種屬性。謝謝! – Xaniff

+0

不知道我理解正確。根據我的理解,你提到的所有子項目似乎都是一個單獨的項目。我們可以在Azure上註冊相應的應用程序,並通過同一租戶中的組或角色管理它們,以便所有項目都可以共享相同的用戶管理。如果我誤解了,請隨時告訴我。 –

+0

它們對代碼示例[active-directory-dotnet-webapp-roleclaims](https://github.com/Azure-Samples/active-directory-dotnet-webapp-roleclaims)和[active-directory-dotnet-webapp -groupclaims](https://github.com/Azure-Samples/active-directory-dotnet-webapp-groupclaims)? –