カスタム OpenID Connect プロバイダーを使用して Azure Container Apps で認証と認可を有効にする
この記事では、OpenID Connect の仕様 に準拠したカスタム認証プロバイダーを使用するように Azure Container Apps を構成する方法について説明します。 OpenID Connect (OIDC) は、多くの ID プロバイダー (IDP) によって広く採用されている業界標準です。 準拠した IDP を使用するようにアプリを構成するために、仕様の詳細を理解する必要はありません。
1 つ以上の OIDC プロバイダーを使用するようにアプリを構成できます。 構成でそれぞれに一意の英数字の名前を付ける必要があり、既定のリダイレクト ターゲットとして機能できるのは 1 つだけです。
アプリケーションを ID プロバイダーに登録する
プロバイダーはユーザーに、アプリケーションの詳細を登録することを求めます。 これらの手順の 1 つに、リダイレクト URI の指定が含まれます。 このリダイレクト URI は、<app-url>/.auth/login/<provider-name>/callback
という形式です。 各 ID プロバイダーから、これらの手順を完了するための詳細な方法が提供されているはずです。
Note
プロバイダーによっては、構成と提供する値の使用方法について追加の手順が必要になる場合があります。 たとえば、Apple が提供する秘密キーは、それ自体は OIDC クライアント シークレットとしては使用されませんが、代わりに、それを使用して、アプリ構成で指定したシークレットとして扱われる JWT を作成する必要があります (Apple でサインインのドキュメントの「Creating the Client Secret」 (クライアント シークレットの作成) セクションを参照)。
アプリケーションのクライアント ID とクライアント シークレットを収集する必要があります。
重要
クライアント シークレットは、重要なセキュリティ資格情報です。 このシークレットを他のユーザーと共有したり、クライアント アプリケーション内で配信したりしないでください。
さらに、プロバイダーに関する 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 Key Set ドキュメントの URL (
jwks_uri
として表示されることがあります)
アプリケーションにプロバイダー情報を追加する
Azure portal にサインインし、アプリに移動します。
左側のメニューで [認証] を選択します。 [ID プロバイダーの追加] を選択します。
ID プロバイダーのドロップダウンから [OpenID Connect] を選びます。
前に OpenID プロバイダー名で選んだ一意の英数字名を指定します。
メタデータ ドキュメントの URL が ID プロバイダーから提供されている場合は、 [メタデータ URL] にその値を指定します。 そうでない場合は、 [エンドポイントを個別に指定する] オプションを選んで、ID プロバイダーから集められた各 URL を適切なフィールドに入力します。
前に収集したクライアント ID とクライアント シークレットを適切なフィールドに入力します。
クライアント シークレットのアプリケーション設定名を指定します。 クライアント シークレットは、コンテナー アプリにシークレットとして格納されます。
[追加] ボタンを選んで、ID プロバイダーの設定を完了します。
認証済みユーザーの操作
認証済みユーザーの操作の詳細については、次のガイドを使用してください。