分享方式:


註冊Microsoft Entra 應用程式並建立服務主體

在本文中,您將瞭解如何建立可搭配角色型訪問控制 (RBAC) 使用的 Microsoft Entra 應用程式和服務主體。 當您在 Microsoft Entra ID 中註冊新的應用程式時,系統會自動為應用程式註冊建立一個服務主體。 服務主體是應用程式在 Microsoft Entra 租用戶中的身分識別。 對資源的存取受到指派給服務主體的角色的限制,讓您能夠控制可以存取哪些資源以及在哪個層級進行資源存取。 基於安全性的原因,一律建議將服務主體與自動化工具結合使用,而不是允許它們使用使用者身分識別來登入。

此範例適用於一個組織內所使用的企業營運應用程式。 您也可以 使用 Azure PowerShellAzure CLI 來建立服務主體。

重要

請考慮針對您的應用程式的身分識別使用 Azure 資源受控識別,而不是建立服務主體。 如果您的程式碼在支援受控識別的服務上執行,以及存取支援 Microsoft Entra 驗證的資源,則受控識別是較適合您的選項。 若要深入了解 Azure 資源受控識別 (包括目前支援哪些服務),請參閱什麼是 Azure 資源受控識別?

如需應用程式註冊、應用程式對象和服務主體之間關聯性的詳細資訊,請參閱 Entra ID Microsoft 中的應用程式與服務主體物件。

必要條件

若要在您的 Microsoft Entra 租用戶中註冊應用程式,您需要:

  • Microsoft Entra 使用者帳戶。 若您還沒有帳戶,可以免費建立帳戶
  • 足夠的許可權可向您的 Microsoft Entra 租用戶註冊應用程式,並指派給應用程式 Azure 訂用帳戶中的角色。 若要完成這些工作,您需要 Application.ReadWrite.All 許可權。

使用 Microsoft Entra ID 註冊應用程式並建立服務主體

提示

本文中的步驟可能會根據您從開始的入口網站稍有不同。

  1. 至少需以雲端應用程式系統管理員的身分登入 Microsoft Entra 系統管理中心

  2. 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取 [新增註冊]

  3. 為應用程式命名,例如 example-app

  4. 在 [支援的帳戶類型] 底下,選取 [僅在此組織目錄中的帳戶]

  5. 在 [重新導向 URI] 底下,針對您要建立的應用程式類型選取 [Web]。 輸入要將存取權杖傳送至其中的 URI。

  6. 選取註冊

    顯示應用程式註冊頁面的螢幕快照。

指派角色給應用程式

若要存取訂用帳戶中的資源,您必須將角色指派給應用程式。 決定哪個角色為應用程式提供適當的權限。 若要瞭解可用的角色,請參閱 Azure 內建角色

您可以在訂用帳戶、資源群組或資源層級設定範圍。 權限會繼承至較低層級的範圍。

  1. 登入 Azure 入口網站

  2. 選取您想要將應用程式指派到其中的範圍層級。 例如,若要在訂用帳戶範圍指派角色,請搜尋並選取 [訂用帳戶]。 如果您沒有看到您要尋找的訂用帳戶,請選取 [全域訂用帳戶篩選]。 請確定已針對租用戶選取您想要的訂用帳戶。

  3. 選取 [存取控制 (IAM)]。

  4. 選取 [新增],然後選取 [新增角色指派]

  5. 在 [角色] 索引標籤中,從清單中選取您希望指派給應用程式的角色。

  6. 選取 [下一步]。

  7. 在 [ 成員] 索引標籤上,針對 [指派存取權],選取 [ 使用者]、[群組] 或服務主體

  8. 選取 [選取成員]。 根據預設,Microsoft Entra 應用程式不會顯示在可用的選項中。 若要尋找您的應用程式,請依名稱搜尋它。

  9. 選取 [選取] 按鈕,然後選取 [檢閱 + 指派]

    顯示角色指派的螢幕快照,並醒目提示如何新增成員。

您的服務主體已設定。 您可以開始用它來執行您的指令碼或應用程式。 若要管理服務主體(許可權、使用者同意的許可權、查看哪些使用者已同意、檢閱許可權、請參閱登入資訊等等),請移至 企業應用程式

下一節說明如何以程序設計方式登入時取得所需的值。

登入應用程式

以程式設計方式登入時,您會在驗證要求中傳遞目錄(租使用者)標識碼和應用程式(用戶端)標識碼。 您也需要憑證或驗證金鑰。 若要取得目錄識別碼和應用程式識別碼:

  1. 開啟 Microsoft Entra 系統管理中心首頁
  2. 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
  3. 在應用程式的 [概觀] 頁面上,複製目錄 (租用戶) 識別碼值,並將其儲存在您的應用程式的程式碼中。
  4. 複製應用程式 (用戶端) 識別碼,並將其儲存在您的應用程式的程式碼中。

設定驗證

有兩種驗證類型可用於服務主體:密碼式驗證 (應用程式密碼) 和憑證式驗證。 建議您使用證書頒發機構單位簽發的受信任憑證,但您也可以建立應用程式秘密,或建立自我簽署憑證進行測試。

若要上傳憑證檔案:

  1. 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
  2. 選取 [憑證和秘密]
  3. 選取 [憑證],然後選取 [上傳憑證],接著選取要上傳的憑證檔案。
  4. 選取 [新增]。 上傳憑證之後,會顯示指紋、開始日期和到期值。

在應用程式註冊入口網站中註冊憑證與您的應用程式之後,請啟用 [機密用戶端應用程式的程式碼] 以使用該憑證。

選項 2:僅測試:建立和上傳自我簽署憑證

您可以選擇性地針對僅限測試的目的建立自我簽署憑證。 若要建立自我簽署憑證,請開啟 Windows PowerShell,並搭配下列參數執行 New-SelfSignedCertificate,以在電腦上的使用者憑證存放區中建立憑證:

$cert=New-SelfSignedCertificate -Subject "CN=DaemonConsoleCert" -CertStoreLocation "Cert:\CurrentUser\My"  -KeyExportPolicy Exportable -KeySpec Signature

使用可從 [Windows 控制台] 存取的管理使用者憑證 MMC 嵌入式管理單元,將此憑證匯出成檔案。

  1. 從 [開始] 功能表選取 [執行],然後輸入 certmgr.msc。 隨即出現目前使用者的憑證管理員工具。
  2. 若要檢視憑證,請在 左窗格中的 [憑證 - 目前使用者 ] 底下,展開 [個人 ] 目錄。
  3. 以滑鼠右鍵按下您所建立的憑證,選取 [所有工作匯出>]。
  4. 照著 [憑證匯出精靈] 執行。

若要上傳憑證:

  1. 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
  2. 選取 [憑證和秘密]
  3. 選取 [ 憑證],然後選取 [上傳憑證 ],然後選取憑證(您導出的現有憑證或自我簽署憑證)。
  4. 選取 [新增]。

在應用程式註冊入口網站中註冊憑證與您的應用程式之後,請啟用 [機密用戶端應用程式的程式碼] 以使用該憑證。

選項 3:建立新的用戶端秘密

如果您選擇不使用憑證,您可以建立新的用戶端秘密。

  1. 瀏覽至 [身分識別]>[應用程式]>[應用程式註冊],然後選取您的應用程式。
  2. 選取 [憑證和秘密]
  3. 選取 [客戶端密碼],然後選取 [ 新增客戶端密碼]。
  4. 提供該秘密的描述,以及持續時間。
  5. 選取 [新增]。

儲存用戶端秘密之後,就會顯示用戶端秘密的值。 這隻會顯示一次,因此請複製此值,並將它儲存在應用程式可以擷取的位置,通常您的應用程式會保留如 clientId、或 authority 原始程式碼中的值。 您將提供此秘密值以及應用程式的用戶端識別碼,以應用程式的身分登入。

顯示客戶端密碼值的螢幕快照。

對資源設定存取原則

您可能需要對您的應用程式需要存取的資源設定額外的權限。 例如,您也必須 更新密鑰保存庫的存取原則 ,讓您的應用程式能夠存取密鑰、秘密或憑證。

若要設定存取原則:

  1. 登入 Azure 入口網站

  2. 選取您的金鑰保存庫,然後選取 [存取原則]

  3. 選取 [新增存取原則],然後選取您要授與您的應用程式的金鑰、秘密和憑證權限。 選取您先前所建立的服務主體。

  4. 選取 [新增 ] 以新增存取原則,然後選取 [ 儲存]。

    新增存取原則