ServiceNow のクッキーIssue 概要 この記事は、ServiceNow プラットフォームで通常見つかる Cookie に関する一般的な情報で構成されています。特に明記されていない限り、プラットフォームで使用されるすべてのCookieは、正しい機能に必要です。インスタンス上のアクティブなアプリケーションに応じて、一部またはすべての Cookie が存在する場合があります。 目次 概要Cookieの概要 BigIPglide_userglide_user_activityglide_user_routeglide_session_storeglide_sso_idJSESSIONIDglide_user_sessionBAYEUX_BROWSER__CJ_g_startTime__CJ_tabs2_listまたは__CJ_tabs2_sectionsn-chatbot-deviceidglide_languageglide_user_edgeatf_session_cookieglide_mfa_remembered_browser Cookie の有効期限の詳細 Cookieの概要 BigIP BigIP Cookie は負荷分散の決定に使用され、顧客データは一切開示されません。 問題:内部 IP が開示されています: 開発チームは、修正/ソリューションを手元に持っています。また、一度に修正を実装する際に高リスクの影響を判断しました。そのため、段階的なアプローチを使用して、すべてのクラウドインスタンスで修正しています。実際のところ、ロードバランサー以外のものにアクセスするには、内部パスワードポリシーに加えて 2 要素認証が必要です。ログモニタリングも有効になり、実行されたトランザクションの監査記録が残ります。そのため、現在のところ、BIGIP Cookie が ServiceNow またはその顧客に脅威を与えることはありません。 現在、この問題は優先度が低く、近い将来に修正する予定はありません。 glide_user 「glide_user」Cookie は、セッションがタイムアウトするたびにユーザーセッションを更新するためにアプリケーションによって作成されるセッション Cookie です。ログイン時に [記憶する] チェックボックスがオンになっている場合にのみ、アプリケーションで使用されます。 glide_user_activity このglide_user_activityは、[記憶する] オプションにオプトインしなかったアクティブなユーザーがログアウトできないようにします。セッション中にユーザーがアクティブな場合は、定期的に更新されます。その存在は、アクティブなセッション中にセッションがユーザーをロックアウトしないように、ユーザー側で実行されているアクティビティがあるかどうかを検出することです。これは、サーバーがセッションを更新するのに役立ちます。 glide_user_route glide_user_route Cookie は、クラスター内のどのアプリケーションサーバー (またはノード) に移動するかを定義するため、ロードバランサーから特に指示/リダイレクトされない限り、一貫性が保たれます。簡単に言うと、ノードの永続性を管理します。 glide_session_store 「glide_session_store」は、顧客をあるノードから別のノードに移動するときにセッションを保持するために追加されました。これを有効にすると、データセンター間でユーザーがフェイルオーバーした場合に、ユーザーがログアウトしないようにできます。ただし、これは推奨されませんが、次のプロパティを追加することで無効にできます。 名前:glide.session.store.enabledタイプ:true|偽値:false glide_session_store Cookieの目的は、メインセッションが失われた場合、たとえば、セッションが確立されたインスタンスとは異なるインスタンスにリダイレクトされた場合に、ユーザーがセッション状態の一部を回復することです。新しいユーザーセッションが確立されるたびに、glide_session_store Cookie が更新されます。ナビゲーション履歴が変更されるたびに、glide_session_store Cookie に関連付けられたデータが更新されます。glide_session_store Cookie は認証には使用されず、認証には使用できません。これは、国家の部分的な復元にのみ使用されます。ただし、glide_user_activity Cookie などの他の Cookie は、認証において役割を果たします。 glide_sso_id 「glide_sso_id」Cookie には、ブラウザクライアントが関連付けられている各 ID プロバイダーレコードのsys_idが含まれています。ほとんどの場合、その cookie 値は「glide.authenticate.sso.redirect.idp」プロパティと同じですが、顧客がインスタンスのさまざまなユーザーに対して異なる IdP を持っている場合は、別の値になる可能性があります。これは単なるIdPの識別子であり、攻撃者にとって有用ではないため、このCookieの属性を変更する予定はありません。 JSESSIONID 「JSESSIONID」Cookie は、ユーザーが最初にアプリケーションにログインしたときにアプリケーションによって作成されるセッション Cookie であり、ユーザーセッションのセッション属性を維持するために基礎となるサーバーによって作成されます。 glide_user_session 「glide_user_session」Cookie は、アプリケーションによって作成されたセッション Cookie です。ユーザーが [記憶する] チェック ボックスをマークすると、これと "glide_user" Cookie が設定され、ユーザー セッションを管理するためにアプリケーションによって使用されます。 BAYEUX_BROWSER Cookieは、プラットフォームで使用するCometDライブラリによって使用されます。バイユープロトコルとCometDは、ロングポーリングに使用されます。Bayeux は、主に HTTP 経由で非同期メッセージを転送するためのプロトコルです。CometD は、Comet と呼ばれる AJAX プッシュテクノロジーパターンを使用するスケーラブルな HTTP ベースのイベントルーティングバスです。バイユープロトコルを実装します。 ロングポーリングは、Comet プログラミングとも呼ばれ、サーバーからクライアントへの情報プッシュのエミュレーションを可能にします。通常のポーリングと同様に、クライアントはサーバーに接続し、サーバーに情報を要求します。ただし、情報が利用できない場合に空の応答を送信する代わりに、サーバーは要求を保持し、情報が利用可能になるまで待機します (イベントが発生します)。その後、サーバーは完全な応答をクライアントに送信します。その後、クライアントは直ちに情報を再要求します。クライアントはサーバーへの接続を継続的に維持するため、常に応答の受信を待機しています。サーバーがタイムアウトした場合、クライアントは再接続して最初からやり直します。 HTTP(long-pollingおよびcallback-polling)に基づくトランスポートの場合、CometDは、BAYEUX_BROWSERと呼ばれるHttpOnlyとマークされたハンドシェイク応答とともにHTTP Cookieを送信します(Javaサーバーの構成を参照)。サーバー上の CometD 実装は、ハンドシェイク要求メッセージの処理中に、この Cookie を正当なセッション ID にマップします。後続のすべてのメッセージについて、ブラウザはBAYEUX_BROWSER Cookieをサーバーに送信し、CometDの実装は、メッセージ(変更された可能性がある)からではなく、Cookieにマッピングされた正当なセッションからセッションIDを取得します。 参照: Cometd.org。 __CJ_g_startTime 「__CJ_g_startTime」Cookie は、ページの読み込み開始時刻をマークするために特定の UI ページによって設定され、機密情報は含まれていません。 __CJ_tabs2_listまたは__CJ_tabs2_section __CJ_tabs2_list_* と __CJ__tabs2_section_* のプリフィックスが付いた複数の Cookie が存在する場合があります。これらのCookieは、ページ上のさまざまなタブとセクションの読み込みをマークするために特定のUIページによって設定され、機密情報は含まれていません。tabs2 Cookie はフォームのタブコードによって設定され、次のフォームの読み込み時にユーザーの優先セクションまたは関連リストタブを復元するために読み取られます。これらがないと、ユーザーはフォームがロードされるたびにセクションタブと関連リストタブが最初のタブにリセットされます。 sn-chatbot-deviceid これは、チャット機能に関連するセッション管理 cookie です。これは JavaScript ベースの UUID であり、機密情報やユーザーを特定できる情報は含まれていません。 glide_language この Cookie は、「com.glide.sys.glide_language_cookie_enabled」プロパティが有効になっている場合に設定されます。この Cookie には、ゲストユーザーの正しいローカライズに使用される言語 ID が含まれており、機密情報は含まれていません。 glide_user_edge この Cookie には、ユーザーのタイムゾーン、日時形式、および日付形式に関連する情報が含まれています。エッジ暗号化プロキシが有効であり、機密情報が含まれていない場合に使用されます。この Cookie は、セッションが終了すると破棄されます。 atf_session_cookie この cookie は、プロパティ「sn_atf.runner.enabled」が設定されている場合に自動テストフレームワークによって使用されます。記録のロールバックに使用されます。 glide_mfa_remembered_browser この Cookie は、「glide.authenticate.multifactor.remember.browser.enable」が「true」に設定されている場合に使用されます。Cookie は、マルチファクター認証のコンテキストで、マルチファクター認証が継続的に必要とされないように、ブラウザーに関連付けるために使用されます。cookie 値は、ランダムに生成される安全な文字列です。Cookie の有効性は、プロパティ「glide.authenticate.multifactor.browser.fingerprint.validity」によって制限されます。 glide_node_id_for_js glide_node_id_for_js は、 Vancouver リリース で導入された非 HttpOnly Cookie で、重み付けされた負荷分散機能をサポートするために内部的に使用されます。これは、HTTP 接続が新しいノードに移行されるたびに、HTTP 接続と同じノードに Web ソケット接続を移行するために使用されます。機密情報は含まれておらず、SHA-256 を使用してハッシュ化されています。 Cookie の有効期限の詳細 cookieデフォルト期間その他の注意BigIPセッション glide_user15 日間 このCookieは、「記憶する」チェックボックスが有効になっている場合に関連します。Cookie の有効期限は、「glide.ui.user_cookie.life_span_in_days」システムプロパティで調整できます。 https://docs.servicenow.com/csh?topicname=sc-session-window-timeout.html glide_user_activityセッション glide_user_route231-1 秒 (約 24,855 日) 一部のWebブラウザでは、Cookieの有効期間の上限が強制されており、特定のWebブラウザで観察される値ははるかに低い場合があることに注意してください。たとえば、Google Chrome Web ブラウザーでは、上限は 400 日です。 glide_session_store30 分 glide_sso_id6004 日Web ブラウザーの制限に関連する上記の「glide_user_route」に関する注意を参照してください。JSESSIONIDセッション glide_user_sessionセッションこのCookieは、「記憶する」チェックボックスが有効になっている場合に関連します。BAYEUX_BROWSERセッション __CJ_g_startTime1 時間 __CJ_g_tabs2_listまたは__CJ_tabs2_section1 時間 sn-chatbot-deviceidセッション glide_languageセッション glide_user_edgeセッション atf_session_cookieセッション glide_mfa_remembered_browser8 Hours (8 時間) Cookie の有効期限は、「glide.authenticate.multifactor.browser.fingerprint.validity」システムプロパティで調整できます。 https://docs.servicenow.com/csh?topicname=mfa-properties.html ReleaseVancouverResolutionNA