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 コンテンツの読み込み要求では、シンクロナイザー トークンを追加の保護層として送信および検証することを選択し、ページの読み込み要求が進行中の認証の結果であることを確認します。
シンクロナイザー トークンは、ユーザーを識別する資格情報ではなく、アクティブな一意の認証セッションに関連付けられています。