使用 OpenID Connect 提供者設定 App Service 或 Azure Functions 應用程式以登入

本文說明如何設定 Azure App Service 或 Azure Functions 應用程式,以使用遵循 OpenID Connect 規格的自訂驗證提供者。 OpenID Connect (OIDC) 是許多識別提供者 (IDP) 所使用的業界標準。 您不需要了解規格的詳細資料,就能將應用程式設定為使用遵循的 IDP。

您可以將應用程式設定為使用一或多個 OIDC 提供者。 每個提供者都必須在設定中指定唯一的英數字元名稱,而且只有一個可以作為預設的重新導向目標。

向識別提供者註冊您的應用程式

您的提供者會要求您向它註冊應用程式的詳細資料。 其中一個步驟牽涉到指定重新導向 URI。 這個重新導向 URI 的格式為 <app-url>/.auth/login/<provider-name>/callback。 每個識別提供者都應該提供更多有關如何完成這些步驟的指示。 <provider-name> 會參考您在 Azure 中提供給 OpenID 提供者名稱的易記名稱。

注意

某些提供者可能需要其設定及如何使用其所提供之值的額外步驟。 例如,Apple 會提供並非作為 OIDC 用戶端密碼使用的私密金鑰,且您必須改為使用該私密金鑰來製作 JWT,其可當作您在應用程式設定中提供的祕密 (請參閱使用 Apple 登入文件的<建立用戶端密碼>一節)

您必須收集應用程式的用戶端識別碼用戶端密碼

重要

用戶端密碼是重要的安全性認證。 請勿與任何人共用此密碼,或在用戶端應用程式中加以散發。

此外,您將需要提供者的 OpenID Connect 中繼資料。 這通常會透過設定中繼資料文件公開,而提供者的簽發者 URL 以 /.well-known/openid-configuration 為字尾。 收集這個設定 URL。

如果您無法使用設定中繼資料文件,則必須分別收集下列值:

將提供者資訊新增至應用程式

  1. 登入 Azure 入口網站,然後瀏覽至應用程式。
  2. 選取左側功能表中的 [驗證]。 選取 [新增識別提供者]
  3. 在 [識別提供者] 下拉式清單中選取 [OpenID Connect]
  4. 提供稍早為 OpenID 提供者名稱選取的唯一英數字元名稱。
  5. 如果您有識別提供者的中繼資料文件 URL,請提供中繼資料 URL 的值。 否則,請選取 [分別提供端點] 選項,並將從識別提供者收集的每個 URL 放在適當的欄位中。
  6. 在適當欄位中提供先前收集的用戶端識別碼用戶端祕密
  7. 指定用戶端祕密的應用程式設定名稱。 您的用戶端祕密會儲存為應用程式設定,以確保祕密以安全的方式儲存。 如果您想要管理 Azure Key Vault 中的祕密,稍後可以將該設定更新為使用 Key Vault 參考
  8. 按下 [新增] 按鈕以完成識別提供者的設定。

注意

OpenID 提供者名稱不能包含類似 “-” 的符號,因為系統以此為基礎而建立 appsetting,且不支援 appsetting。 請改用 "_"。

注意

Azure 需要 “openid”、“profile” 和 “email” 範圍。 請確定您已使用這些範圍,在識別碼提供者中設定應用程式註冊。

後續步驟