はじめに
どーもみなさんこんにちは。ねもてぃです。
Jamf Connect Ver.2が2020年9月終わりにリリースされましたね。Ver.1と比べて様々な変更があったので検証中の方も多いのではないでしょうか。
今回は「Jamf ConnectとOktaについての日本語記事がすくねーぞ!!!」ってことらしいので、Jamf Connect Ver.2とOktaを連携させてMacにOktaアカウントでログインする方法について書きます。
まずは、連携させるとどのような状態にできるのかの動画をご確認ください。
動画
実装するとこんな感じでMacのログイン画面がJamf Connectの画面に変更され、Oktaのアカウントでログインできるようになります。ロゴやバックグラウンドのカスタマイズができるのがいいですね。というかしないとちょっと素っ気ないです。笑
また、Jamf Connectと自動デバイス登録(旧:DEP)と組み合わせることで、動画のように初回起動時からユーザーがログインできるようにすることが可能です。(俗にいうゼロタッチキッティングみたいな)
Jamf Connectとは
Jamf Connectは大きく分けて二つのアプリケシーションから構成されます。
- Jamf Connect Login アプリ(ログイン時に表示されるアプリ)
- Jamf Connect メニューバーアプリ(ログイン後にメニューバーに表示されるアプリ)
以下、Jamf Connect 管理者ガイドより引用させていただきます。
ログインウィンドウ
ログインウィンドウは、デフォルトの macOS ログインプロセスとログインウィンドウ UI を変更する認証プラグインです。
ログインウィンドウを使用すると、コンピュータ上で以下のタスクを行うことができます:・クラウドアイデンティプロバイダ (IdP) で Mac に対する認証を有効にします
・多要素認証 (MFA) の要件を実施します
・Apple プロビジョニングワークフロー中にローカルアカウントを作成します
・FileVault を有効にします
・ユーザのネットワークアカウントと既存のローカルアカウントをリンクします
・モバイルアカウントをローカルアカウントへ変換します (モバイル化の解除)
・カスタムブランディングを表示する
その名の通り、Macのログイン画面を乗っ取ってIdPの認証を行うようなイメージです。
そう、IdPの認証と組み合わせることができるのでMacのログインに多要素認証(MFA)を追加することができます。
あと、個人的に好きなポイントはFileVaultを有効にする機能がついているところですね。
構成プロファイルやスクリプトでFileVaultをONにする場合、どうしてもユーザーのログインログアウトプロセスが必要になってきますが、Jamf Connect Loginの機能でONにする場合、道なりにONになってくれるので余計なプロセスを減らすことができます。
メニューバーApp
メニューバー App を使用することで、ユーザがネットワークとローカルのパスワードを簡単に管理することができます。
メニューバー App を使用すると、以下のタスクを行うことができます:・ローカルアカウントとネットワークアカウントのパスワードを常に同期させる
・Kerberos レルムが指定されている場合、Kerberos チケットを取得する
注: Kerberos 認証の際、コンピュータはオンプレミスの Active Directory ドメインコントローラに接続する必要があります。
・キーチェーン項目のパスワードをネットワークアカウントと同期する
・スクリプトを自動的にまたは指定されたスケジュールで実行する
・ファイル共有へのアクセスを構成する
・カスタムアクションを構成する
・カスタムブランディングを表示する
こちらはデスクトップに入った後、IdPのパスワードとローカルアカウントのパスワードを同期してくれるメニューバー常駐型アプリケーションとなります。
多分その機能以外はあまり使いません。多分。
設定次第ですがIdPのパスワードを変更するとデスクトップにアラートが出て、ローカルアカウントのパスワード更新のためにパスワード入力しろ(#゚Д゚)ゴルァ!!ってなります。
あとはメニューバーからSelf Service(Jamf Proの機能で社内用App Store的なやつ)を開くことができたり、社内ポータルやヘルプサイトへのリンクを表示することができます。
んー、困ったらここ開いてね、的な運用ができるかもしれないけどあんまり使うことはなさそうな予感。
必要なもの
- Mac
- Okta
- Jamf Connect
- もろもろ配布用のMDM(ここではJamf Proとします)
利用環境
- macOS Catalina 10.15.7(一応、Big Surも試し済み)
- Okta
- Jamf Connect 2.1.1
- Jamf Pro 10.26.0
準備
大きく分けると必要な設定はこんな感じです。
- Oktaの設定
- Jamf Connectの設定(今回はJamf Connect Configuration.appを使って作成します)
- Jamf Proの設定(配布設定)
じゃーそんな感じでやっていきましょー。
Oktaの設定
Okta で Jamf Connect用Appを作る
まずはOktaにJamf Connect用のアプリケーションを追加していきます。
公式マニュアルだと、
Jamf Connect では、Okta の認証 API を使って Okta ユーザをドメインに直接認証するため、Okta の認証コンソールで認証とパスワードの同期を有効化するタスクを実行する必要はありません。
と書いてあるのですが、管理者権限を与えるユーザーの指定や、MFAを有効にするためにはアプリの作成が必要になるため、基本的には設定するものだと思った方がいいような気がします。
と、いうことで下記手順でアプリケーションを、
「2つ」
作成します。
なぜ「2つ」作成するのかというと、
- 全ユーザーに対するアプリケーション
- 管理者権限を与えるユーザーに対するアプリケーション
の2つが必要になるからです。
この2つのアプリケーション自体の設定は全く同じでOKです。
- Oktaの管理画面にアクセスします。
- Applicationタブ > 左上”Add Application“を選択します。
- 右上”Create New App“を選択します。
- 下記設定を行なって保存(Create)します。
Platform:Native App
Sign on method:OpenID Connect - 次の画面でさらに設定を追加して、保存(Save)します。
Application name:Jamf Connect Login all userなど
Application logo:任意でOKです
Login redirect URIs:https://127.0.0.1/jamfconnect - 次の画面のGeneral Settingsの右側”Edit“を選択し、次の項目にチェック☑︎を入れて保存(Save)します。
Allowed grant types:☑︎ Implicit (Hybrid)
☑︎ Allow ID Token with implicit grant type
☑︎ Allow Access Token with implicit grant type
アプリ自体の設定はこんな感じになります。
同様の作業をもう一度繰り返し、「2つ」アプリケーションを作成します。
※)今回は、全ユーザー用を”Jamf Connect Login all user”、管理者権限を与えるユーザー用を”Jamf Connect Login admin user”として作成しています。
作成したJamf Connect用アプリケーションにユーザーを割り当てる
アプリケーションを2つ作成できたところでユーザーの割り当てを行なっていきます。
- アプリケーションの一覧から、作成したアプリケーションの名前を選択し、”Assignments“タブ をクリックします。
- 左上側の”Assign“からJamf Connectを利用させたいユーザー、またはグループを全て追加(Assign)して”Done“をクリックします。
- ユーザーの一覧のところに対象のユーザー、またはグループが表示されていればOKです。
- 全ユーザー用
同様に、管理者権限を与えるユーザー用に作成したアプリケーションには、管理者権限を与えるユーザー、またはグループを追加します。
- 管理者権限を与えるユーザー用
こちらは一例ですが、このように設定することで、
- “nemo testadmin”でログインした場合→管理者権限ありユーザー
- “nemo test”でログインした場合→管理者権限なしユーザー
でログインできるようになります。
以上で、Okta側の設定は完了です。
Jamf Connectの設定をする際に作成したアプリケーションの”Client ID“が必要になります。
“作成したアプリケーション” > “General” > “Client Credentials”の欄にある ” Client ID” を、控えておくか、確認できる状態にしておくと良いです。
Jamf Connectの設定
Jamf Connectの設定方法はいくつかあるのですが、今回はJamf Connectに付属する Jamf Connect Configuration.app を利用して作成します。
Jamf Connect Configurationを使って設定ファイルを作成する
購入、もしくはトライアルを申請することで入手できるJamf Connect.dmgの中にJamf Connect Configuration.appが同梱されているのでApplicationフォルダ等に移動して起動します。
全ての設定値を解説するのはしんどいので最低限必要な設定と個人的に使いそうな項目に絞って設定をしていきます。
“アイデンティティプロバイダ”タブ
- アイデンティティプロバイダ: Okta
- 認証サーバ: xxx.okta.com
※)契約しているoktaのドメインを入力してください
ここまでの設定が最低限必要な設定となります。
え?これだけって?そうなんです。Oktaの認証APIを利用してログインをするだけであればこの2つを設定するだけで使えるようにはなります。
ただ、前述しましたが管理者権限のコントロールなどその他の設定をしないとできない機能もあるので設定をしていきます。
- 管理クライアント ID: 先ほどOkta側に作成した管理者権限を与えるユーザー向けアプリケーションのClient IDをコピペします
- アクセスクライアント ID: 管理クライアント IDと同様に、全ユーザー向けに作成したアプリケーションのClient IDをコピペします
- OIDC Redirect URI: https://127.0.0.1/jamfconnect
これらを設定して”アイデンティティプロバイダ”タブは完了です。
一度ウィンドウの右上にある”テスト“ボタンから”Okta“を選択して、Oktaとの接続テストをしておきましょう。
“Login”タブ
上記の設定だけで使えるようにはなるんですが、こちらの設定が運用のキモというか、いろいろな思想に基づいて取捨選択が必要になるところだと思います。
< ユーザ作成 >
初期パスワード: ONにするとIdpのパスワードとは別にローカルアカウントのパスワードを作成できるようになります。(メニューバーAppで結局同期を促されますけど。)
まぁ、OFFっておくのがいいでしょう。
※)ハマりポイント!!!
デフォルトチェックOFFになってるんですが、内部的にはTrueになってるんですよね・・・なので、一回ぽちぽちしてOFF→ON→OFFしてあげる必要があります・・・仕様らしいです・・・
↑これ、まだそのままのようなので注意してください・・・
認証: チェックを入れるとログイン時のIdP認証が必須になります。
→チェックOFFだと、IdP認証を介さずにログインができるようになります。
特定のアカウントのみローカル認証を許可したい場合、アカウント名を下のブランクに設定します。(管理者用ローカルアカウントなど)
常にローカルログインされちゃうと嫌なのでONにして、管理者用アカウントを追加しておきます。
ローカルフォールバック: ネットに繋がっていない時にローカル認証ができるようになります。
こちらの設定は”認証”の設定より強いので、ネットに繋がってない時は全てのアカウントでローカルログインができるようになります。
ネットに繋がってない時にログインできないのは可哀想なのでONにしておきます。
ユーザ作成:
全新規ユーザをローカル管理者として作成: 初回ログイン時に作成するアカウントすべてに管理者権限を与えます。
ここは会社の運用次第だと思いますが、今回はOkta側で管理者権限をコントロールしたいため、OFFにしておきます。
既存のモバイルアカウントを~: 既存端末などで既にADバインド等を行ってアカウント作成をしていたものをJamf Connectに乗り換える際に使用する設定です。使わなければスルーでOKです。
役割を無視: Oktaでは使いません。
管理者の役割: Oktaでは使いません。
管理者の属性: Oktaでは使いません。
ユーザ移行: 新規端末ではなく既存端末などに展開する際に、既存のアカウントをIdP認証に切り替える場合にONにします。アカウント名やホームフォルダ名などは変更されず、認証の紐付けだけが行われます。
ちなみに既存アカウント名がIdPのアカウント名と同値だった場合はONにしなくても上書き(紐付け)できます。
FileVault: FileVault2ディスク暗号化はONにしたいのでONにします。
※)ポイント!!!
Jamf Connectではリカバリーキーの収集などは行えない(ローカルに保存は可)ので別途Jamf Proから”個人用リカバリキーのエスクロー有効化”をONにする構成プロファイルを投げる必要があります。”FileVaultリカバリーキーを保存してください”はローカルに保存する場合に設定する項目なので今回は設定しません。
キーチェーン: デフォルトがONになっていると思います。こちらを有効にすることでメニューバーApp用のキーチェーンが作成され、メニューバーAppへのサインインが不要になります。
< アピアランス >
インターネット: ログイン画面にネットワーク選択ボタンを表示させます。とりあえずONにしておくことをお勧めします。
LoginWindowMessage: ログイン画面下部に表示したいメッセージを入力できます。
バックグラウンド: ログイン時の背景画像のパスを設定します。自動デバイス登録(旧DEP)時から使用する場合は事前に画像ファイルを配布しておく必要があります。とりあえず今回はmacOS標準の物を設定しました。
ログインロゴ: ログイン時に表示するロゴに使う画像のパスを設定します。こちらも自動デバイス登録(旧DEP)時から使用する場合は事前に画像ファイルを配布しておく必要があります。
ローカル認証ボタン: Oktaでは使いません。
(おまけ)設定ファイルのエクスポート
Jamf ProのアップデートによってXMLエディタが搭載されました。 そのため設定ファイルのエクスポート > アップロードという作業ではなく、設定値をコピー&ペーストでも設定が可能になったためこちらの作業はスキップしてもOKです。
コピペでうまく設定ができなかった場合等にこちらをお試しください。
(※)コピペする場合は、右上”</>”マークを選択することでXMLエディタモードに切り替えることができます。コピペ先などはJamf Pro側の設定の項目で再度説明します。
設定したファイルをエクスポートする場合の手順はこちらです。
「⌘(Command) + S」または、メニューバー > File > Saveを選択して保存画面を出します。
Application: Jamf Connect Login
ファイル形式: Property list .plist
“Configuration Profile .mobileconfig”を選択することで、構成プロファイルとして吐き出させることもできるのですが、個人的にはplist形式で吐き出してJamf Proにアップロードする形の方が各種設定値をJamf Pro上で確認できるため運用上良いと思います。
もっというとJamfリポジトリを利用してJamf Pro上で設定を作れるようにもなってはいるのですが、その辺りは好みだと思います。
で、右下の”Save“を押して保存します。
いままでは、com.jamf.connect.login.plistという名前で保存するのを推奨してましたが、Jamf Pro 10.26より仕様が変更になり、環境設定ドメインをJamf Pro上に手入力する仕様になったためファイル名は任意でOKです。
Jamf Connect メニューバーAppの設定について
“Connect”タブ
下記項目をチェックONにしておきます。
Sign In:
☑︎Automatic Sign-in: キーチェーン情報を使用して自動的にメニューバーAppにサインインしてくれます。
☑︎Automatically Push Last MFA Method: 最後に使用したMFA方式を自動的にプッシュしてくれます。
☑︎Require Sign-in: パスワードの変更等で認証情報に齟齬が発生した場合に表示されるウィンドウを、認証が完了するまで閉じることができないようにできます。
“Sign In Logo“はJamf Connect Loginの設定で使用したものがあったので同じパスを指定しておきました。
Custom Branding:
“Show Welcome Window” をON→OFFするとログイン後のデスクトップ画面にWelcome画面が表示されなくなります。これはお好みで良いと思います。私は煩わしいのでOFFにしました。
上記設定をしてファイルをエクスポートする場合は、Jamf Connect Loginの時と同様に保存してください。
その他UIの設定などいろいろな項目がありますので気になる方はこちらをご参照ください。
Jamf Pro側の設定
- JamfConnect-2.X.X.dmg > Jamf Connect.pkg
- JamfConnect-2.X.X.dmg > Resources > JamfConnectLaunchAgent.pkg
の二つをJamf Proにアップロードします。
Jamf Pro管理コンソールより > 右上歯車ボタン > コンピュータ管理 > パッケージ > 右上”+新規” > ファイル名:ファイルを選択
と進んでpkgファイルをアップロードし、右下”保存”ボタンより保存します。
表示名はパッケージ名が自動的に入ります。注記のところにアップロード日やバージョン情報等を残しておくと運用上良いかと思います。
Smart Computer Groupの作成
自動デバイス登録(旧DEP)で登録されたデバイスに対してScopeを設定したいのでSmart Computer Groupを作っておきます。
Criteria はEnrolled via Automated Device EnrollmentかEnrollment Method: PreStage enrollmentあたりを使うと自動デバイス登録でEnrollした端末のグループを作成できます。
Enrolled via Automated Device Enrollmentだと自動デバイス登録で登録された端末全て、Enrollment Method: PreStage enrollmentだと特定のPreStage Enrollmentsで登録された端末をグルーピングできます。
各種構成プロファイルの作成
Jamf Connect Login用構成プロファイルの作成
- Jamf Proにログインします。
- “コンピュータ” > “構成プロファイル” > “+新規”を選択します。
- 下記設定をしていきます。
一般
名称:Jamf Connect Okta Login(任意です。なんでもいいです。)
配布方法:Install Automatically
レベル:Computer Level
アプリケーションとカスタム設定
“アプリケーションとカスタム設定”ペイロード > “アップロード” > 右上”+追加” を選択します。
Jamf Connect Configurationで作成した設定値をコピペする場合は、Jamf Connect Configuration.appより、Jamf Connect Loginタブのまま右上”</>”をクリックしてXMLエディタに表示されているものをすべてコピーします。
Jamf Pro管理コンソール画面に戻り、「プロパティリスト」の枠にペーストします。
Jamf アプリケーションドメインには com.jamf.connect.login と入力します。ドメイン名の設定を間違えてしまうと正しく設定が反映されないので気をつけてください!
Jamf Connect Configurationで保存したplistファイルをアップロードする場合は、左下”アップロード”より、作成した com.jamf.connect.login.plist をアップロードして、Jamf アプリケーションドメインの項目に com.jamf.connect.login と入力します。
Scope
Smart Computer Groupの作成で作成したグループをスコープに入れておきます。
自動デバイス登録以外で登録したデバイスに配る場合はそのデバイスまたはグループを追加しておきます。
以上の設定ができましたら右下”保存”より保存します。
Jamf Connect メニューバーApp用構成プロファイルの作成
Jamf Connect Login用構成プロファイルの作成と同様に構成プロファイルを作成します。
一般
名称:Jamf Connect Okta (任意です。なんでもいいです。)
配布方法:Install Automatically
レベル:Computer Level
アプリケーションとカスタム設定
“アプリケーションとカスタム設定”ペイロード > “アップロード” > 右上”+追加” を選択します。
Jamf Connect Configurationで作成した設定値をコピペする場合は、Jamf Connect Cofiguration.appより、右上””をクリックしてXMLエディタを表示 > “Connect”タブに切り替え、表示されているものをすべてコピーします。
Jamf Pro管理コンソール画面に戻り、「プロパティリスト」の枠にペーストします。
Jamf アプリケーションドメインには com.jamf.connect と入力します。ドメイン名の設定を間違えてしまうと正しく設定が反映されないので気をつけてください!
Jamf Connect Configurationで保存したplistファイルをアップロードする場合は、左下”アップロード”より、作成した com.jamf.connect.plist をアップロードして、Jamf アプリケーションドメインの項目に com.jamf.connect と入力します。
Scope
こちらもSmart Computer Groupの作成で作成したグループをスコープに入れておきます。
自動デバイス登録以外で登録したデバイスに配る場合はそのデバイスまたはグループを追加しておきます。
FileVault2 Recovery Keyの設定
Jamf Connect Loginの設定のポイントのところに記載したように、FileVault2のリカバリーキーの収集機能はないため、リカバリーキーをJamf Proに収集する場合は別途構成プロファイルを作成する必要があります。すでにセキュリティとプライバシー用の構成プロファイルを作成している場合は中身を確認し、リカバリーキーのエスクロー有効化が設定されているようであれば、この手順はスキップしてOKです。
一般
名称:FileVault2 Recovery Key(任意です。なんでもいいです。)
配布方法:Install Automatically
レベル:Computer Level
セキュリティとプライバシー
FileVaultタブ > “FileVault 2が必要”にチェックを入れ、”個別のリカバリキーを作成”をONにします。
“個人用リカバリキーのエスクロー有効化 (macOS 10.13 以降)”にチェックを入れます。
「エスクローの場所の説明」の記入が必須なので「Jamf Pro」など任意の名称を記入します。
Scope
Smart Computer Groupの作成で作成したグループをスコープに入れておきます。
自動デバイス登録以外で登録したデバイスに配る場合はそのデバイスまたはグループを追加しておきます。
セキュリティ&プライバシーの項目ですが、Jamf Proで作成する構成プロファイルの仕様上、その他の項目に関しても制限が有効になってしまうため、意図していない項目もグレーアウトしてしまいます。
回避するためには、同ペイロードで細かく設定していくか、手書きの構成プロファイルを使用する形になります。(ここではやりません)
Disabling Automatic FileVault Loginの設定
macOSはデフォルトでFileVault2をONにした場合、FileVault2の解除に使用したアカウントとパスワードでローカルアカウントに自動ログインします。
これを”オフ”に設定しないと、ログインプロセスがバイパスされてしまい、Jamf Connect Loginの画面が表示されません。Jamf Connect Loginの設定で“ネットワーク認証を常に必要とします(DenyLocal)“を有効にしている場合はJamf Connectがオフにしてくれるようですが、こちらのチェックをオフ(ローカル認証を許可)で設定している場合は別途構成プロファイルを作成し、FileVault2の自動ログインを無効にする必要があります。
一般
名称:Disabling Automatic FileVault Login(任意です。なんでもいいです。)
配布方法:Install Automatically
レベル:Computer Level
アプリケーションとカスタム設定
“アプリケーションとカスタム設定”ペイロード > “アップロード” > 右上”+追加” を選択します。
「プロパティリスト」の枠に下記内容をペーストします。
<?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>DisableFDEAutoLogin</key> <true/> </dict> </plist>
Jamf アプリケーションドメインには com.apple.loginwindowと入力します。これもドメイン名の設定を間違えてしまうと正しく設定が反映されないので気をつけてください。
Scope
Smart Computer Groupの作成で作成したグループをスコープに入れておきます。
自動デバイス登録以外で登録したデバイスに配る場合はそのデバイスまたはグループを追加しておきます。
Prestage Enrollments × Jamf Connect Loginの設定
自動デバイス登録(旧:DEP)を利用して、初回ログイン時にJamf Connect Loginの画面を表示させるためにPrestage Enrollmentsの設定をしていきます。
DEPを利用しない場合は、上記で設定した構成プロファイルと、Jamf Connect関連のpkgをポリシーでインストールさせてください。
一般
任意でどうぞ。
構成プロファイル
- Jamf Connect Okta Login
- (Jamf Connect Okta)
- FileVault2 Recovery Key
- (Disabling Automatic FileVault Login)
登録パッケージ
- JamfConnect.pkg
- JamfConnectLaunchAgent.pkg
そう、各種構成プロファイルの作成のScopeで設定しているのにここでも設定するのか、というのがあると思いますが、ここで設定した構成プロファイルに関しては初期セットアップ画面の時にのみ有効になるため、その後も設定を有効にしておきたい場合は両方に割り当てておく必要があるのです。
・・・・・以上です!!!ここまでの設定で自動デバイス登録を利用したデプロイ時にJamf Connect Loginの画面がでてくるようになる!!!はず!!!!!
(補足)自動デバイス登録を利用しない場合の展開に関して
自動デバイス登録を利用しない場合は別途ポリシーにてインストールを行います。
必ず構成プロファイルを先に配布してからインストールを行ってください。Jamf Connectのインストーラーは構成プロファイル内の設定値を読んでインストールを行うため、順番を誤ると正しくインストールされませんのでご注意ください。
Jamf Pro管理コンソールより > コンピュータ > ポリシー > 右上”+新規”をクリックします。
General
表示名:Jamf Connectインストール(など任意のものでOKです)
トリガー:登録完了やRecurring Check-inなど状況に応じてチェックONにします。
実行頻度:Once per computerなど状況に応じて設定します。
Jamf Proの新機能である「失敗した場合に自動的にポリシーを再実行」もONにしておきます。
パッケージ
“Configure”をクリックしてJamfConnect.pkgやJamfConnectLaunchAgent.pkg
を右側の”追加”から追加します。
Self Service タブ
トリガーを気にせずSelf Seviceから手動でインストールしたい場合は、Self Serviceタブより「Self Serviceでポリシーを使用可能にする」をチェックONにします。
※)検証などで自動インストールではなくSelf Serviceからの手動インストールを複数回試したい場合などは、トリガーを全て空白またはカスタムトリガーに設定して実行頻度をOngoingにしておくのもアリだと思います。
おわりに
Jamf Connectを利用することでMacのユーザーアカウントの統制が取れるようになります。
設定も慣れるとそこまで難しくないですし、現在はJamf ProのJumpStartのようなオンボーディングサービスもあるので安心して導入できると思います。
今回紹介しなかった設定等もあるのでまずは触ってみると面白いと思います!
それではまた!!!