アナリティクス用にユーザーデータを難読化する

この機能を使用すると、アナリティクス ペイロードの一部として、データを送信する前にデータを難読化できます。この機能では、Apigee で SHA512 を使用して、ランタイム プレーンからコントロール プレーンに通信する前に元の値をハッシュ化します。

手順

この機能を有効にするには、features.analytics.data.obfuscation.enabledtrue に設定します。

curl -v -X PUT \
   https://apigee.googleapis.com/v1/organizations/your_org_name/environments/your_env_name \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
  "name" : "your_env_name",
  "properties" : {
    "property" : [ {
      "name" : "features.analytics.data.obfuscation.enabled",
      "value" : "true"
    },]
  }
}'

難読化を有効にすると、Apigee ハイブリッドでは、情報をアナリティクス バックエンドに送信する前に、ランタイム プレーンで SHA512 を使用してハッシュ化します。

  • client_id
  • client_ip
  • developer_email
  • proxy_client_ip
  • proxy_pathsuffix
  • request_urirequest_path
  • target_basepath
  • target_url
  • x_forwarded_for_ip
  • x-apigee.edge.true_client_ip
  • x-apigee.intelligence.client_ip_header

Apigee ハイブリッドでは、カスタム アナリティクス レポートで次のディメンション値をハッシュ化します。

  • クライアント ID
  • クライアント IP アドレス
  • デベロッパーのメール
  • プロキシ クライアント IP
  • プロキシパス接尾辞
  • 参照されるクライアント IP
  • リクエスト パス
  • リクエスト URI
  • 解決済みクライアント IP
  • ターゲット ベースパス
  • ターゲット URL
  • X Forwarded For

アナリティクスのディメンションの詳細については、アナリティクス指標、ディメンション、フィルタのリファレンスをご覧ください。

難読化された結果の表示

難読化された結果が Apigee ハイブリッド アナリティクス ダッシュボードに表示されます。ハッシュ化された結果が UI に表示されるまでに数分かかる場合があります。

ハッシュ化されたユーザーデータを表示するカスタム レポート

次の例は、難読化の前後のデータを示しています。

// JSON data sent to AX before obfuscating
{
   "proxy_basepath":"/APP_NAME",
   "x-apigee.edge.execution.stats.request_flow_endtimestamp":1582770652814,
   "apiproxy":"APP_NAME",
   "x-apigee.edge.is_policy_error":0,
   "client_sent_start_timestamp":1582770652817,
   "x-apigee.edge.is_target_error":0,
   "client_received_start_timestamp":1582770652813,
   "client_ip":"10.10.0.99",
   "is_error":false,
   "x-apigee.edge.stats.steps":"{\"JS1.0\":1}",
   "request_size":0,
   "x-apigee.intelligence.client_ip_header":"10.10.0.99",
   "virtual_host":"default",
   "x-apigee.edge.mp_host":"mp",
   "sla":false,
   "x-apigee.intelligence.service":"{}",
   "client_sent_end_timestamp":1582770652817,
   "request_uri":"/APP_NAME",
   "proxy":"default",
   "proxy_client_ip":"10.10.0.99",
   "x-apigee.edge.dn.region":"dc-1",
   "apigee.edge.execution.is_apigee_fault":0,
   "x-apigee.edge.target.latency.stats":"{\"targetList\":[]}",
   "useragent":"Apache-HttpClient/4.3.6 (java 1.5)",
   "proxy_pathsuffix":"",
   "x-apigee.edge.execution.stats.request_flow_start_timestamp":1582770652814,
   "x_forwarded_for_ip":"10.10.0.99",
   "x_forwarded_proto":"http",
   "response_status_code":200,
   "request_verb":"GET",
   "x-apigee.edge.execution.stats.response_flow_end_timestamp":1582770652816,
   "gateway_source":"message_processor",
   "environment":"env_82hw",
   "client_received_end_timestamp":1582770652814,
   "organization":"Org_1582769880344",
   "x-apigee.edge.execution.stats.response_flow_start_timestamp":1582770652814,
   "request_path":"/APP_NAME",
   "gateway_flow_id":"rt-8644-188-1",
   "apiproxy_revision":"1"
}
// JSON data sent to AX after obfuscating
{
   "proxy_basepath":"/APP_NAME",
   "x-apigee.edge.execution.stats.request_flow_endtimestamp":1582749361836,
   "apiproxy":"APP_NAME",
   "x-apigee.edge.is_policy_error":0,
   "client_sent_start_timestamp":1582749361884,
   "x-apigee.edge.is_target_error":0,
   "client_received_start_timestamp":1582749361790,
   "client_ip":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
   "is_error":false,
   "x-apigee.edge.stats.steps":"{\"JS1.0\":30}",
   "request_size":0,
   "x-apigee.intelligence.client_ip_header":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
   "virtual_host":"default",
   "x-apigee.edge.mp_host":"mp",
   "sla":false,
   "x-apigee.intelligence.service":"{}",
   "client_sent_end_timestamp":1582749361886,
   "request_uri":"0176937d9c4a33094d3c3f38ac8b15fa05dd6380a6bb544e4002c98de9f27bdbfea754901b0acb487f4980b09f7d312ad1e7027b96b2c8bfd8b9c24e833fbb5a",
   "proxy":"default",
   "proxy_client_ip":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
   "x-apigee.edge.dn.region":"dc-1",
   "apigee.edge.execution.is_apigee_fault":0,
   "x-apigee.edge.target.latency.stats":"{\"targetList\":[]}",
   "useragent":"Apache-HttpClient/4.3.6 (java 1.5)",
   "proxy_pathsuffix":"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e",
   "x-apigee.edge.execution.stats.request_flow_start_timestamp":1582749361833,
   "x_forwarded_for_ip":"090cdae81ea6e58e55093f702661cf2325cef6a68aa801f1209e73bb0649c2b931bcad468911da887a42ce1d1daee07b24933e3dbbde6eb7438cfc9020a25445",
   "x_forwarded_proto":"http",
   "response_status_code":200,
   "request_verb":"GET",
   "x-apigee.edge.execution.stats.response_flow_end_timestamp":1582749361874,
   "gateway_source":"message_processor",
   "environment":"env_xj25",
   "client_received_end_timestamp":1582749361821,
   "organization":"Org_1582749068984",
   "x-apigee.edge.execution.stats.response_flow_start_timestamp":1582749361836,
   "request_path":"0176937d9c4a33094d3c3f38ac8b15fa05dd6380a6bb544e4002c98de9f27bdbfea754901b0acb487f4980b09f7d312ad1e7027b96b2c8bfd8b9c24e833fbb5a",
   "gateway_flow_id":"rt-6290-57-1",
   "apiproxy_revision":"1"
}