次の方法で共有


OpenID Connect プロバイダーを使用するように App Service または Azure Functions アプリを構成する

この記事では、 OpenID Connect (OIDC) 仕様に準拠するカスタム認証プロバイダーを使用するように Azure App Service または Azure Functions を構成する方法について説明します。 OIDC は、多くの ID プロバイダーが使用する業界標準です。 アプリに OIDC ID プロバイダーを使用するために、仕様の詳細を理解する必要はありません。

1 つ以上の OIDC プロバイダーを使用するようにアプリを構成できます。 各 OIDC プロバイダーに、アプリ構成で一意のフレンドリ名を付ける必要があります。 既定のリダイレクト ターゲットとして使用できるプロバイダーは 1 つのみです。

OIDC ID プロバイダーにアプリを登録する

プロバイダーでは、 <app-url>/.auth/login/<provider-name>/callback形式でリダイレクト URI を指定して、アプリケーションを登録する必要があります。 リダイレクト URI で、 <app-url> をアプリの URL に置き換え、 <provider-name> を Azure の OpenID プロバイダーに付与するフレンドリ名に置き換えます。

この名前に基づいて App Service アプリケーション設定が作成され、アプリケーション設定でハイフンがサポートされていないため、OpenID プロバイダー名にハイフン -を含めることはできません。 代わりにアンダースコア _ を使用できます。

アプリを登録するときは、アプリケーションの クライアント IDクライアント シークレット を収集する必要があります。 Azure アプリ構成で使用するこれらの値を書き留めます。

  • クライアント シークレットの値は重要なセキュリティ資格情報です。 このシークレットを他のユーザーと共有したり、クライアント アプリケーション内で配布したりしないでください。
  • ユーザーが対話型の承認コード フローを使用してアクセス トークンを取得する場合は、アプリでクライアント シークレットを提供する必要があります。 アクセス トークンを取得したくない場合は、シークレットを使用する必要はありません。

プロバイダーの OIDC メタデータも必要です。 このメタデータは、多くの場合、プロバイダーの発行者 URL に/.well-known/openid-configurationを追加することによって形成されたパスで取得できる構成メタデータ ドキュメントで公開されます。

構成メタデータ ドキュメントにアクセスできない場合は、次の値を個別に取得します。

各 ID プロバイダーは、登録手順を完了する方法に関する手順を提供する必要があります。 プロバイダーによっては、構成または指定した値を使用するために、追加の手順が必要になる場合があります。 たとえば、Apple は JSON Web トークン (JWT) を作成するために使用する秘密キーを提供します。このキーは、アプリ構成でシークレットとして入力します。 詳細については、「 クライアント シークレットの作成」を参照してください。

アプリケーションにプロバイダー情報を追加する

Azure で OpenID Connect プロバイダーを構成するには、次の手順に従います。

  1. アプリの Azure portal ページで、左側のナビゲーション メニューの [設定] で [認証] を選択します。

  2. [認証] ページで、[ID プロバイダーの追加] を選択するか、[ID プロバイダー] セクションで [プロバイダーの追加] を選択します。

  3. [ ID プロバイダーの追加 ] ページで、プロバイダーとして OpenID Connect を選択します。

  4. OpenID プロバイダー名には、OIDC プロバイダーに対して選択したフレンドリ名を入力します。

  5. OpenID Connect プロバイダーの構成で、ID プロバイダーのメタデータ ドキュメントがある場合は、[メタデータ] エントリ[ドキュメント URL] を選択します。

    メタデータ ドキュメントがない場合は、[ メタデータの入力] を選択し、ID プロバイダーの各 URL を適切なフィールドに入力します。

  6. [アプリの登録] で、クライアント ID とクライアント シークレットに対して前に収集した値指定します。

  7. これがアプリケーションの最初の ID プロバイダーである場合は、 App Service 認証設定 セクションに、認証されていない要求に対するアプリケーションの応答方法などの設定が表示されます。 既定の選択では、新しいプロバイダーでサインインするすべての要求がリダイレクトされます。

    アプリの ID プロバイダーを既に構成している場合、このセクションは表示されません。 必要に応じて、後で設定をカスタマイズできます。

  8. [ 追加] を選択して、ID プロバイダーの設定を完了します。

[認証] ページで、<oidc_friendly_name> (カスタム プロバイダー)[ID プロバイダー] セクションに表示されるようになりました。 プロバイダーの設定を編集するには、[ 編集] の下にある鉛筆アイコンを選択します。

[ 認証設定] セクションには、認証されていない要求に対するアプリケーションの応答方法などの設定が表示されます。 これらの設定は、[認証設定] の横にある [編集] を選択して編集できます。 オプションの詳細については、「 認証フロー」を参照してください。

アプリケーション シークレットは、<oidc_friendly_name>_AUTHENTICATION_SECRETという名前のスロット固定アプリケーション設定として格納されます。 この設定は、ポータルのアプリの [環境変数] ページの [アプリの設定] タブで確認できます。 Azure Key Vault でシークレットを管理する場合は、 Key Vault 参照を使用するように設定を編集できます。

スコープを追加するには、アプリケーションがプロバイダーの登録ポータルで持つアクセス許可を定義します。 アプリは、サインイン時にこれらのアクセス許可を使用するスコープを要求できます。

  • Azure には、 openidprofile、および email スコープが必要です。 少なくともこれらのスコープを使用して、ID プロバイダーでアプリの登録を構成してください。
  • audスコープは、構成されたクライアント ID と同じである必要があります。このプロバイダーの許可対象ユーザーを構成することはできません。