2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CloudflareAdvent Calendar 2022

Day 21

Cloudflare Zero Trust の Device UUID デバイスポスチャを Microsoft Intune を使って iOS に実装する

Last updated at Posted at 2023-05-26

デバイスポスチャとは

NISTによるゼロトラストの考え方④にあるように、要求する資産の状態によって動的にアクセスが決定されることが望ましいです。

image.png

そのためには、デバイスにエージェントを導入することでポリシー評価に使える選択肢が増え、ポリシーをより強固なものにできます。

例えば、Cloudflare WARP エージェント導入によって確認可能な属性のうちの一つに Device UUID があります。

image.png

Device UUID とは

iOS, Android, ChromeOS 向けにモバイルデバイス管理 (MDM) ソリューションでパラメータとして埋め込み利用可能なユニークなデバイス識別子です。

image.png
Cloudflare Zero Trust は、MDMファイルに提供されたデバイスUUIDに基づいてZero Trustルールを構築することができます。これらのルールを作成して、企業のデバイスから接続するユーザーだけがアプリケーションへのアクセスを許可されるようにすることができます。

例えば macOS では uuidgen コマンドにより、任意の UUID を生成可能です。

% uuidgen
EDB56A9E-060C-43CE-95AA-F1A1A76647CA

Microsoft Intune を使う場合

Microsoft Intune のようなモバイルデバイス管理 (MDM) ソリューションで、Device UUID を管理パラメータとして利用するには、MDM 構成ファイル内でパラメータ定義を共通化しつつも、デバイスごとにユニークな識別子として動的に付与される必要があります。

Microsoft Intune を使う場合には、{{deviceid}} を使って実現が可能です。

さらに、Intuneでは、プロパティ リストで次のトークンの種類がサポートされています。
{{userprincipalname}} — たとえば、 John@contoso.com
{{mail}}—たとえば、 John@contoso.com
{{partialupn}}—たとえば、 John
{{accountid}} — たとえば、 fc0dc142-71d8-4b12-bbea-bae2a8514c81
{{deviceid}} — たとえば、 b9841cd9-9843-405f-be28-b2265c59ef97
{{userid}} — たとえば、 3ec2c00f-b125-4519-acf0-302ac3761822
{{username}}—たとえば、 John Doe
{{serialnumber}} — たとえば、F4KN99ZUG5V2 (iOS/iPadOS デバイスの場合)
{{serialnumberlast4digits}} — たとえば、G5V2 (iOS/iPadOS デバイスの場合)
{{aaddeviceid}} — たとえば、 ab0dc123-45d6-7e89-aabb-cde0a1234b56
{{issupervised}} — たとえば、 True (iOS/iPadOS デバイスの場合)

実装手順

Cloudflare WARP の iOS アプリを Microsoft Intune に追加

こちらの手順に沿って進めます。

image.png

割り当てに関しては「Available with or without enrollment - Included - All users」のようにしておきます。

image.png

iOS デバイスのアプリ構成ポリシーを追加

こちらの手順に沿って進めます。

image.png

Cloudflare WARP アプリで構成可能なのパラメータドキュメントを参考にしつつ、以下のような XML コードを設定します。

  • Parameters · Cloudflare Zero Trust docs
  • unique_client_id{{deviceid}} としてください。
  • サービストークンでの認証を想定しているため、 auth_client_id, auth_client_secret を使いますが、こちらはあくまで任意です。

image.png

<dict>
    <key>organization</key>
    <string>YOUR_TEAM_NAME</string>
    <key>service_mode</key>
    <string>warp</string>
    <key>onboarding</key> 
    <false />
    <key>switch_locked</key> 
    <false />
    <key>auto_connect</key> 
    <integer>0</integer> 
    <key>unique_client_id</key>
    <string>{{deviceid}}</string>
    <key>auth_client_id</key>
    <string>xxxxx.access</string>
    <key>auth_client_secret</key>
    <string>xxxxx</string>
</dict>

割り当てに関しては「Included groups - All users」のようにしておきます。

image.png

Intune で iOS デバイスの管理設定と登録

こちらの手順を参照して進めます。

iOS デバイスに Microsoft Intune ポータルサイトがインストールでき、デバイス登録されると Intune 管理画面でも iOS デバイスの登録が確認できます。

{{deviceid}} は URL やハードウェア情報から b046d188-587c-4780-a4f4-af308b8483d2 と確認できます。

image.png

image.png

iOS デバイスに Cloudflare WARP アプリをインストール

Microsoft Intune ポータルサイトから、Cloudflare WARP アプリをインストールします。

すると、iOS デバイスのアプリ構成ポリシーが適用され、

unique_client_idb046d188-587c-4780-a4f4-af308b8483d2 と確認できます。

image.png

Cloudflare Zero Trust で Device UUID リストを作成

Microsoft Intune の画面から Device ID を CSV で Export します。

image.png

image.png

Cloudflare Zero Trust にアップロードする際には、以下のような形式にします。

intune_device_ids.csv
b046d188-587c-4780-a4f4-af308b8483d2
4AAB72DD-DB05-4F2D-8754-815B17B43123
...

以下の手順で Cloudflare Zero Trust で Device UUID リストを作成します。

image.png

image.png

Cloudflare Zero Trust で Device UUID デバイスポスチャチェックを作成

以下の手順で Device UUID デバイスポスチャチェックを作成します。

image.png

image.png

確認

デバイス情報

以下のように Device UUID デバイスポスチャチェックが PASSED になっていることが確認できます。

image.png
image.png

ポスチャログ

以下のように確認できます。

image.png
image.png

デバイスポスチャに関する留意点

  • デフォルトでは、WARPクライアントは5分ごとにデバイスの状態変化をポーリングします。何らかの理由で新しい姿勢結果がCloudflareエッジ上で更新されない場合、前回の結果は24時間有効です。ポーリング頻度を変更するには、APIを使用してスケジュールパラメーターを更新してください。
  • デフォルトでは、ポスチャチェックの結果は新しいデータによって上書きされるまで有効です。APIを使用して有効期限を指定することができます。ポーリング頻度よりも長い有効期間を設定することをお勧めします。
  • アクセスは、姿勢チェックのポーリング頻度と同じ速度でデバイスの姿勢変更を検出します。
  • ゲートウェイはすべてのリクエストに対してネットワークおよびHTTPポリシーを評価するため、ポスチャ結果のローカルキャッシュを5分ごとに更新します。そのため、ゲートウェイポリシーは追加の5分間遅れが発生します。例えば、10分間隔でポーリング頻度を設定した場合、デバイス上での姿勢変更を検出するまで最大15分かかる可能性があります。
export ACCOUNT_ID='YOUR_ACCOUNT_ID'

curl -s --request GET \
  --url https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/devices/posture \
  --header 'Content-Type: application/json' \
  -H "X-Auth-Email: $EMAIL" \
  -H "X-Auth-Key: $APIKEY" | jq
result.json
{
      "input": {
        "id": "1b6f414f-797e-4dbe-8c22-81aaf19e94ea"
      },
      "match": [
        {
          "platform": "ios"
        }
      ],
      "schedule": "5m",
      "id": "66249458-a588-46dd-b270-3dbe170c9df3",
      "type": "unique_client_id",
      "description": "",
      "name": "Intune Device ID Check",
      "expiration": null
    },
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?