註冊 Microsoft Entra 應用程式並建立服務主體
在本文中,您將了解如何建立可搭配角色型存取控制 (RBAC) 使用的 Microsoft Entra 應用程式和服務主體。 當您在 Microsoft Entra ID 中註冊新的應用程式時,系統會自動為應用程式註冊建立一個服務主體。 服務主體是應用程式在 Microsoft Entra 租用戶中的身分識別。 對資源的存取受到指派給服務主體的角色的限制,讓您能夠控制可以存取哪些資源以及在哪個層級進行資源存取。 基於安全性的原因,一律建議將服務主體與自動化工具結合使用,而不是允許它們使用使用者身分識別來登入。
此範例適用於組織內使用的企業營運應用程式。 您也可以使用 Azure PowerShell 或 Azure CLI建立服務主體。
重要
請考慮針對您的應用程式的身分識別使用 Azure 資源受控識別,而不是建立服務主體。 如果您的程式碼在支援受控識別的服務上執行,以及存取支援 Microsoft Entra 驗證的資源,則受控識別是較適合您的選項。 若要深入了解 Azure 資源受控識別 (包括目前支援哪些服務),請參閱什麼是 Azure 資源受控識別?。
如需應用程式註冊、應用程式物件與服務主體間關係的詳細資訊,請參閱 Microsoft Entra ID 中的應用程式和服務主體物件。
必要條件
若要在您的 Microsoft Entra 租用戶中註冊應用程式,您需要:
- Microsoft Entra 使用者帳戶。 若您還沒有帳戶,可以免費建立帳戶。
- 擁有足夠權限即可向 Microsoft Entra 租用戶註冊應用程式,並為應用程式指派 Azure 訂閱中的角色。 若要完成這些工作,您需要
Application.ReadWrite.All
權限。
使用 Microsoft Entra ID 註冊應用程式並建立服務主體
提示
根據您開始使用的入口網站,本文中的步驟可能略有不同。
至少需以雲端應用程式系統管理員的身分登入 Microsoft Entra 系統管理中心。
瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取 [新增註冊]。
舉例來說,將應用程式命名為 example-app。
在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]。
在 [重新導向 URI] 底下,針對您要建立的應用程式類型選取 [Web]。 輸入要將存取權杖傳送至其中的 URI。
選取註冊。
指派角色給應用程式
若要存取訂用帳戶中的資源,您必須將角色指派給應用程式。 決定哪個角色為應用程式提供適當的權限。 若要深入瞭解可用的角色,請參閱 Azure 內建角色。
您可以在訂用帳戶、資源群組或資源層級設定範圍。 權限會繼承至較低層級的範圍。
登入 Azure 入口網站。
選取您想要將應用程式指派到其中的範圍層級。 例如,若要在訂用帳戶範圍指派角色,請搜尋並選取 [訂用帳戶]。 如果您沒有看到您要尋找的訂用帳戶,請選取 [全域訂用帳戶篩選]。 請確定已針對租用戶選取您想要的訂用帳戶。
選取 [存取控制 (IAM)]。
選取 [新增],然後選取 [新增角色指派]。
在 [角色] 索引標籤中,從清單中選取您希望指派給應用程式的角色。
選取 [下一步]。
在 [成員] 索引標籤的 [存取權指派對象] 下,選取 [使用者、群組或服務主體]。
選取 [選取成員]。 根據預設,Microsoft Entra 應用程式不會顯示在可用的選項中。 若要尋找您的應用程式,請依名稱搜尋。
選取 [選取] 按鈕,然後選取 [檢閱 + 指派]。
您的服務主體已設定。 您可以開始用它來執行您的指令碼或應用程式。 若要管理您的服務主體 (權限、使用者同意權限、查看哪些使用者已同意、檢閱權限、查看登入資訊等),請移至 [企業應用程式]。
下節說明如何取得以程式設計方式登入時所需的值。
登入應用程式
以程式設計方式登入時,您會在驗證要求中傳遞目錄 (租用戶) 識別碼和應用程式 (用戶端) 識別碼。 您也需要憑證或驗證金鑰。 若要取得目錄識別碼和應用程式識別碼,請執行下列步驟:
- 開啟 Microsoft Entra 系統管理中心首頁。
- 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
- 在應用程式的 [概觀] 頁面上,複製目錄 (租用戶) 識別碼值,並將其儲存在您的應用程式的程式碼中。
- 複製應用程式 (用戶端) 識別碼,並將其儲存在您的應用程式的程式碼中。
設定驗證
有兩種驗證類型可用於服務主體:密碼式驗證 (應用程式密碼) 和憑證式驗證。 建議您使用由憑證授權單位所核發的受信任憑證,但您也可以建立應用程式秘密或建立自我簽署憑證以進行測試。
選項 1 (建議):上傳由憑證授權單位所核發的受信任憑證
若要上傳憑證檔案:
- 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
- 選取 [憑證和秘密]。
- 選取 [憑證],然後選取 [上傳憑證],接著選取要上傳的憑證檔案。
- 選取 [新增]。 上傳憑證之後,會顯示指紋、開始日期和到期值。
在應用程式註冊入口網站中註冊憑證與您的應用程式之後,請啟用 [機密用戶端應用程式的程式碼] 以使用該憑證。
選項 2:僅供測試:建立並上傳自我簽署憑證
您可以選擇性地針對僅限測試的目的建立自我簽署憑證。 若要建立自我簽署憑證,請開啟 Windows PowerShell,並搭配下列參數執行 New-SelfSignedCertificate,以在電腦上的使用者憑證存放區中建立憑證:
$cert=New-SelfSignedCertificate -Subject "CN=DaemonConsoleCert" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature
使用可從 [Windows 控制台] 存取的管理使用者憑證 MMC 嵌入式管理單元,將此憑證匯出成檔案。
- 從 [開始] 功能表選取 [執行],然後輸入 certmgr.msc。 隨即出現目前使用者的憑證管理員工具。
- 若要查看您的憑證,請在左窗格的 [憑證 - 目前的使用者] 下方,展開 [個人] 目錄。
- 以滑鼠右鍵按一下所建立的憑證,然後選取 [所有工作 -> 匯出]。
- 照著 [憑證匯出精靈] 執行。
若要上傳憑證:
- 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
- 選取 [憑證和秘密]。
- 依序選取 [憑證]、[上傳憑證],然後選取某個憑證 (現有憑證或您匯出的自我簽署憑證)。
- 選取 [新增]。
在應用程式註冊入口網站中註冊憑證與您的應用程式之後,請啟用 [機密用戶端應用程式的程式碼] 以使用該憑證。
選項 3:建立新的用戶端秘密
如果您選擇不使用憑證,您可以建立新的用戶端秘密。
- 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
- 選取 [憑證和秘密]。
- 依序選取 [用戶端密碼] 和 [新增用戶端密碼]。
- 提供該秘密的描述,以及持續時間。
- 選取 [新增]。
儲存用戶端秘密之後,就會顯示用戶端秘密的值。 該值僅顯示一次,因此請複製該值並將其儲存在應用程式中可擷取的位置,通常是您的應用程式在原始程式碼中保存諸如 clientId
或 authority
之類的值的位置。 您將提供此秘密值以及應用程式的用戶端識別碼,以應用程式的身分登入。
對資源設定存取原則
您可能需要對您的應用程式需要存取的資源設定額外的權限。 例如,您也必須更新金鑰保存庫的存取原則,讓應用程式能夠存取金鑰、祕密或憑證。
若要設定存取原則:
登入 Azure 入口網站。
選取您的金鑰保存庫,然後選取 [存取原則]。
選取 [新增存取原則],然後選取您要授與您的應用程式的金鑰、秘密和憑證權限。 選取您先前所建立的服務主體。
選取 [新增] 以新增存取原則,然後選取 [儲存]。
相關內容
- 了解如何使用 Azure PowerShell 或 Azure CLI建立服務主體。
- 若要了解如何指定安全性原則,請參閱 Azure 角色型存取控制 (Azure RBAC)。
- 如需可授與或拒絕使用者的可用動作清單,請參閱 Azure Resource Manager 資源提供者作業。
- 如需使用 Microsoft Graph 來處理應用程式註冊的詳細資訊,請參閱應用程式 API 參考。