This product is not supported for your selected Datadog site. ().

概要

Cross-App Access (XAA) を使用すると、組織がすでに Okta で承認したユーザーに代わって AI エージェントが Datadog API を呼び出すことができます。これがない場合、すべてのユーザーがブラウザの同意画面を通じて個別にエージェントを承認する必要があります。これを使用すると、Okta 管理者がそのアクセス権を一元的に一度付与するだけで済み、ユーザーはユーザーごとの同意ステップをスキップできます。

Okta は、ID-JAG (Identity Assertion JWT Authorization Grant) と呼ばれる短期間のトークンをエージェントに発行します。エージェントはこのトークンを Datadog に提示し、Datadog はそれを、呼び出しを開始したユーザーが所有するアクセストークンと交換します。Okta がトークンを発行するため、管理者は Okta から、AI エージェントの Datadog アクセス権の付与/取り消しを行います。

プレビュー版の Cross-App Access でサポートされるのは、ID プロバイダーは Okta のみ、エージェントは Claude のみです。

交換する値

セットアップでは、Datadog と Okta の間で双方向に値が移動されます。そのうち 2 つは、異なるシステムを指定する発行者 URL であるため、それぞれを正しい場所に入力したことを確認してください。

値方向入力場所
Datadog 組織の UUIDDatadog から Okta へOkta の Datadog アプリケーション: [Resource Server] (リソースサーバー) タブ > [Audience/tenant ID] (オーディエンス/テナント ID)
エージェントのクライアント IDDatadog から Okta へOkta AI Agent: [Resource Connection] (リソースコネクション) > [Client ID at resource] (リソースのクライアント ID)
Datadog リソース URL および発行者 URLDatadog から Okta へOkta の Datadog アプリケーション: [Resource Server] タブ > [Resource URL] (リソース URL) および [Issuer URL] (発行者 URL)
Okta テナント発行者 URLOkta から Datadog へDatadog: Organization Settings > Cross-App Access、[Issuer URL]

前提条件

  • 組織で Datadog への SAML シングルサインオンに Okta を使用している。Cross-App Access は既存の SAML コネクションを通じてユーザーを解決するため、SAML コネクションがないと機能しません。SAML シングルサインオンを構成するを参照してください。
  • Claude を使用する各ユーザーが Datadog 組織に存在し、Okta で Claude アプリケーションと Datadog アプリケーションの両方に割り当てられている。
  • Datadog で org_management 権限を持っている。UI ではなく API を通じて Cross-App Access を構成するには、例で DD_TOKEN として使用される個人用アクセストークン (PAT) も必要です。
  • Okta テナントで AI Agent Identity Assertion および Agent to Agent Connections の機能が有効になっており、Okta Super Administrator アクセス権を持っている。

Datadog で Cross-App Access を構成する

Okta の手順の前に、Datadog の手順を完了してください。Datadog は、Cross-App Access を有効にしていない組織のトークンを拒否するため、先に Okta を構成すると、この手順を完了するまでエラーが発生します。

Organization Settings > Cross-App Access に移動します。

有効のステータス、[Issuer URL] フィールド、[Org UUID] (組織の UUID)、および [Registered client IDs] (登録済みクライアント ID) テーブルが表示されている、[Organization Settings] (組織設定) の [Cross-App Access] ページ

Cross-App Access を有効にする

[Enable] (有効化) をクリックします。これは組織全体に適用されます。後で Cross-App Access を無効にするには、[Disable] (無効化) をクリックします。

Okta 発行者 URL を設定する

Issuer URL フィールドに、Okta テナントの発行者 URL を入力し、[Save] (保存) をクリックします。Datadog はこの値からトークン署名キーの場所を導出するため、正確である必要があります。

発行者 URL は以下のすべてを満たしている必要があります。満たしていない場合、Datadog で拒否されます。

  • https を使用する。
  • .okta.com、.oktapreview.com、または .okta-emea.com のサブドメインを使用する。Datadog は Apex ドメインを拒否するため、example.okta.com は使用できますが、okta.com は使用できません。

発行者の設定を解除するには [Remove] (削除) をクリックします。トークンを削除すると、Datadog はその受け入れを停止します。

組織の UUID をコピーする

[Org UUID] フィールドの値をコピーします。Okta はこの値を aud_tenant クレームとして送信します。これは、複数の組織が 1 つの Okta テナントを共有している場合に、トークンがどの組織を対象としているかを Datadog に伝えます。Okta が他の場所で要求する会社 ID とは異なります。

エージェントのクライアント ID をコピーする

[Registered client IDs] テーブルには、Datadog が Cross-App Access 用にサポートしているすべてのエージェントと、それぞれが使用する OAuth クライアント ID が記載されています。設定するエージェントのクライアント ID をコピーします。それを後に Okta で [Client ID at resource] として入力します。

Datadog はサポート対象のエージェントをこのテーブルに追加していくため、他のソースのクライアント ID を再利用せずにこのテーブルを確認してください。

特定の行の [Manage app] (アプリを管理) をクリックすると、そのエージェントのスコープ設定が開きます。Datadog でスコープを制御するを参照してください。

これらの呼び出しを使用して、セットアップをスクリプト化します。これらは、[Enable] ボタンおよび [Issuer URL] フィールドと同じ処理を行います。どちらも、org_management 権限を持つ PAT が必要です。

mcp_cross_app_access_enabled 組織構成を true に設定して、Cross-App Access を有効にします。後でオフにするには、"value": false を指定して同じリクエストを送信します。

curl -X PATCH "<span class="js-region-param region-param" data-region-param="dd_api"></span>/api/v2/org_configs/mcp_cross_app_access_enabled" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${DD_TOKEN}" \
  -d '{
    "data": {
      "type": "org_configs",
      "attributes": {
        "value": true
      }
    }
  }'

Okta 発行者 URL を設定します。同じ検証ルールが適用され、ルールに違反する値は 400 を返します。空の文字列を送信すると、発行者の設定が解除されます。

curl -X PUT "<span class="js-region-param region-param" data-region-param="dd_api"></span>/api/v2/login/org_configs/mcp_cross_app_access_issuer_url" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${DD_TOKEN}" \
  -d '{
    "data": {
      "type": "org_config",
      "attributes": {
        "issuer_url": "https://<YOUR_OKTA_SUBDOMAIN>.okta.com"
      }
    }
  }'

API から組織の UUID を読み取るには、ターゲット組織のアクティブなセッションを使用して /api/v2/current_user を呼び出します。UUID は、included 配列内の orgs エントリの id です。

Okta でのセットアップを完了する

Okta Admin Console で Super Administrator としてセットアップを完了します。このセクションでは、Datadog が想定する値と、それに対応する Okta のフィールドを一覧表示します。詳細については、Okta の Cross-App Access に関するドキュメントを参照してください。

Datadog アプリケーションをリソースサーバーとして構成する

Datadog アプリケーションで [Resource Server] タブを開き、[Cross-app access (XAA)] を有効にします。以下のフィールドを設定します。

以下の値は、選択した Datadog サイト () と一致します。別のサイトの値を確認するには、このページの右側にある [Datadog Site] セレクターを使用してください。

Okta フィールド値
Resource URL
Issuer URL
Audience/tenant IDDatadog 組織の UUID

発行者 URL は、トークンエンドポイントではなく、Datadog 認可サーバーを識別します。Okta は、発行するトークンの aud クレームにこれを書き込みます。Datadog は、そのクレームが一致する場合にのみトークンを受け入れます。

注: 後から発行者 URL を変更するには、Claude を Datadog アプリケーションに接続するで説明されているリソースコネクションを削除して再作成する必要があります。

Claude を AI Agent として登録する

Okta で Claude の AI Agent エントリを作成し、Anthropic とキーを交換します。Okta が受信するリクエストには Anthropic が署名するため、Okta でトークンを発行する前に Anthropic の公開キーが必要です。

  1. Claude の AI Agent エントリを作成します。
  2. エージェントに所有者を割り当てます。Okta で有効化するには所有者が必要です。
  3. Okta が生成した AI Agent ID を Anthropic に送信します。
  4. Anthropic から返された公開キーを、[Credentials] (資格情報) タブの AI Agent エントリに追加します。

公開キーが設定されるまでは、他のすべての値が正しくてもトークン交換は失敗します。この交換は手動で行う必要があるため、早めに開始してください。

Claude を Datadog アプリケーションに接続する

Claude AI Agent で、委任された呼び出し元として Claude SAML アプリケーションを追加し、このエージェントを Datadog アプリケーションに接続します。

  1. [Delegations] (委任) タブで、Claude SAML アプリケーションを呼び出し元として追加します。

  2. [Resource connections] タブで、リソースコネクションを追加します。リソースタイプとして [Application] (アプリケーション) を選択し、Datadog アプリケーションを選択します。

  3. 以下のフィールドを設定します。

    Okta フィールド値
    Client ID at resource[Registered client IDs]
    Scope Condition (スコープの条件)Allow all (すべて許可) (唯一サポートされている値)。Datadog でスコープを制御する
  4. [Actions] (アクション) メニューからエージェントをアクティブ化します。

Datadog でスコープを制御する

[Allow all] は、Cross-App Access でサポートされている唯一の [Scope Condition] です。これを Okta で設定してから、Claude がアクセスできる範囲を Datadog で制限します。

Okta はスコープをフィルタリングしません。[Allow all] を使用すると、Okta は Claude が要求したものをすべてトークンにコピーするため、Datadog が強制ポイントとなります。

Okta にスコープのリストを入力しないでください。Okta はリスト外のスコープを含むトークンリクエストをすべて拒否するため、インテグレーションがより狭いアクセスにフォールバックすることなくエラーで失敗します。

Claude に許可するスコープを設定するには、次の手順を実行します。

  1. Organization Settings > Mobile and Third-Party Access に移動します。[Cross-App Access] ページの [Registered client IDs] テーブルで、Claude の横にある [Manage app] をクリックすることもできます。
  2. Claude アプリケーションを選択し、[Scopes] (スコープ) タブを選択します。
  3. 各スコープの [Allowed] (許可) チェックボックスを使用して、Claude のアクセス範囲を制御します。
  4. [Enable] をクリックして保存します。

スコープを追加または削除すると、組織内のすべてのユーザーに影響します。また、スコープを削除すると、そのスコープに依存する既存の認可が取り消されます。アプリケーションスコープの管理を参照してください。

Datadog で許可されていないスコープは、トークンが何を要求しても付与されることはありません。

Claude に Datadog をコネクタとして追加する

  1. Claude で、任意のプロンプトの下部にある + アイコンをクリックし、次に [Add Connector] (コネクタを追加) をクリックします。
  2. ディレクトリで Datadog を見つけて、コネクタを有効にします。
  3. プロンプトが表示されたら、サインインフローを完了します。

カスタムコネクタではなく、ディレクトリの Datadog コネクタを使用してください。

構成を検証する

両方の Okta アプリケーションに割り当てられたユーザーとして Claude にサインインし、Datadog を呼び出すリクエストを実行します。呼び出しが成功すれば、Okta がトークンを発行し、Datadog がそれを受け入れ、Datadog がユーザーを解決するという完全なパスが確認されます。

Cross-App Access を有効にする前にユーザーがサインインしていた場合は、そのユーザーに、Claude からサインアウトして Okta 経由で再度サインインするように伝えます。以前に確立されたセッションには、エージェントが必要とする ID トークンが不足しています。

参考資料