針對應用程式使用角色型存取控制
適用於: 員工租用戶 外部租用戶 (深入了解)
角色型存取控制 (RBAC) 是一個熱門的機制,可在應用程式中強制授權。 當組織使用 RBAC,應用程式開發人員會為應用程式定義角色。 管理員可以接著將角色指派給不同的使用者和群組,以控制可以存取應用程式中內容和功能的人員。
應用程式通常會以安全性權杖中宣告的形式接收使用者角色資訊。 開發人員可針對角色宣告如何轉譯為應用程式權限,彈性地提供自己的實作方式。 此權限解譯可能會牽涉到使用應用程式或相關程式庫平台所提供的中介軟體或其他選項。
應用程式角色
Microsoft Entra 外部 ID 可讓您針對應用程式定義應用程式角色,並將這些角色指派給使用者和群組。 您指派給使用者或群組的角色會定義其對應用程式中資源和作業的存取層級。
當 Microsoft Entra 外部 ID 為已驗證的使用者發出安全性權杖時,它會包含您在安全性權杖的角色宣告中指派給使用者或群組的角色名稱。 應用程式會接收要求中的安全性權杖,然後可以根據角色宣告中的值制定授權決策。
群組
然後,開發人員也可以使用安全性群組在其應用程式中實作 RBAC,其中特定群組中的使用者成員資格會轉譯為其角色成員資格。 當組織使用安全性群組時,會在權杖中包含群組宣告。 群組宣告會指定使用者目前外部租用戶內指派之所有群組的識別碼。
應用程式角色與群組
雖然您可以使用應用程式角色或群組來進行授權,但它們之間的主要差異可能會影響您決定要用於您的案例的項目。
應用程式角色 | 群組 |
---|---|
這些角色專屬應用程式,並在應用程式註冊中定義。 | 其並非應用程式特有,而是外部租用戶特有。 |
無法跨應用程式共用。 | 可用於多個應用程式。 |
移除應用程式的應用程式註冊時,會移除應用程式角色。 | 即使移除應用程式,群組仍保持不變。 |
在宣告中 roles 提供。 |
在 groups 宣告中提供。 |
建立安全性群組
安全性群組會管理使用者和電腦對共用資源的存取。 您可以建立安全性群組,讓所有群組成員具有一組相同的安全性權限。
若要建立安全性群組,請遵循下列步驟:
- 至少以 群組系統管理員身分登入 Microsoft Entra 系統管理中心 。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示 ,從 [目錄 + 訂用帳戶] 功能表切換至您的外部租用戶。
- 瀏覽至 [身分識別] > [群組] > [所有群組]。
- 選取新增群組。
- 在 [群組類型] 下拉式清單中,選取 [安全性]。
- 輸入安全性群組的群組名稱,例如 Contoso_App_Administrators。
- 輸入安全性群組的群組描述,例如 Contoso 應用程式安全性系統管理員。
- 選取 建立。
新的安全性群組會出現在 [所有群組] 清單中。 如果您沒有立即看到,請重新整理頁面。
Microsoft Entra 外部 ID 可以在權杖中包含使用者的群組成員資格資訊,以在應用程式內使用。 您會在將使用者和群組指派給角色一節中了解如何將群組宣告新增至權杖。
宣告應用程式的角色
至少以特殊權限角色管理員身分登入 Microsoft Entra 系統管理中心。
如果您有權存取多個租用戶,請使用頂端功能表中的 [設定] 圖示 ,以從 [目錄 + 訂用帳戶] 功能表切換至您的外部租用戶。
瀏覽至 [身分識別] > [應用程式] > [應用程式註冊]。
選取您要在其中定義應用程式角色的應用程式。
選取 [應用程式角色],然後選取 [建立應用程式角色]。
在 [建立應用程式角色] 窗格中,輸入角色的設定。 下表描述每個設定及其參數。
欄位 描述 範例 顯示名稱 在應用程式指派體驗中顯示的應用程式角色的顯示名稱。 此值可包含空格。 Orders manager
允許的成員類型 指定是否可以將此應用程式角色指派給使用者、應用程式或兩者。 Users/Groups
值 指定應用程式應在權杖中預期的角色宣告值。 該值應與應用程式碼中所參考的字串完全相符。 值不能包含空格。 Orders.Manager
說明 更詳細描述在管理員應用程式指派體驗期間所顯示的應用程式角色。 Manage online orders.
要啟用此應用程式角色嗎? 指定是否啟用應用程式角色。 若要刪除應用程式角色,請取消選取此核取方塊,並先套用變更之後再嘗試刪除作業。 已選取 選取 [套用] 以建立應用程式角色。
將使用者和群組指派給角色
在應用程式中新增應用程式角色之後,系統管理員即可將使用者和群組指派給角色。 透過系統管理中心,或使用 Microsoft Graph 以程式設計方式,即可將使用者和群組指派給角色。 獲指派各種應用程式角色的使用者登入應用程式時,其權杖的 roles
宣告中會有其獲指派的角色。
若要使用 Azure 入口網站將使用者和群組指派給應用程式角色:
- 至少以特殊權限角色管理員身分登入 Microsoft Entra 系統管理中心。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示 ,從 [目錄 + 訂用帳戶] 功能表切換至您的外部租用戶。
- 瀏覽至 [身分識別] > [應用程式] > [企業應用程式]。
- 選取 [所有應用程式],以檢視所有應用程式的清單。 如果您的應用程式未顯示在清單中,請使用 [所有應用程式] 清單頂端的各種篩選來限制清單,或向下捲動清單以找出您的應用程式。
- 選取您想要在其中將使用者或安全性群組指派給角色的應用程式。
- 在 [管理] 下選取 [使用者和群組]。
- 選取 [新增使用者] 以開啟 [新增指派] 窗格。
- 在 [新增指派] 頁面中,選取 [使用者和群組]。 使用者和安全性群組清單隨即顯示。 您可以在清單中選取多個使用者和群組。
- 選取使用者和群組之後,請選擇 [選取]。
- 在 [新增指派] 窗格上,選擇 [選取角色]。 您為應用程式定義的所有角色都會顯示。
- 選取角色,然後選擇 [選取]。
- 選取 [指派],以完成將使用者和群組指派給應用程式的作業。
- 確認您新增的使用者和群組出現在 [使用者和群組] 清單中。
若要測試您的應用程式,請登出並使用您指派角色的使用者再次登入。 檢查安全性權杖,以確定它包含使用者的角色。
將群組宣告新增至安全性權杖
若要在安全性權杖中發出群組成員資格宣告,請遵循下列步驟:
- 至少以應用程式系統管理員 (部分機器翻譯) 的身分登入 Microsoft Entra 系統管理中心。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示 ,從 [目錄 + 訂用帳戶] 功能表切換至您的外部租用戶。
- 瀏覽至 [身分識別] > [應用程式] > [應用程式註冊]。
- 選取您要在其中新增群組宣告的應用程式。
- 在 [管理] 底下,選取 [權杖設定]。
- 選取 [新增群組宣告]。
- 選取要包含在安全性權杖中的群組類型。
- 針對 [依類型自訂權杖屬性],選取 [群組識別碼]。
- 選取 [新增] 以新增群組宣告。
將成員新增至群組
既然您已在應用程式中新增應用程式群組宣告,請將使用者新增至安全性群組。 如果您沒有安全性群組,請建立一個。
- 至少以群組系統管理員的身分登入 Microsoft Entra 系統管理中心。
- 如果您有多個租用戶的存取權,請使用頂端功能表中的 [設定] 圖示 ,從 [目錄 + 訂用帳戶] 功能表切換至您的外部租用戶。
- 瀏覽至 [身分識別] > [群組] > [所有群組]。
- 選取您要管理的群組。
- 選取 [成員]。
- 選取 + 新增成員。
- 捲動清單,或在搜尋方塊中輸入名稱。 您可以選擇多個名稱。 當您就緒時,請選擇 [選取]。
- [群組概觀] 頁面會更新,以顯示已新增至群組的成員數目。
若要測試您的應用程式,請登出,然後使用您新增至安全性群組的使用者再次登入。 檢查安全性權杖,以確定它包含使用者的群組成員資格。
群組和應用程式角色支援
外部租用戶會遵循 Microsoft Entra 使用者和群組管理模型和應用程式指派。 許多核心 Microsoft Entra 功能正階段式導入外部租用戶。
下表顯示目前可用的功能。
功能 | 目前可用? |
---|---|
為資源建立應用程式角色 | 是,透過修改應用程式資訊清單 |
將應用程式角色指派給使用者 | Yes |
將應用程式角色指派給群組 | 是,僅透過 Microsoft Graph |
將應用程式角色指派給應用程式 | 是,透過應用程式權限 |
將使用者指派給應用程式角色 | Yes |
將應用程式指派給應用程式角色 (應用程式權限) | Yes |
將群組新增至應用程式/服務主體 (群組宣告) | 是,僅透過 Microsoft Graph |
透過 Microsoft Entra 系統管理中心建立/更新/刪除客戶 (本機使用者) | Yes |
透過 Microsoft Entra 系統管理中心重設客戶的密碼 (本機使用者) | Yes |
透過 Microsoft Graph 建立/更新/刪除客戶 (本機使用者) | Yes |
透過 Microsoft Graph 重設客戶的密碼 (本機使用者) | 是,只有當服務主體新增至全域管理員角色時 |
透過 Microsoft Entra 系統管理中心建立/更新/刪除安全性群組 | Yes |
透過 Microsoft Graph API 建立/更新/刪除安全性群組 | Yes |
使用 Microsoft Entra 系統管理中心變更安全性群組成員 | Yes |
使用 Microsoft Graph API 變更安全性群組成員 | Yes |
擴大至 50,000 個使用者和 50,000 個群組 | 目前無法使用 |
將 50,000 位使用者新增至至少兩個群組 | 目前無法使用 |