0
0

More than 1 year has passed since last update.

【 Azure AD B2C 】サインインのリダイレクト時にエラーが発生する際の解決策

Posted at

Azure AD B2C サインイン時にリダイレクトのエラーが発生する際の解決策をまとめておきます。

実現したかったこと

Azure App Service にデプロイ済みのシングルページアプリケーション (SPA) で、Azure AD B2C を用いたサインインを行う。(ローカル環境でのテスト時には正常動作を確認済み)

エラー内容

The redirect URI 'https://xxxxx.azurewebsites.net/' specified in the request does not match the redirect URIs configured for the application '9cd1ccf6-xxxx-xxxx-xxxx-xxxxxxxxxx'. Make sure the redirect URI sent in the request matches one added to your application in the Azure portal. Navigate to https://aka.ms/redirectUriMismatchError to learn more about how to fix this.

(意訳) リクエストに含まれているリダイレクトURIは、アプリケーション構成のリダイレクトURIs と一致しません。リクエストで送信されたリダイレクトURIが Azure Portal のアプリケーションに追加されているか、確認してください。この問題の解決方法の詳細は エラー AADSTS50011: 要求で指定されたリダイレクト URI が一致しません をご覧ください。

解決方法

Azure Portal 上で Azure AD B2C リソースへアクセスして、対象のアプリケーションの認証ページより、リダイレクトURI を追加する。

まず、このエラーの最初に表記されているリダイレクトURIは、アプリケーション (ソースコード) 側で設定しているものになります。そして、このリダイレクトURIと一致していないとされているのが Azure AD B2C に登録されているアプリケーションのリダイレクトURIs です。Azure AD B2C 認証サーバーは、サインイン後リダイレクトURIに対して、認証コードやトークンを送信するため、Azure AD B2C アプリケーションに登録されているリダイレクト先にのみ、リダイレクトが許可される仕組みになっています。

Web アプリケーション側は @azure/msal-browser SDK を使用して、以下のように設定しています。

authConfig.ts
import { Configuration, PopupRequest } from "@azure/msal-browser";

export const msalConfig: Configuration = {
  auth: {
    clientId: "<Azure AD B2C アプリケーション(クライアント) ID>",
    authority: "https://login.microsoftonline.com/<ディレクトリ(テナント)ID>",
    redirectUri: "<リダイレクトURI>",
    postLogoutRedirectUri: "<ログアウト時のリダイレクトURI>"
  },
  cache: {
    cacheLocation: "sessionStorage",
    storeAuthStateInCookie: false
  }
};

今回の問題は、上記ソースコードで指定した redirectUri が Azure AD B2C アプリケーションのリダイレクト先URIとして登録されていないことが原因なので、早速登録をしていきたいと思います。

Azure Portal を開き、今回使用する Azure AD B2C リソースへアクセスします。ナビゲーションメニューから 管理 > アプリの登録 ページを開き、対象のアプリケーションを選択します。

image.png

アプリケーションページに遷移後、ナビゲーションメニューから 管理 > 認証 を選択します。

image.png

シングルページアプリケーション > リダイレクトURI > URI の追加 ボタンを押して、Azure AD B2C アプリケーションに リダイレクト URI を追加します。(シングルページアプリケーション以外のプラットフォームの方は、プラットフォームを追加後に、同様の手順を行ってください。)

image.png

追加後、再度アプリケーションにサインインを行うと、無事にサインインすることができました。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0