【Salesforce】接続アプリケーションで困った時の監査ログと履歴で追う方法

【Salesforce】接続アプリケーションで困った時の監査ログと履歴で追う方法
🛡️ 超解決

Salesforceの接続アプリケーション(Connected App)は、外部アプリケーションやサービスと連携するための重要な機能ですが、認証エラーやアクセス権限の問題が発生することがあります。このようなトラブルが起きたとき、原因を特定するためには監査ログや各種履歴を活用するのが最も確実な方法です。本記事では、接続アプリケーションに関する問題をログと履歴から追跡する具体的な手順を解説します。操作に不慣れな方でも実践できるよう、ステップごとに詳しく説明します。

【要点】この記事で確認すること

  • 最初に見る場所: 監査ログの「接続アプリケーション イベント」と、ユーザーのログイン履歴を同時に確認します。
  • 切り分けの軸: ユーザー操作の問題(誤った認証手順)、アプリケーション側の設定(スコープやOAuth設定ミス)、管理設定(ポリシーやIP制限)の3つの領域で原因を分類します。
  • 注意点: 監査ログは保存期間が通常90日です。過去のログを確認する場合は管理者が事前にログ保存期間を延長しておく必要があります。また、監査ログの閲覧には「すべてのデータの参照」または「監査ログの参照」権限が必要なので、管理者に依頼してください。

ADVERTISEMENT

1. 接続アプリケーションのトラブルで最初に確認すべきログの種類

接続アプリケーションに関する問題は、認証の失敗、トークンの期限切れ、スコープ不足など多岐にわたります。これらの原因を効率的に特定するには、適切なログを選択することが重要です。Salesforceには主に3種類の履歴が用意されており、それぞれ異なる情報を提供します。

監査ログ(Audit Log)

監査ログには、ユーザーが接続アプリケーションにアクセスしたときのイベントや、OAuthトークンの発行・取り消しなどの詳細が記録されます。特に「接続アプリケーション イベント」というカテゴリでは、どのユーザーがどのアプリに対してどの操作を行ったかが時系列で確認できます。問題の発生時刻が特定できている場合は、このログを最初に参照するとよいでしょう。

ログイン履歴(Login History)

ログイン履歴は、ユーザーがブラウザやAPIを通じてSalesforceにサインインした記録です。接続アプリケーション経由の認証もここに記録されます。ログインが成功したか失敗したか、使用された認証プロトコル、IPアドレスなどの情報が含まれています。特定の接続アプリケーションでログインエラーが発生した場合、この履歴でエラーメッセージを確認できます。

セッション履歴(Session Management)

セッション履歴は、現在アクティブなセッションの一覧です。各セッションがどの接続アプリケーションを使用しているか、発行トークンの有効期限、最後のアクティビティ日時などを確認できます。トークンが予期せず失効している場合や、セッションが不正に使用されている可能性がある場合に役立ちます。

2. 監査ログ「接続アプリケーション イベント」の見方と手順

監査ログの中でも、接続アプリケーションに特化した「接続アプリケーション イベント」は最も直接的な情報源です。ここでは具体的な手順を紹介します。

  1. Salesforceにシステム管理者としてログインし、右上の歯車アイコンから「設定」を開きます。
  2. 「クイック検索」ボックスに「監査ログ」と入力し、表示された「監査ログ」をクリックします。
  3. 「接続アプリケーション イベント」タブを選択します。画面上部にフィルターオプションが表示されるので、調査対象のユーザーまたは接続アプリケーション名を指定します。
  4. 日付範囲を設定します。問題が発生した日時がわかっている場合は、前後1時間程度に絞り込むと目的のイベントを見つけやすくなります。
  5. 「表示」ボタンをクリックすると、該当するイベントが一覧表示されます。各行をクリックすると詳細が開き、アクションの種類(「OAuthトークン発行」「OAuthトークン更新」「OAuthトークン取り消し」など)、ユーザーエージェント、ログイン時刻、トークンIDなどの情報を確認できます。

特に、アクションが「失敗」となっている場合や、エラーコードが含まれている場合は、その内容をメモしておきます。エラーコードはSalesforceのヘルプドキュメントで検索することで、具体的な原因と対策を調べられます。

3. ログイン履歴とセッション履歴を使った調査方法

監査ログだけでは原因が特定できない場合、ログイン履歴とセッション履歴を組み合わせて調査します。それぞれの特徴を理解し、適切に使い分けることが重要です。

ログイン履歴の確認手順

  1. 設定メニューから「ログイン履歴」を検索して開きます。
  2. 「絞り込み」オプションで、ユーザー名や日付範囲を指定します。接続アプリケーション経由のログインは、「ログインタイプ」が「API」または「接続アプリケーション」として記録されることが多いです。
  3. 該当するログイン行をクリックして詳細を開きます。「ログインステータス」が「失敗」の場合は、エラーメッセージが表示されます。例えば「無効なクライアントID」や「認証コードの期限切れ」などのメッセージがヒントになります。
  4. また、「認証プロトコル」列で使用されたプロトコル(OAuth 2.0、SAMLなど)を確認し、想定と一致しているかどうかをチェックします。

セッション履歴の確認手順

  1. 設定メニューから「セッション管理」を検索して開きます。
  2. 「ユーザーセッション」リストで、調査対象のユーザー名をクリックします。
  3. 表示されたセッションのうち、「接続アプリケーション」列に対象のアプリケーション名が表示されている行を探します。
  4. そのセッションの「有効期限」や「最終アクティブ日時」を確認し、トークンが期限内であるかどうかを判断します。有効期限が切れている場合は、新しい認証が必要です。
ログの種類 主な確認内容 トラブルシューティングでの使い方
監査ログ(接続アプリケーション イベント) トークン発行・更新・取り消しのイベント イベントの有無やエラーコードから認証フローの問題を特定
ログイン履歴 ログイン成功/失敗、エラーメッセージ、IPアドレス、プロトコル 認証段階での失敗理由を特定
セッション管理 アクティブセッション、トークン有効期限、最終アクティビティ トークンの失効や有効期限切れの確認

4. よくあるトラブルパターンとログからの特定方法

実際に発生するトラブルにはいくつかの典型的なパターンがあります。それぞれのログ上の特徴を覚えておくと、素早く原因を絞り込めます。

パターン1: OAuth認証の失敗(エラーコード: invalid_client)

ログイン履歴で「invalid_client」というエラーが表示された場合、接続アプリケーションの「コンシューマーキー」と「コンシューマーシークレット」が正しく設定されていない可能性があります。また、接続アプリケーションが「無効」になっているか、IP制限に引っかかっているケースもあります。監査ログでは「OAuthトークン発行」のイベントが「失敗」として記録され、エラーコードが表示されます。

パターン2: トークンの期限切れ(アクセスが突然できなくなった)

セッション管理で該当するセッションの有効期限が過去になっている場合、トークンが期限切れです。接続アプリケーションのOAuthポリシーで「リフレッシュトークンの有効期限」が設定されていると、リフレッシュトークンも期限切れになり、自動更新ができなくなります。監査ログで「OAuthトークン更新」のイベントが失敗しているかどうかも確認してください。

パターン3: スコープ不足によるエラー(権限エラー)

外部アプリケーションが必要とするAPIアクセス権限(スコープ)が接続アプリケーションの定義と一致していない場合、認証は成功しても後続のAPI呼び出しでエラーが発生します。ログイン履歴では認証成功と表示される一方、監査ログではトークン発行時にリクエストされたスコープと実際に付与されたスコープが異なることがあります。この問題は、接続アプリケーションの設定画面で許可されているOAuthスコープを確認し、外部アプリ側の要求と整合させると解消します。

5. 失敗パターン:ログ調査でやりがちなミスと注意点

せっかくログを確認しても、間違った解釈をすると原因を誤認します。以下の失敗パターンはよく見られるので、注意してください。

  • フィルター設定の誤り: 監査ログのフィルターで「すべてのユーザー」を選択せずに特定ユーザーのみに絞り込むと、接続アプリケーション側のイベントを見落とすことがあります。最初はフィルターを外して大まかに確認し、徐々に絞り込むのがおすすめです。
  • タイムゾーンの考慮漏れ: ログに表示される時刻は、ユーザーのタイムゾーン設定によって変わります。問題発生時刻とログの時刻がずれている場合は、設定(ユーザー詳細のタイムゾーン)を確認して正しい時刻に補正してください。
  • 監査ログの保存期間を超えたデータの確認: 標準の監査ログ保存期間は90日です。それより古いイベントを調べたい場合、前に述べたようにログ保存期間の延長が事前に必要です。期間切れのログは参照できないため、定期的にアーカイブして保管しておくことを推奨します。

6. よくある質問

ここでは、現場でよく寄せられる質問をまとめました。トラブルシューティングの参考にしてください。

Q1: 監査ログに「接続アプリケーション イベント」が表示されない原因は?

A: 接続アプリケーションの監査ログが有効になっていない可能性があります。設定>監査ログ で「接続アプリケーション イベント」のトラッキングがオンになっているか確認してください。また、該当するユーザーに「監査ログの参照」権限がない場合も表示されません。

Q2: ログイン履歴に「API」と表示されるが、どの接続アプリケーションを使っているかわからない

A: ログイン履歴の詳細画面で「アプリケーション」項目を確認してください。そこに接続アプリケーションの名前が表示されます。表示されない場合は、セッション管理で同じユーザーのセッションを確認し、「接続アプリケーション」列を参照すると特定できます。

Q3: 接続アプリケーションのOAuthポリシーを変更したら、既存のトークンはどうなる?

A: ポリシー変更の種類によります。スコープや有効期間を変更した場合、既存のトークンは変更前に発行されたままなので、新しいポリシーを反映させるにはユーザーに再認証(再承認)を促す必要があります。監査ログで「OAuthトークン取り消し」のイベントを確認し、強制的に失効させることもできます。

7. まとめ

接続アプリケーションのトラブルシューティングでは、監査ログ、ログイン履歴、セッション管理の3つを適切に使い分けることが重要です。最初に問題の発生時刻を特定し、監査ログの「接続アプリケーション イベント」を確認することで、認証の成否やエラーコードを得られます。その結果に応じてログイン履歴やセッション管理で詳細を補完すると、原因を効率的に特定できます。また、事前に監査ログの保存期間を延長しておくことや、ログ調査時のフィルターやタイムゾーンに注意することで、誤った判断を防げます。これらのログ活用法を身につければ、接続アプリケーションに関する問題解決のスピードが格段に向上するでしょう。


この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。