Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Custom device posture integration

最終更新 Markdown で表示Agent セットアップ

Cloudflare One では、アプリケーションにカスタムのデバイスポスチャチェックを適用できます。Cloudflare One Client のサービス間連携を設定し、サードパーティのエンドポイントプロバイダーでも自作ソリューションでも、任意の外部 API を定期的に呼び出します。呼び出されると、API は Cloudflare からデバイス識別情報を受け取り、0 から 100 の値を返す必要があります。返された値が合格か不合格かを判定するデバイスポスチャチェックを設定できます。たとえば、ポスチャ値が 60 より大きいデバイスのユーザーだけにアクセスを許可できます。

sequenceDiagram
    participant Cloudflare One Client
		participant Cloudflare Access
    participant External API
    Cloudflare One Client->>Cloudflare Access: Client ID と Secret
		Cloudflare Access->>External API: アプリケーショントークン
		Cloudflare One Client->>External API: ユーザーとデバイス ID の JSON
    External API-->>Cloudflare One Client: 0〜100 の結果の JSON

外部 API の要件

カスタムサービスプロバイダー連携は、次の仕様を満たす任意の API サービスで動作します。カスタムデバイスポスチャ連携 API の例は、Cloudflare Workers のサンプルコード を参照してください。

認証

Cloudflare One Client は、Cloudflare Access 経由で外部 API に認証します。ネットワークの設定ミスなどで Access を迂回するリクエストを拒否できるよう、外部 API は Cloudflare Access が発行する アプリケーショントークンを検証 してください。

外部 API に渡すデータ

Cloudflare は、設定した API エンドポイントに次のパラメーターを渡します。このデータでデバイスを識別し、ポスチャスコアを割り当てられます。一部のデバイスではすべての識別情報が揃わない場合があり、そのフィールドは空になります。1 リクエストあたり最大 1,000 台のデバイスが送られます。

フィールド 説明
device_id Cloudflare One Client が割り当てるデバイス UUID
email Cloudflare One Client の認証に使ったメールアドレス
serial_number デバイスのシリアル番号
mac_address デバイスの MAC アドレス
virtual_ipv4 デバイスの仮想 IPv4 アドレス
hostname デバイス名

リクエスト本文の例:

{
  "devices": {
    [
      {
        "device_id": "9ece5fab-7398-488a-a575-e25a9a3dec07",
        "email": "jdoe@mycompany.com",
        "serial_number": "jdR44P3d",
        "mac_address": "74:1d:3e:23:e0:fe",
        "virtual_ipv4": "100.96.0.10",
        "hostname": "string",
      },
      {...},
      {...}
    ]
  }
}

外部 API から期待するレスポンス

各 Cloudflare device_id に対して、API サービスはポスチャスコアと、任意でサードパーティのデバイス ID を返す必要があります。

フィールド 説明
s2s_id サードパーティのデバイス ID(ない場合は空文字)
score 0 から 100 の整数

レスポンス本文の例:

{
  "result": {
    "9ece5fab-7398-488a-a575-e25a9a3dec07": {
      "s2s_id": "",
      "score": 10
    },
    "device_id2": {...},
    "device_id3": {...}
  }
}

カスタムデバイスポスチャチェックを設定する

1. サービストークンを作成する

Cloudflare One Client は、Access Client ID と Access Client Secret を使って外部 API に安全に認証します。Access Client ID と Access Client Secret がまだない場合は、新しいサービストークンを作成 してください。

2. Access アプリケーションを作成する

次に、外部 API を Cloudflare Access の背後に置き、Cloudflare One Client がサービストークンで認証できるようにします。API エンドポイントを Access に追加するには:

  1. API エンドポイント用の セルフホストアプリケーションを作成 します。

  2. アプリケーションに次の Access ポリシーを追加します。ActionAllow ではなく Service Auth にしてください。

    アクション ルールタイプ セレクター
    Service Auth Include Service Token <TOKEN-NAME>

3. サービスプロバイダー連携を追加する

カスタムのサービス間連携を作成するには:

  1. Cloudflare ダッシュボードZero Trust > Integrations > Service providers を開きます。
  2. Add new を選びます。
  3. Custom service provider を選びます。
  4. プロバイダーの名前を入力します。この名前は、ダッシュボード全体でこの接続を参照するときに使われます。
  1. Access client IDAccess client secret に、外部 API の認証に使う Access サービストークンを入力します。
  2. Rest API URL に、Cloudflare がポスチャ情報を問い合わせる外部 API エンドポイントを入力します(例: https://api.example.com)。詳細は 外部 API の要件 を参照してください。
  3. Polling frequency で、Cloudflare One が外部 API に情報を問い合わせる間隔を選びます。
  4. Test and save を選択します。テストでは、指定した Access 資格情報で API URL に認証できるかを確認します。

次に、デバイスポスチャチェックを設定 し、ポスチャスコアが合格か不合格かを判定します。

4. ポスチャチェックを設定する

  1. Cloudflare ダッシュボードZero Trust > Reusable components > Posture checks > Service provider checks を開きます。
  2. Add a check を選びます。
  3. Custom service provider プロバイダーを選びます。
  4. ポスチャチェックの名前を任意で入力します。
  5. デバイスがポスチャチェックに合格するために必要な 属性 を設定します。
  6. Save を選びます。
  7. テストするには、Insight > Logs > Posture logs を開き、サービスプロバイダーのポスチャチェックが期待どおりの結果を返していることを確認します。

このポスチャチェックは、デバイスポスチャポリシー で使えます。

デバイスポスチャ属性

セレクター 説明
Score 外部 API が返すポスチャスコア 0 から 100

役に立ちましたか?