Jamf Connect Ver.2を使ってOktaアカウントでMacにログインするぞ!

はじめに

どーもみなさんこんにちは。ねもてぃです。
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です。

  1. Oktaの管理画面にアクセスします。
  2. Applicationタブ > 左上”Add Application“を選択します。
  3. 右上”Create New App“を選択します。
  4. 下記設定を行なって保存(Create)します。
    Platform:Native App
    Sign on method:OpenID Connect
  1. 次の画面でさらに設定を追加して、保存(Save)します。
    Application name:Jamf Connect Login all userなど
    Application logo:任意でOKです
    Login redirect URIs:https://127.0.0.1/jamfconnect
  1. 次の画面の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つ作成できたところでユーザーの割り当てを行なっていきます。

  1. アプリケーションの一覧から、作成したアプリケーションの名前を選択し、”Assignments“タブ をクリックします。
  2. 左上側の”Assign“からJamf Connectを利用させたいユーザー、またはグループを全て追加(Assign)して”Done“をクリックします。
  3. ユーザーの一覧のところに対象のユーザー、またはグループが表示されていれば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フォルダ等に移動して起動します。
全ての設定値を解説するのは<del>しんどい</del>ので最低限必要な設定と個人的に使いそうな項目に絞って設定をしていきます。

“アイデンティティプロバイダ”タブ

  • アイデンティティプロバイダ: 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では使いません。

この記事をシェア