はじめに
どーもみなさんこんにちは。ねもてぃです。
今回はJamf Pro Ver.10.45.0 にて実装された「Google BeyondCorp Enterprise 統合」for iOS について見ていこうと思います。for macOSは2022年3月にリリースされたJamf Pro Ver.10.36.0にてすでに実装されており、iOSはまだ?いつくるの?と待ち侘びていたのですがようやく実装されました!!!
macOS編はTooさんのブログにて解説されているためそちらをご確認ください!(と、言ってもやることはmacOSもiOSもあまり変わらないですが)
なにができるようになったのか
これができると何ができるようになるかというと、Googleのコンテキストアウェアアクセスというデバイスの状態を見てリソースへのアクセスを許可/拒否といったコントロールをする機能を利用できるようになります。Azure ADでいう条件付きアクセス、Oktaでいうデバイストラストですね。今までこの機能を有効に利用するためにはデバイスをGoogleのMDMに登録する必要があったのですが、GoogleのMDMはiOSのAppConfigが利用できないなど痒いところに手が届かないものでした。この連携ができるようになることで、あくまで管理はJamf Proにぶら下げた上で利用できるようになったことは好ましく思います。
仕組みの理解
公式ドキュメントに仕組み等記載があるのでご参照ください。
- macOSの仕組み ※)Jamf Proドキュメント Google BeyondCorp Enterprise 統合より

- iOSの仕組み ※)Jamf Proドキュメント Google BeyondCorp Enterprise 統合より

大雑把に説明すると、
- Jamf Proと Google Admin Consoleを連携させる
- 対象がmacOSの場合はGoogle ChromeおよびEndpointVerification(拡張機能)を展開する、iOSの場合はSelf Serviceがインストールされていることを確認する
- Chrome(macOS)またはSelf Service(iOS)経由で特定されたデバイスとJamf Proから送られたコンプライアンス情報を合致させ、デバイスの準拠状態を判別する
- Googleのコンテキストアウェアアクセスによって制限された項目に対してアクセスを許可するかどうかを準拠状態をもとに制御できるようになる
と言った感じです。キモになるのはあくまでコンプライアンスに準拠しているかどうかを判別するのはJamf Pro側で、Google側はその送られてきた準拠情報をもとに制御を行う、といった点です。このあたりはAzure AD x Jamf Pro x iOSで条件付きアクセスを利用する場合の仕組みと一緒ですね。
必要なもの
ライセンスとか
- Jamf Proライセンス
- Google Workspace Enterpriseライセンス またはCloud Identity Premiumライセンス
デバイス要件とか
- macOS
- Google ChromeおよびEndpointVerification(拡張機能)がインストールされたmacOS
- iOS
- Self ServiceがインストールされているiOSまたはiPadOS
OSバージョン等は記載がないのでJamf Proに対応しているOSバージョンになると思います。
準備
基本的に公式ドキュメントに沿って設定すればOKです。
BeyondCorp Enterprise スマートグループの作成
Googleに情報を送るために対象となるデバイスグループとコンプライアンスに準拠しているかどうかという二つのグループを作成します。
- 適用可能なグループ
これはJamf ProからGoogleに準拠情報を送る対象となるグループになります。特に制限等を設けない場合はデフォルトで用意されている「All Managed Clients」を使用してもOKだと思います。が、iOSの場合、「All Managed iPhones」と「All Managed iPads」のようにグループが分かれてしまっているため、統合したグループを作るか「Self Serviceアプリがインストールされている」グループを作成すると良いと思います。

- コンプライアンスグループ
こちらが重要になります。どのような条件をもとにデバイスを「準拠している」とみなすかを個々で設定します。ここは各社の要件によって柔軟に設定できるポイントになりますので運用にあったものを設定してください。ここではとりあえず、
- macOS
- macOSバージョンが11以上
- System Integrity Protection(SIP)が有効化されている
- FileVaultによるディスクの暗号化がされている
- iOS
- iOSバージョンが15以上
- 脱獄(Jailbreak)されていない
- パスコードが設定されている
ということを条件としたグループを作成しています。


BeyondCorp エンタープライズ統合の有効化
続いてJamf ProとGoogleを繋いでいきます。
- Google Admin Console > デバイス > モバイルとエンドポイント > 設定 > サードパーティとの連携 と進み、セキュリティ パートナーと MDM パートナーを選択し、”管理”をクリックします。

- 「Jamf」の横にある”接続を開始”をクリックします。

- するとJamf Proと連携する際に必要なCustomer IDが発行されるので”Copy”しておきます。

- Jamf Pro管理コンソールに戻り、設定 > グローバル > beyondCorp Enterprise 統合 と進み、下記設定を入力します。
- 顧客 ID先ほどコピーしたCustomer IDを入力します。
- コンプライアンスグループコンプライアンスグループとして作成したSmart Computer Groupを指定します。
- 適用可能なグループ準拠情報を送る対象となるグループを指定します。ここでは「All Managed Clients」としています。
- 非アクティブにすることが許可されている期間コンピュータが最後にJamf Proにチェックインしてから、Google BeyondCorpでデバイスが「指定なし」と判定されるまでの日数を指定します。ここではいったんデフォルトの”120”のままにしています。

- ここまで設定ができたら右上のスイッチをONにし、接続を行います。
※ 「デバイスコンプライアンス統合が検出済み」と出ている場合は、Microsoft Azure AD条件付きアクセス用の「デバイスコンプライアンス」が有効になってしまっているため、OFFにする必要があります。つまり、同時には利用できないようです。
- 接続検証ステータス:成功 と、なっていれば正しく接続が確立されているかと思います。

デバイスの登録とコンテキストアウェアアクセスの設定
macOS側のあれこれは「Jamf ProとBeyondCorp Enterpriseを統合して会社のリソースへのアクセスを制御してみる」に沿って確認してもらえばOKだと思うので本記事ではiOSのみ確認していきます。
Self Serviceアプリからデバイスを登録する
- 登録対象のデバイスからSelf Serviceを起動します。起動すると「コンプライアンス」というカテゴリが表示されるようになったことが確認できます。

- コンプライアンスカテゴリを開くと、「Google BeyondCorp での登録」ボタンが表示されるようになっているため、「登録」を選択します。

- Googleアカウントの入力を求められるので、入力します。


- すると再度ポップアップ表示されるので道なりに進めると、「Jamf が Google アカウントへのアクセスをリクエストしています」と表示されるので”許可”します。

- 登録に成功すると「お客様は、現在、Google BeyondCorp に登録されています。」と表示されるので”OK”を押してデバイス側の設定は完了です。

GWS側で登録状況を確認する
- Googleの管理コンソールにアクセスし、デバイス > モバイルとエンドポイント > デバイス より登録したデバイスの情報を見てみると、「サードパーティのサービス」に「Jamf」が追加されていることが確認できます。

- トグルより詳細を開くと「コンプライアンスのステータス」が「準拠」となっていることが確認できます。

- 準拠していない場合はこちら

コンテキストアウェアアクセスの設定
それではJamfで収集したコンプライアンスのステータスを利用したコンテキストアウェアアクセスの設定をしてみます。
セキュリティ > アクセスとデータ管理 > コンテキストアウェアアクセス > アクセスレベル > アクセスレベルを作成 と進み、条件を設定します。
- 名前と説明は任意のものを設定
- 詳細タブに変更
- 条件式として下記を設定して保存
!has(device.vendors.Jamf) || device.vendors["Jamf"].is_compliant_device == true

Jamfが推奨しているドキュメント通りの条件式で設定すると、「デバイスベンダーがJamfではない」または「デバイスベンダーがJamfでコンプライアンスのステータスが準拠になっている」場合にアクセスOK、といった設定になります。そのためJamfに登録されていないデバイスやGoogleとの連携がされていないデバイスについてはアクセスができてしまいます。つまり、会社の管理外デバイス(BYODなど)からのアクセスができてしまうため、このままの条件式で本番展開するケースはほぼないように思います。そのため、
device.vendors["Jamf"].is_compliant_device == true
のように条件式を変更する必要がありますが、上記のみだとWindowsやAndroidなど他OSへも適用されてしまうため、別途設定を併せて考えなければなりません。このあたりは組織で実現したい設定次第でアクセスレベルを追加したり、組み合わせたりする必要がありますのでご注意ください。各アプリに複数のアクセスレベルを割り当てることができますが、「少なくとも1つの条件を満たす場合にアクセス権が付与」されるため、macOS/iOSはこのアクセスレベルを使用し、その他OSは別途アクセスレベルを作成、割り当てる形がいいかもしれません。

- アクセスレベルの割り当て に進み、設定を適用したい組織、アプリを選択し、画面上部にある”割り当て”を押します。

- 先ほど作成したアクセスレベルにチェックをいれ、”保存”します。

動作確認
準拠していないiPhoneからアクセスしてみる
Jamf Proで設定したiOSコンプライアンス準拠済みグループから外れた状態でアクセスしてみると下記のようにコンテキストアウェアアクセスによってブロックされたことが確認できます。
- アプリからのアクセス

- Webからのアクセス

- 追加のメッセージを設定することができるので管理者への連絡方法とかを書いておいてもいいかもしれません。

準拠したデバイスからアクセスしてみる
- アプリからのアクセス

- Webからのアクセス

当然アクセスできますね!よかった!!!
おわりに
ということで、Jamf Proに登録しているiOS/iPadOSデバイスからGoogleのコンテキストアウェアアクセスが利用できるようになりました。MicrosoftだけでなくGoogleとの連携部分もだいぶ強化されてきてますね!おかげでGoogleがベースになっている環境でもAppleデバイスをJamf Proで管理しつつ、アクセスコントロールができるようになりました。条件式を自分で記述しなければいけない、といったGUI的な制約はありますが、一つの選択肢としてありなのではないでしょうか。
それでは!!!