Okta ログの収集
このページでは、Okta からのログ収集をセットアップする方法について説明します。リンクをクリックして、トピックに移動してください。
要件とプロセスの概要
ログ収集のセットアップを開始する前に、以下のセクションで必要な前提条件とプロセスの概要を確認してください。
前提条件
- Sumo と Okta の統合には、SumoJanus が必要です。SumoJanus は、Okta、Box、Salesforce などのアプリケーションからのスクリプトベースの収集に使用するプロプライエタリ ライブラリです。
- SumoJanus をデプロイして Installed Collector およびスクリプト Source を設定するシステムには Java が必要です。
プロセス概要
Sumo Logic での分析用に Okta からのログ収集をセットアップするには、以下の作業を、記述されている順序で実行する必要があります。
- Okta で認証トークンを生成します。
- 認証に必要な SumoJanus パッケージをダウンロードします。
- SumoJanus パッケージを、Sumo Logic Collector が動作しているローカル サーバにデプロイします。
- ステップ 1 で作成した Okta トークンを使用してローカル プロパティ ファイルを編集します。このプロパティ ファイルは、ステップ 2 で SumoJanus パッケージをダウンロードしてデプロイしたときに生成されます。
- Installed Collector を設定します。
- データを Okta から Sumo Logic に送信するために、Sumo Logic でスクリプト Source を設定します。
Okta ログ収集の設定
このセクションでは、Sumo Logic での分析用に Okta からのログ収集をセットアップするプロセスを順を追って説明します。リンクをクリックして、トピックに移動してください。
- ステップ 1: Okta API トークンの生成
- ステップ 2: SumoJanus パッケージのダウンロード
- ステップ 3: SumoJanus パッケージのデプロイ
- ステップ 4: プロパティ ファイルの編集
- ステップ 5: Collector の設定
- ステップ 6: Source の設定
ステップ 1: Okta API トークンの生成
Okta ヘルプの手順に従って Okta API トークンを作成します。この手順の後半でこのトークンを SumoJanus プロパティ ファイルに追加します。
ステップ 2: SumoJanus パッケージのダウンロード
Okta からログを収集するには、次の SumoJanus ファイルが必要です。自分のシステムに合わせて適切なファイルをダウンロードしてください。
Linux | Windows | |
---|---|---|
SumoJanus v3.0.1 パッケージ ファイル | sumojanus-okta-dist.1.0.1.tar.gz | sumojanus-okta-dist.1.0.1.zip |
ステップ 3: SumoJanus パッケージのデプロイ
以前に SumoJanus をセットアップしていない場合、「新規 SumoJanus インストール」の手順を実行します。以前に SumoJanus をセットアップしている場合、「SumoJanus インストールの更新」の手順を実行します。
SumoJanus の新規インストール
ステップ 2 でダウンロードしたパッケージ ファイルを適切な sumojanus フォルダにコピーして、そこで展開します。
- Linux では、次のコマンドを実行します。
tar xzvf sumojanus-okta-dist.1.0.1.tar.gz
- Windows では、Windows Explorer を使用して zip パッケージを開いて、内容を適切なターゲット フォルダにコピーします。
sumojanus-okta-dist.1.0.1.zip
SumoJanus インストールの更新
以前に SumoJanus をセットアップしたことがある場合は、SumoJanus v2.0 と v3.x を一緒にしないように注意してください。v3.x は個別のフォルダにデプロイすることをお勧めします。すでに v3.x SumoJanus フォルダがある場合は、次の手順を実行します。
conf/sumologic.properties
とdata
フォルダをバックアップします。sumojanus-Okta-1.0.1.tar.gz
ファイルを SumoJanus が現在インストールされている親フォルダにコピーします。- そこから、次のコマンドを使用して sumojanus-Okta-1.0.1.tar.gz ファイルを展開します。
tar xzvf sumojanus-Okta-1.0.1.tar.gz
これにより、ファイルが Okta パッケージからsumojanus
フォルダにコピーされます。
ステップ 4: プロパティ ファイルの編集
- テキスト エディタで
<sumojanus_foldername>/conf/sumologic.properties
ファイルを開き、次の行をファイルの末尾に追加します。<variables> は次の手順で入力する情報 (括弧も含む) に置換してください。
# provide the parameters for a bundle via a unique section after this [oktacollector] # required, your Okta API token api_token = <generated_Okta_api_token> # required, your okta account URL, e.g: https://acme.okta.com okta_org_url = https://<company.okta.com> # required, file to keep track of the okta event stream stream_pos_path = <${path}/data/okta_checkpoint.dat> # maximum pagination limit is 1000 pagination_limit = 1000 # optional, start time window to query, in epoch milliseconds. Default is 7 days ago. # start_time = 1435709058000 # optional, end time window to query, in epoch milliseconds. Default is 1 minute ago # end_time = 1436377600000
- api_token.「Okta API トークンの生成」ステップで作成した Okta API トークンを入力します。
- okta_org_url.Okta URL を入力します。URL が http ではなく https で始まる点に注意してください。
- stream_pos_path.
${path}
変数を、SumoJanus をインストールしたサーバの実際のパスに置換します。例: "/home/sumojanus" - 変更内容を保存します。
sumojanus/conf/sumologic.properties
ファイルは次の例のようになります。
ステップ 5: Collector の設定
Linux または Windows マシンで Installed Collector を設定します。デフォルトで、Collector には Java Runtime Environment が付属しています。SumoJanus が Java を見つけられるように、下記のように .bat ファイルまたは .bash ファイルを更新する必要がある場合があります。
Windows での SumoJanus_Okta.bat の更新
SumoJanus をインストールしたフォルダに移動し、テキスト エディタで SumoJanus_Okta.bat を開きます。下記のように、このスクリプトの 3 行目で JAVAPATH
が C:\Program Files\Sumo Logic Collector\jre\bin
に設定されています。
set JAVAPATH="C:\Program Files\Sumo Logic Collector\jre\bin"
Collector の JRE が別の場所にある場合は、それに合わせて 3 行目を更新します。
Linux での SumoJanus_Okta.bash の更新
SumoJanus をインストールしたフォルダに移動し、テキスト エディタで SumoJanus_Okta.bash を開きます。次のようにスクリプトを更新します。
- JRE の場所を参照するように
JAVA_HOME
を設定する行をスクリプトの最後の行の直前に追加します。たとえば、Collector の JRE が/opt/SumoCollector/jre/bin
にある場合は、次の行を挿入します。
JAVA_HOME=/opt/SumoCollector/jre/bin
-
スクリプトの最後の行は次のとおりです。
java -jar ${SUMOJANUS_JAR_FILE} ${runMode} OktaCollector-1.0.1.jar -e 1800
次のように、この行の前に$JAVA_HOME/
を付けます。
$JAVA_HOME/java -jar ${SUMOJANUS_JAR_FILE} ${runMode} OktaCollector-1.0.1.jar -e 1800
ステップ 6: Source の設定
Source Category の命名規則の指針については、「ベスト プラクティス: 良い Source Category、悪い Source Category」を参照してください。
スクリプト Source を設定するには、次の手順を実行します。
-
スクリプト Source を設定します。バージョン 19.245-4 以降の新しい Collector では、スクリプト Source の作成はデフォルトでは禁止されています。スクリプト Source を許可するには、user.properties 内の Collector のパラメータ
enableScriptSource
を true に設定する必要があります。Linux
Windows
- 以下の Source フィールドを設定します。
- Name (名前): OktaCollector。
- (省略可能) Description (説明):
- Source Category: okta
- Frequency (頻度): Every 5 Minutes (5 分ごと)
- Specify a timeout for your command (コマンドのタイムアウトを指定): チェックボックスをアクティブ化して、[60 Minutes (60 分)] を選択します。
- Command (コマンド): Linux の場合、
/bin/bash.
を使用します。Windows の場合、Windows スクリプトを使用します。(システムの正しいパスを指定してください)。 - Script (スクリプト): 「パッケージのデプロイ」ステップで作成した sumojanus への絶対パスを使用します (
/home/ubuntu/sumojanus/bin/SumoJanus_Okta.bash.
など) ([Type the script to execute (実行するスクリプトを入力)] は選択しないでください)。 - Working Directory (作業ディレクトリ)。
$path/sumojanus,
ここで、$path は「パッケージのデプロイ」ステップで作成した SumoJanus のパスです。
-
[Save (保存)] をクリックします。
ログ メッセージのサンプル
{ "actor":{ "id":"00u17b6c3rwVP7kqo1d8", "type":"User", "alternateId":"kyle.diedrich@company.com", "displayName":"Kyle Diedrich", "detailEntry":null }, "client":{ "userAgent":{ "rawUserAgent":"PostmanRuntime/3.0.11-hotfix.2", "os":"Unknown", "browser":"UNKNOWN" }, "zone":"null", "device":"Unknown", "id":null, "ipAddress":"12.97.85.90", "geographicalContext":{ "city":"San Francisco", "state":null, "country":"United States", "postalCode":"94107", "geolocation":{ "lat":37.7697, "lon":-122.3933 } } }, "authenticationContext":{ "authenticationProvider":null, "credentialProvider":null, "credentialType":null, "issuer":null, "interface":null, "authenticationStep":0, "externalSessionId":"trsp5PU7OIoTgCOdFBgJOQWIA" }, "displayMessage":"Delete application", "eventType":"application.lifecycle.delete", "outcome":{ "result":"SUCCESS", "reason":null }, "published":"2017-10-02T17:38:45+0000", "securityContext":{ "asNumber":null, "asOrg":null, "isp":null, "domain":null, "isProxy":null }, "severity":"INFO", "debugContext":{ "debugData":{ "requestUri":"/api/v1/apps/0oa1alyz0mr8M2MoG1d8" } }, "legacyEventType":"app.generic.config.app_deleted", "transaction":{ "type":"WEB", "id":"WRzO-wWGVlYAavrUTHqwcgAABsA", "detail":{ } }, "uuid":"49916412-d679-4285-b3e0-d740c73e4999", "version":"0", "request":{ "ipChain":[ { "ip":"12.97.85.90", "geographicalContext":{ "city":"San Francisco", "state":null, "country":"United States", "postalCode":"94107", "geolocation":{ "lat":37.7697, "lon":-122.3933 } }, "version":"V4", "source":null }, { "ip":"54.235.68.72", "geographicalContext":{ "city":"Ashburn", "state":null, "country":"United States", "postalCode":"20149", "geolocation":{ "lat":39.0481, "lon":-77.4728 } }, "version":"V4", "source":null } ] }, "target":[ { "id":"0oa1alyz0mr8M2MoG1d8", "type":"AppInstance", "alternateId":"Cisco AnyConnect VPN (2)", "displayName":"Cisco AnyConnect VPN", "detailEntry":null } ] }
クエリのサンプル
削除されたアプリケーションの詳細
_sourceCategory = "okta" "application.lifecycle.delete"
| json field=_raw "eventType" as event_type
| where event_type = "application.lifecycle.delete"
| json field=_raw "outcome.result" as outcome_result
| json field=_raw "displayMessage" as display_message
| json field=_raw "published"as published_time
| json field=_raw "actor.displayName" as okta_user_name
| json field=_raw "actor.alternateId" as okta_user_id
| json field=_raw "actor.type"
| json field=_raw "severity" as severity
| json field=_raw "target[0].displayName" as app_name
| json field=_raw "target[0].type" as app_type
| json field=_raw "client.ipAddress" as client_ip
| json field=_raw "client.geographicalContext.city" as city
| json field=_raw "client.geographicalContext.state" as state
| json field=_raw "client.geographicalContext.country" as country
| json field=_raw "client.geographicalContext.postalCode" as postal_code
| count by app_name, okta_user_id, outcome_result, display_message
MFA 非アクティブ化イベントの詳細
_sourceCategory = "okta" "user.mfa.factor.deactivate"
| json field=_raw "eventType" as event_type
| where event_type = "user.mfa.factor.deactivate"
| json field=_raw "outcome.result" as outcome_result
| json field=_raw "published" as published_time
| json field=_raw "actor.displayName" as actor
| json field=_raw "actor.alternateId" as actor_id
| json field=_raw "actor.type"
| json field=_raw "severity" as severity
| json field=_raw "client.userAgent.os" as OS
| json field=_raw "client.userAgent.browser" as browser
| json field=_raw "client.device" as device
| json field=_raw "client.ipAddress" as client_ip
| json field=_raw "client.geographicalContext.country" as country
| json field=_raw "client.geographicalContext.state" as state
| json field=_raw "client.geographicalContext.city" as city
| json field=_raw "target[0].displayName" as okta_user_name
| json field=_raw "target[0].alternateId" as okta_user_id
| count by okta_user_id, actor, outcome_result, country, state