共用方式為


在沒有用戶的情況下提供應用程式身分識別認證

身為開發人員,當您建置非使用者應用程式時,您沒有可以提示使用者輸入使用者名稱和密碼或多重要素驗證 (MFA) 的使用者。 您必須自行提供應用程式的身分識別。 本文說明為何 Azure 上服務(非使用者應用程式)的最佳 零信任 客戶端認證作法是適用於 Azure 資源的受控識別。

服務帳戶的問題

使用「服務帳戶」(建立用戶帳戶並將其用於服務)不是很好的解決方案。 Microsoft Entra ID 沒有服務帳戶概念。 當系統管理員為服務建立使用者帳戶,然後與開發人員共享密碼時,它不安全。 它不可無密碼或具有 MFA。 您最好的解決方案是使用下列其中一個客戶端認證選項,而不是使用使用者帳戶作為服務帳戶。

用戶端認證選項

有四種類型的客戶端認證可以識別應用程式。

秘密金鑰或憑證?

當您在企業中有複雜的秘密管理基礎結構(例如 Azure 金鑰保存庫)時,可以接受秘密密鑰。 不過,在IT專業人員產生秘密密鑰的案例中,秘密密鑰會傳送電子郵件給開發人員,而開發人員接著可能會將其儲存在不安全的位置,例如電子錶格,導致秘密密鑰無法正確保護。

憑證型客戶端認證比秘密金鑰更安全。 憑證管理得更好,因為它們不是秘密本身。 秘密不是傳輸的一部分。 當您使用秘密金鑰時,用戶端會將秘密金鑰的實際值傳送至 Microsoft Entra ID。 當您使用憑證時,憑證的私鑰永遠不會離開裝置。 即使有人攔截、譯碼和取消加密傳輸,秘密仍然安全,因為攔截方沒有私鑰。

最佳做法:使用適用於 Azure 資源的受控識別

當您在 Azure 中開發服務(非使用者應用程式)時,適用於 Azure 資源的受控識別會在 Microsoft Entra ID 中提供自動受控識別。 應用程式可以向任何支援 Microsoft Entra 驗證的服務進行驗證,而不需管理認證。 您不需要管理秘密;您不需要解決失去或處理錯誤的可能性。 無法攔截秘密,因為它們不會透過網路移動。 如果您要在 Azure 上建置服務,Azure 資源的 受控識別是最佳做法。

下一步