Azure AD B2C での Cookie の定義

以下のセクションでは、Azure Active Directory B2C (Azure AD B2C) で使用される Cookie に関する情報を提供します。

SameSite

Azure B2C サービスは、SameSite ブラウザー構成と互換性があります。これには、SameSite=None と、Secure 属性のサポートが含まれます。

サイトへのアクセスを保護するために、Web ブラウザーでは、新しい "既定でセキュリティ保護" モデルが導入されます。このモデルでは、特に指定のない場合、すべての Cookie を外部アクセスから保護していることが前提になります。 この変更が最初に実装されるのは Chrome ブラウザーであり、2020 年 2 月の Chrome 80 から実装されます。 Chrome での変更の準備の詳細については、「開発者: 新しい SameSite=None のセキュア Cookie 設定に備えよう」 という Chromium ブログを参照してください。

開発者は、新しい Cookie 設定 SameSite=None を使用して、クロスサイト アクセス用の Cookie を指定する必要があります。 SameSite=None 属性が存在する場合は、追加の Secure 属性を使用して、クロスサイト Cookie には HTTPS 接続経由でしかアクセスできないようにする必要があります。 Azure AD B2C を使用するアプリケーションをはじめ、すべてのアプリケーションを検証およびテストします。

詳細については、次を参照してください。

クッキー

次の表では、Azure AD B2C で使われる Cookie の一覧を示します。

名前 Domain 有効期限 目的
x-ms-cpim-admin main.b2cadmin.ext.azure.com ブラウザー セッションの終了 テナント間でユーザーのメンバーシップ データを保持します。 ユーザーがメンバーになっているテナントと、メンバーシップのレベル (管理者またはユーザー) です。
x-ms-cpim-slice b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 適切な運用インスタンスに要求をルーティングするために使われます。
x-ms-cpim-trans b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 トランザクション (Azure AD B2C に対する認証要求の数) と現在のトランザクションを追跡するために使われます。
x-ms-cpim-sso:{Id} b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 SSO セッションを維持するために使われます。 persistent が有効な場合、この cookie は persistent として設定されます。
x-ms-cpim-cache:{id}_n b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了、認証の成功 要求の状態を維持するために使われます。
x-ms-cpim-csrf b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 クロスサイト リクエスト フォージェリの保護に使われる CRSF トークン。 詳細については、「 クロスサイト リクエスト フォージェリ トークン 」セクションを参照してください。
x-ms-cpim-dc b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 Azure AD B2C のネットワーク ルーティングに使われます。
x-ms-cpim-ctx b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 Context
x-ms-cpim-rp b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 リソース プロバイダー テナントのメンバーシップ データの格納に使われます。
x-ms-cpim-rc b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン ブラウザー セッションの終了 リレー Cookie を格納するために使われます。
x-ms-cpim-geo b2clogin.com、login.microsoftonline.com、ブランド化されたドメイン 1 時間 リソース テナントのホームの地理的な場所を決定するためのヒントとして使用されます。

クロスサイト リクエスト フォージェリ トークン

クロスサイト リクエスト フォージェリ (csrf) 攻撃を防ぐために、Azure AD B2C は、シンクロナイザートークン戦略メカニズムを適用します。 このパターンの詳細については、 クロスサイト リクエスト フォージェリの防止 に関する記事をご覧ください。

Azure AD B2C は、シンクロナイザー トークンを生成し、 2 つの場所に追加します。この 2 つの場所とは、x-ms-cpim-csrf というラベルが付いたクッキーと、Azure AD B2C に送信されるページの URL にある csrf_token という名前 のクエリ文字列パラメーターです。 Azure AD B2C サービスは、ブラウザーからの受信要求を処理する際に、トークンのクエリ文字列と cookie の両方のバージョンが存在し、それらが完全に一致することを確認します。 また、トークンのコンテンツ要素を検証して、進行中の認証の予期される値を確認します。

たとえば、サインアップまたはサインイン ページで、ユーザーが [パスワードを忘れた場合] または [今すぐサインアップ] リンクを選択すると、ブラウザーは次のページのコンテンツを読み込むために GET 要求を Azure AD B2C に送信します。 また、B2C Azure AD コンテンツの読み込み要求では、シンクロナイザー トークンを追加の保護層として送信および検証することを選択し、ページの読み込み要求が進行中の認証の結果であることを確認します。

シンクロナイザー トークンは、ユーザーを識別する資格情報ではなく、アクティブな一意の認証セッションに関連付けられています。