はじめに
どーもみなさんこんにちは。ねもてぃです。
Jamf Unlockというものがリリースされました。
新製品なのか?と思いきやJamf Connectの拡張機能のようだったのでさっそく試してみました!
Jamf Connectに関してはこちらをご参照ください。
2020年のJNUC(Jamf Nation User Conference)であった”Passwordless authentication with Jamf Connect“というセッションで紹介されていたものがついに実装された形だと思っています。
Jamf Unlockって?
一言で言うと、「Macのロック解除にiPhoneを使えるようになるiOSアプリケーション」です。
Jamf Unlockは、ユーザーがパスワードを使用せずにモバイルデバイスでMacのロックを解除できるようにするモバイルデバイスアプリです。Jamfロック解除、ユーザーは、ペアとMacとの信頼関係を確立するために使用され、そのデバイス上の身元証明(証明書)を作成したり、生成するセットアッププロセスを完了します。セットアップが完了すると、ユーザーは次のシナリオで代替認証方法としてアプリを簡単に使用できます。
・Macのロックを解除する
・システム環境設定で設定を変更するように求めるプロンプト
・コマンドを使用してroot権限で実行される sudo コマンド
IT管理者は、Jamf Proを使用して、マネージドアプリ構成を介して認証設定を構成し、組織内のユーザーにアプリを展開できます。
以上、公式ドキュメントより自動翻訳
これができるようになると、スクリーンセーバー後のロック解除もiPhoneがあればパスワードを入力することなく行うことができるようになります。(Touch IDやFace IDといった生体認証と組み合わせた場合)

Apple WatchやTouch ID搭載のMacでいいやん・・・って話もありますが、今回はちょっと置いておきます。
必要なもの
- Mac(macOS10.15.4以降)
- iPhone(iOS14.0以降の管理対象デバイス)
- Jamf Connect(Ver.2.4.0以降)
- Azure ADやOktaなどJamf Connectに対応したCloud IdP
- もろもろ配布用のMDM(ここではJamf Proとします)
利用環境
- MacBook Pro (13-inch, M1, 2020)
- macOS Big Sur 11.4
- iPhone 8 (iOS 14.6)
- Jamf Connect 2.4.0
- Okta
- Jamf Pro 10.29.2
準備
Jamf ConnectとOktaの統合に関しての説明は省きます。すでに統合が済んでいて、+αで設定する必要がある項目に関して記載していきます。
Jamf ConnectとOktaの統合に関してはこちらからご確認ください。
各種設定に関しては公式ドキュメントを参考に設定しています。
Oktaの設定
よし、ドキュメントみながら追加で設定していくぞ!ってやるとしれっと追加されているOkta側の設定を見落とすので最初に紹介しておきます。
- Oktaの管理コンソール > Application からJamf Connect用に作成したアプリケーションを開きます。(Jamf Unlock用に追加でアプリを作成しても良いですが今回はJamf Connectユーザー用に作成したアプリに追加設定しました。)
- Generalタブ > General SettingsのEditから編集モードにし、下の方にある「Sign-in redirect URIs」の”+ Add URI”を選択し、
jamfunlock://callback/auth
を追加し”Save”を押して保存します。

Okta側の設定は以上です。
Jamf Connectの設定
続いてJamf Connectの追加設定です。
Jamf Connectの設定内に、Jamf Unlockを有効にするためのUIを表示する設定が追加されています。
こちらは既存のJamf Connect用の構成プロファイルに追記せず、独立した構成プロファイルとして設定することもできるので今回はJamf Unlock用の設定のみを追加で作成しました。
追加する必要がある記述は以下のパラメータとなります。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Unlock</key> <dict> <key>EnableUnlock</key> <true/> <key>RequirePIN</key> <true/> </dict> </dict> </plist>
- Jamf Proから配布する場合は、コンピュータ > 構成プロファイル > アプリケーションとカスタム設定 > アップロード から
- 環境設定ドメイン:com.jamf.connect
- プロパティリスト:上記記述をコピペを設定して保存します。

アプリケーションとカスタム設定 > Jamfアプリケーション にもすでに追加されているようなのでそちらから設定する方法もありますがここでは割愛させていただきます。
Jamf Unlockの設定
Jamf Unlockの設定を行なっていきます。
「App Config(Appの構成)」を使用しますので必ずManaged Appとして配布する必要があります。
すでにApp StoreでリリースされているのでApple Business ManagerからJamf Unlockを検索し、ライセンスを購入(無償です)しておきます。
Jamf Pro上でJamf Unlockが同期されたらそちらから”Appの構成”を設定していきます。
Azure ADと連携させている場合はこちらから設定値を参照ください。
Oktaの場合は、
<dict> <key>com.jamf.config.idp.oidc.provider</key> <string>Okta</string> <key>com.jamf.config.idp.oidc.tenant</key> <string>tenant-name</string> <key>com.jamf.config.idp.oidc.client-id</key> <string>abcdqxanb4Rb4veu0h8</string> <key>com.jamf.config.idp.oidc.redirect-uri</key> <string>jamfunlock://callback/auth</string> </dict>
となっていますが、tenant-name
とabcdqxanb4Rb4veu0h8
の部分を自環境のものに置き換える必要があります。tenant-name
はhogehoge.okta.com
の場合、hogehoge
だけを記述します。abcdqxanb4Rb4veu0h8
の部分はOktaの設定の項で設定したJamf Connect用アプリケーションのClient IDと置き換えます。
<dict> <key>com.jamf.config.idp.oidc.provider</key> <string>Okta</string> <key>com.jamf.config.idp.oidc.tenant</key> <string>hogehoge</string> <key>com.jamf.config.idp.oidc.client-id</key> <string>abcdefg1234hijk5678</string> <key>com.jamf.config.idp.oidc.redirect-uri</key> <string>jamfunlock://callback/auth</string> </dict>
のような感じで2箇所変更します。必要最低限の設定は以上です。

必要最低限の設定は以上なのですが、私の場合はiPhone側の生体認証を強制させるパラメータとロゴ画像を変更するパラメータを追加しました。
<dict> <key>com.jamf.config.idp.oidc.provider</key> <string>Okta</string> <key>com.jamf.config.idp.oidc.tenant</key> <string>hogehoge</string> <key>com.jamf.config.idp.oidc.client-id</key> <string>abcdefg1234hijk5678</string> <key>com.jamf.config.idp.oidc.redirect-uri</key> <string>jamfunlock://callback/auth</string> <key>com.jamf.config.ui.logo.url</key> <string>画像のURLをここにいれてください</string> <key>com.jamf.config.biometrics.required</key> <true/> </dict>
com.jamf.config.ui.logo.url
というkeyに表示したい画像のURLを、iPhoneの生体認証を強制するcom.jamf.config.biometrics.required
というkeyを有効にするためにtrue
という値をを追加しています。

あとは認証に使用するiPhoneをScopeにいれ、Managed Distributionタブから「Volume Purchasing コンテンツを割り当て」にチェックをいれて保存します。
これでJamf Unlockの配布設定も完了しました。
動作確認
それでは実機での動作確認に移ります。
Jamf UnlockとJamf Connectをペアリング
まずiPhone側で配布されたJamf Unlockを開き、”Get Started”から初期設定を行います

「”Unlock”がサインインのために”okta.com”を使用しようとしています。」とでるので続けるを押します。

Oktaの認証画面が表示されるのでそのまま認証します。

認証が完了するとiPhone側にアプリのアクセス許可を与えるフローに移ります。生体認証もしくはパスコードの利用許可、Wi-Fi検索の利用許可、位置情報サービスの利用許可、カメラへのアクセス許可を求められます。








カメラのアクセス許可まで完了するとペアリングさせるためのQRコードを読み込む画面になります。Mac側のJamf ConnectメニューバーAppより、”Paired Devices”を選択します。

ペアリング画面が表示されるので”Pair new device”を選択します。


ここで表示されるQRコードをJamf Unlockで読み取ります
いくつか認証や許可を求められるので設定していきます。



ここまで設定できたらもう一度iPhoneに戻って設定の続きを道なりに行います。





ここまで表示されましたらペアリング設定は完了です。
Macのロックを解除してみる
それではMacのロック画面を確認してみます。

プレースホルダーテキスト(パスワードを入力するところ)が「PIN」という表示になっていることが確認できます。この状態でReturnキーを押すとJamf Unlockに通知が飛びます。

Jamf Unlockを開くと認証を求められるので認証します。



「Unlock authentication sent to Mac」がJamf Unlockに表示されると同時にMacのロック画面が解除されます。
システム環境設定の鍵を外してみる
システム環境設定 > セキュリティとプライバシー > 左下鍵マークをクリックし、解除してみます。


ターミナルでsudoを実行してみる
ターミナルからsudoコマンドを実行しようとすると通常パスワードが求められますが、「Enter PIN for ‘JamfUnlock’」と表示が変更されていることが確認できます。


注意事項と感想
ざっと触ってみた感じですが、正直なところ使い所に迷うなぁというのが感想です。と、いうのも、
- 30秒以内に認証要求を完了しなかった場合、通常通りローカルのパスワード入力になってしまう
- 管理者からJamf Unlockの利用をユーザーに強制することはできない
- FileVault2やJamf Connect Loginの認証には利用できないため結局パスワード入力は残ってしまう
といった注意しなければいけない点があるからです。
Jamf Connectのライセンスでそのまま使える追加機能ではありますが、実際に現場で展開するかと聞かれるとまだ時期尚早かな、といった印象でした。
おわりに
最後に落とすようなことを書きましたが、こんな感じでMacのロック解除や管理者権限の認証にiPhoneを利用できるのは面白いですね。iPhoneを開かなければならないのは手間ではありますが、パスワードを入力しなくて良い、というのはそれはそれで便利だと思います。まだまだこれからの機能だとは思うので今後のアップデートに期待ですね!それでは!