OpenID Connect プロバイダーを使用してサインインするように App Service または Azure Functions アプリを構成する
この記事では、OpenID Connect の仕様に準拠したカスタム認証プロバイダーを使用するように Azure App Service または Azure Functions を構成する方法について説明します。 OpenID Connect (OIDC) は、多くの ID プロバイダー (IDP) で使用されている業界標準です。 準拠した IDP を使用するようにアプリを構成するために、仕様の詳細を理解する必要はありません。
1 つ以上の OIDC プロバイダーを使用するようにアプリを構成できます。 構成でそれぞれに一意の英数字の名前を付ける必要があり、既定のリダイレクト ターゲットとして機能できるのは 1 つだけです。
アプリケーションを ID プロバイダーに登録する
プロバイダーにより、アプリケーションの詳細を登録することを求められます。 これらの手順の 1 つに、リダイレクト URI の指定が含まれます。 このリダイレクト URI は、<app-url>/.auth/login/<provider-name>/callback
という形式です。 各 ID プロバイダーから、これらの手順を完了するための詳細な方法が提供されているはずです。 <provider-name>
では、Azure の OpenID プロバイダー名に指定したフレンドリ名が参照されます。
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 とクライアント シークレットを適切なフィールドに入力します。
- クライアント シークレットのアプリケーション設定名を指定します。 クライアント シークレットはアプリ設定として保存され、シークレットは安全な方法で確実に格納されます。 Azure Key Vault でシークレットを管理する場合は、Key Vault 参照を使用するように、この設定を後で更新することができます。
- [追加] ボタンを選んで、ID プロバイダーの設定を完了します。
注意
OpenID プロバイダー名には "-" のようなシンボルを含めることはできません。アプリ設定がこれに基づいて作成されるためであり、これはサポートされていません。 代わりに "_" を使用してください。
注意
Azure には、"openid"、"profile"、"email" のスコープが必要です。 少なくともこれらのスコープを使用して、ID プロバイダーでアプリ登録を構成していることを確認します。