この記事では、 OpenID Connect (OIDC) 仕様に準拠するカスタム認証プロバイダーを使用するように Azure App Service または Azure Functions を構成する方法について説明します。 OIDC は、多くの ID プロバイダー (IDP) が使用する業界標準です。 OIDC ID プロバイダーを使用するアプリの仕様の詳細を理解する必要はありません。
1 つ以上の OIDC プロバイダーを使用するようにアプリを構成できます。 各プロバイダーには、構成に一意の英数字名が必要です。 既定のリダイレクト ターゲットとして使用できるプロバイダーは 1 つのみです。
アプリケーションを ID プロバイダーに登録する
プロバイダーはユーザーに、アプリケーションの詳細を登録することを求めます。 これらの手順の 1 つは、フォームが <app-url>/.auth/login/<provider-name>/callback
されたリダイレクト URI の指定です。 各 ID プロバイダーは、手順を完了する方法の詳細な手順を提供する必要があります。
<provider-name>
値は、Azure の OpenID プロバイダー名に付けるフレンドリ名を参照します。
注
プロバイダーによっては、構成と指定した値の使用に追加の手順が必要になる場合があります。 たとえば、Apple は、それ自体が OIDC クライアント シークレットとして使用されていない秘密キーを提供します。 これを使用して、JSON Web トークン (JWT) を作成します。 Web トークンは、アプリ構成で指定するシークレットとして使用します。 詳細については、「 クライアント シークレットの作成」を参照してください。
アプリケーションの クライアント ID と クライアント シークレット を収集する必要があります。 クライアント シークレットは、重要なセキュリティ資格情報です。 このシークレットを他のユーザーと共有したり、クライアント アプリケーションで配布したりしないでください。
注
認証コード フローを使用して対話型ログイン フローを使用してユーザーのアクセス トークンを取得する場合にのみ、クライアント シークレットを構成に提供する必要があります。 そうでない場合は、シークレットの収集は必要ありません。
プロバイダーの OIDC メタデータも必要です。 このメタデータは、多くの場合、のサフィックスが付いたプロバイダーの発行者 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
と表示される場合があります)
アプリケーションにプロバイダー情報を追加する
OpenID Connect プロバイダーのプロバイダー情報を追加するには、次の手順に従います。
Azure portal にサインインし、アプリに移動します。
左側のメニューで、[設定]>[認証] を選択します。 次 に、[ID プロバイダーの追加] を選択します。
ID プロバイダーの場合は、[OpenID Connect] を選択します。
OpenID プロバイダー名には、先ほど選択した一意の英数字名を指定します。
ID プロバイダーのメタデータ ドキュメントの URL がある場合は、その値を メタデータ URL に指定します。
それ以外の場合は、[ エンドポイントを個別に指定する] を選択します。 ID プロバイダーの各 URL を適切なフィールドに配置します。
クライアント ID に対して前に収集した値を指定 します。 クライアント シークレットも収集された場合は、構成プロセスの一部として指定します。
クライアント シークレットのアプリケーション設定名を指定します。 クライアント シークレットは、シークレットが安全な方法で格納されるように、アプリ設定として格納されます。 Azure Key Vault でシークレットを管理する場合は、後でその設定を更新して Azure Key Vault 参照を使用します。
[ 追加] を選択して、ID プロバイダーの設定を完了します。
注
この名前に基づいてアプリ設定が作成されるため、OpenID プロバイダー名にハイフン (-) を含めることはできません。 アプリ設定ではハイフンはサポートされていません。 代わりにアンダースコア (_) を使用してください。
また、トークン内の aud
スコープが、上記で構成した クライアント ID と 同じである必要もあります。 現時点では、このプロバイダーの許可対象ユーザーを構成することはできません。
Azure には、 openid
、 profile
、および email
スコープが必要です。 少なくともこれらのスコープを使用して、ID プロバイダーでアプリの登録を構成してください。