使用 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。
如果您無法使用設定中繼資料文件,則必須分別收集下列值:
- 簽發者 URL (有時顯示為
issuer
) - OAuth 2.0 授權端點 (有時顯示為
authorization_endpoint
) - OAuth 2.0 權杖端點 (有時顯示為
token_endpoint
) - OAuth 2.0 JSON Web 金鑰集文件的 URL (有時顯示為
jwks_uri
)
將提供者資訊新增至應用程式
- 登入 Azure 入口網站,然後瀏覽至應用程式。
- 選取左側功能表中的 [驗證]。 選取 [新增識別提供者]。
- 在 [識別提供者] 下拉式清單中選取 [OpenID Connect]。
- 提供稍早為 OpenID 提供者名稱選取的唯一英數字元名稱。
- 如果您有識別提供者的中繼資料文件 URL,請提供中繼資料 URL 的值。 否則,請選取 [分別提供端點] 選項,並將從識別提供者收集的每個 URL 放在適當的欄位中。
- 在適當欄位中提供先前收集的用戶端識別碼和用戶端祕密。
- 指定用戶端祕密的應用程式設定名稱。 您的用戶端祕密會儲存為應用程式設定,以確保祕密以安全的方式儲存。 如果您想要管理 Azure Key Vault 中的祕密,稍後可以將該設定更新為使用 Key Vault 參考。
- 按下 [新增] 按鈕以完成識別提供者的設定。
注意
OpenID 提供者名稱不能包含類似 “-” 的符號,因為系統以此為基礎而建立 appsetting,且不支援 appsetting。 請改用 "_"。
注意
Azure 需要 “openid”、“profile” 和 “email” 範圍。 請確定您已使用這些範圍,在識別碼提供者中設定應用程式註冊。