概要
Okta は、正規化されたユーザーライフサイクル、認証、MFA、管理アクティビティのデータを提供できます。確認済みの例は次のとおりです。account.locked— アカウントのロックmfa.factor.activated— 追加の MFA 要素の有効化auth.login.failed— ログインの失敗
/api/v1/users)とシステムログ(/api/v1/logs)という同じ 2 つのストリームを読み取ります。詳細は連携データがシグナルになる仕組みを参照してください。
接続方法の選択
どちらの方法も必要なアクセス権は同じです。したがって、選択の基準は認証情報の取り扱いであり、プラットフォームが読み取れる内容ではありません。
オプション A — API トークン (SSWS)
推奨。Living Security に必要な情報
前提条件
- サービスアカウントユーザーの作成、管理者ロールの割り当て、API トークンの作成を行うには、Okta の Super Administrator である必要があります。
1
トークンを所有するユーザーを作成する
Okta の API トークンは、作成したユーザーの権限を引き継ぎ、そのユーザーが無効化されると使用できなくなります。担当者の変更があっても接続が維持されるよう、個人の管理者アカウントではなく、専用のサービスアカウントを作成してください。
- 管理コンソールで、Directory → 人 に移動します。
- Add person をクリックし、
svc-livingsecurity@yourcompany.comなどのユーザーを作成します。 - アカウントを有効化します。
2
読み取り専用管理者ロールを割り当てる
プラットフォームは読み取りのみを行います。読み取り以上の権限を付与すると、トークンに使用されない権限を与えることになります。
- セキュリティ → Administrators に移動します。
- Add administrator をクリックし、前のステップで作成したユーザーを選択します。
- Read-only Administrator ロールを割り当てます。
- 保存します。
管理者ロールがない場合、Okta Management API の呼び出しは
200 OK で成功しますが、空のリストが返されます。ロールが不足していることを知らせる 403 はなく、ストリームは単に空のままとなります。3
API トークンを作成する
- ステップ 1 で作成したサービスアカウントユーザーとして管理コンソールにサインインします。トークンは、作成したアカウントの権限を引き継ぎます。
- セキュリティ → API に移動し、Tokens タブを開きます。
- Create token をクリックし、
Living Security Platformなどの名前を付けて、Create token をクリックします。 - トークンの値をこの時点でコピーしてください。Okta が表示するのは一度だけで、再表示されることはありません。
上記のアドレス一覧が必要となるのは、Okta 組織でネットワークゾーンによる API アクセス制限を行っている場合のみです。ほとんどの組織では該当しません。
4
テナントのサブドメインを確認する
管理コンソールの URL は
https://acme-admin.okta.com のような形式です。テナントのサブドメインは acme です。-admin サフィックス、.okta.com、https:// は含めません。トラブルシューティング
接続はできているが、すべてのストリームが空である
接続はできているが、すべてのストリームが空である
トークンの所有者に管理者ロールがありません。サービスアカウントに Read-only Administrator を割り当ててください(ステップ 2)。ロールがない場合、API はエラーではなく、空のリストとともに
200 OK を返します。担当者の変更後に同期が失敗する
担当者の変更後に同期が失敗する
トークンを作成したユーザーが無効化されると、そのトークンは使用できなくなります。このため、トークンは個人ではなくサービスアカウントに所属させる必要があります。
オプション B — OAuth 2.0 サービスアプリケーション
セキュリティポリシーで長期間有効な API トークンが許可されていない場合は、この方法を使用します。トークンの代わりに、クライアント ID と、お客様が所有する RSA 鍵ペアを使用します。プラットフォームでは、設定 → 連携 → カタログ にある Okta (OAuth 2.0) タイルが該当します。 クライアント認証情報 (Client Credentials) で Okta に認証するには、次の情報が必要です。- クライアント ID - Okta API Services アプリケーションの一意の識別子。
- 秘密鍵 (JWK) - JSON Web Key 形式の RSA 秘密鍵。対応する公開鍵は Okta アプリケーションに登録されている必要があります。
- Okta ドメイン - 完全なホスト名ではなく、Okta テナントのサブドメインのみ(例:
dev-12345678)。 - スコープ - Okta Management API のスコープをスペースで区切った一覧(例:
okta.users.read okta.logs.read)。
private_key_jwt 認証を使用して Okta で API Services アプリケーションを作成する手順を説明します。
前提条件:
- Okta アカウントが必要です。無料の開発者アカウントは developer.okta.com からサインアップできます。
ステップ 1: Okta API Services アプリケーションを作成する
- Okta 管理コンソールにログインします。
- 左側のサイドバーで、Applications > Applications に移動します。
- Create App Integration をクリックします。
- サインイン方法として API Services を選択し、次 をクリックします。
- アプリケーションに名前を付けて、保存 をクリックします。
- アプリケーションの General タブで クライアント ID を確認します。最後のステップで必要になります。
- Client authentication を Public key / Private key に設定します。
okta.*スコープは、この認証方法でのみサポートされています。
- Proof of possession (DPoP) を無効にします。サポートされていません。
アプリケーションは API Services として作成する必要があります。
ステップ 2: RSA 鍵ペアを生成して登録する
Okta の鍵生成機能を使用する
Okta では、管理コンソール上で RSA 鍵ペアを直接生成できます。- 管理コンソールで、API Services アプリケーションを開きます。
- General タブに移動し、PUBLIC KEYS セクションまでスクロールします。
- Add Key をクリックし、Generate new key を選択します。
- 保存 をクリックします。Okta が鍵ペアを生成し、秘密鍵 (JWK) を一度だけ表示します。
- 秘密鍵の JSON をすぐにコピーして保存してください。再表示されることはありません。
- 公開鍵は自動的にアプリケーションに登録されます。
ダイアログを閉じる前に、秘密 JWK をコピーしてください。最後のステップで、Living Security Platform の 秘密鍵 フィールドに貼り付けます。
独自の鍵を作成する
Okta は API Services アプリでprivate_key_jwt を使用します。RSA 鍵ペアを生成し、公開 JWK を Okta に登録して、秘密 JWK を Living Security Platform に提供します。
次の Node.js スクリプト(Node.js 18 以上が必要)を使用して、秘密 JWK を生成します。
- 管理コンソールで、API Services アプリケーションを開きます。
- General タブに移動し、PUBLIC KEYS セクションまでスクロールします。
- Add Key をクリックし、上記のスクリプトが出力した公開 JWK の JSON を貼り付けて、保存 をクリックします。
Living Security Platform に貼り付けるのは秘密 JWK です。これにはすべての鍵素材(
d、p、q、dp、dq、qi)と kid が含まれます。機密として厳重に管理してください。ステップ 3: Okta ドメインを確認する
Okta テナントのサブドメインのみを入力します。.okta.com より前の部分です。
- 管理コンソールでは、ブラウザーのアドレスバーに
https://dev-12345678-admin.okta.comのような URL が表示されます。 - Okta ドメイン はサブドメインのみ(例:
dev-12345678)であり、dev-12345678.okta.comではありません。 - または、管理コンソールの 設定 > Account で Okta ドメインを確認し、そのサブドメイン部分を使用します。
ステップ 4: アプリケーションに API スコープを付与する
Okta では、すべてのトークンリクエストに少なくとも 1 つのスコープが必要です。アプリケーションが特定のスコープをリクエストするには、事前にそれらを付与しておく必要があります。- 管理コンソールで、Applications > Applications に移動し、対象のアプリケーションを開きます。
- Okta API Scopes タブをクリックします。
- 連携に必要なスコープ(
okta.users.readとokta.logs.read)を付与します。
ステップ 5: アプリケーションに管理者ロールを割り当てる
スコープの付与だけでは不十分です。アプリケーションに管理者ロールがない場合、Okta Management API のエンドポイント(例:/api/v1/users)は、何も通知せずに空の 200 [] レスポンスを返します。少なくとも Read-Only Administrator を割り当てる必要があります。
- 管理コンソールで、セキュリティ > Administrators に移動します(または、Applications > Applications > 対象のアプリ > Admin roles に移動します)。
- Add administrator assignment をクリックし、API Services アプリケーションを選択します。
- Read-Only Administrator ロール(または、必要なスコープに応じてそれ以上のロール)を割り当てます。
- 保存 をクリックします。
管理者ロールがない場合、API 呼び出しは
200 OK で成功しますが、結果は空となり、問題を示す 403 エラーも表示されません。ステップ 6: Living Security Platform に認証情報を入力する
クライアント ID、秘密鍵 (JWK)、Okta ドメイン、スコープが揃ったら、次の手順を実行します。- Okta (Client Credentials) で認証するためのフォームを開きます。
- クライアント ID を入力します。
- 秘密鍵 (JWK) を貼り付けます。上記のスクリプトで出力された JSON オブジェクト全体を、1 行でも整形された形式でも構いません。
- Okta ドメイン を、テナントのサブドメインのみで入力します(例:
dev-12345678)。 - スコープ をスペース区切りの一覧で入力します(例:
okta.users.read okta.logs.read)。 - フォームを送信すると、認証が完了します。
本ドキュメントの一部は、Elastic License 2.0 に基づいて使用されている Nango のドキュメントを翻案したものです。

