こんにちは! たつみんです。
Okta Identity Engine(以下OIE)で利用可能になったOkta Device Trustを検証しましたのでご紹介いたします。
2021年11月18日現在、OIEは新規発行されるテナントに限り適用されます。これまでのOkta Classic EngineからOIEへ移行する時期や方法については別途Okta社からのアナウンスをお待ちください。
それでは早速設定方法についてみてみましょう。
参照ドキュメント
検証にあたり参照したドキュメントは以下の通りです。
- 前提条件について
 
- Jamf Proを利用した動的SCEPチャレンジの設定について
 
前提条件
macOSでのデバイストラストを実現するには下記の3点が前提条件となります。
- macOS 10.15.x (Catalina), and 11 (Big Sur)
 - Safari (Credential SSO Extensionが必要), Chrome
 - macOS版Okta Verifyアプリを利用しアカウントを紐づけている
Okta Verifyへのアカウント設定についてはこちらの記事をご参照ください。 
なお、ドキュメントには記載がありませんでしたが、macOS 12 Montereyでも動作することを確認しております。
設定方法
OktaでSCEP URLを生成
- OktaのSecurity>Device integrations>Endpoint Management>Add Platformをクリックします。

 - Desktop (Windows and macOS only)を選択し、Nextをクリックします。

 - SCEP URL challenge typeをDynamic SCEP URLのGenericを選択し、Generateをクリックします。

 - SCEP URLとChallenge URLとUsernameおよびPasswordを控えた後、Saveを押し保存します。

 
Jamf Pro SCEP設定
- コンピュータ>構成プロファイル>新規をクリックします。
 - 一般タブでプロファイルの名称を入力(今回はOIE_DynamicSCEPとしました)
 - レベルはComputer Levelを選択します。

 - SCEPタブ内の構成をクリックします。
 - URLにOktaで発行したSCEP URLを入力します。
 - 名称はわかりやすいものを入力します。(今回はOIEとしました)
 - プロファイル再配布は30daysとし、証明書が切れる30日前に自動的に再配布されるように設定をしました。
 - 件名は
O=UUID,CN=$UDIDを入力します。- 7.のプロファイルの再配布設定により、自動的に件名に$PROFILE_IDENTIFIERが追加されてしまいます。これにより件名のパラメータの長さが64文字をオーバーし、プロファイル再配布ができない事象を観測しています。
 - そのため64文字以内となるよう件名を調整してください。
- 例1:CN=$SERIALNUMBER $PROFILE_IDENTIFIER
 - 例2:CN=$EMAIL $PROFILE_IDENTIFIER
 
 
 - チャレンジタイプはDynamic-Microsoft CAを選択します。
 - SCEP管理者のURLにOktaで発行したChallenge URLを入力します。
 - ユーザー名およびパスワードもそれぞれOktaで発行した値を入力します。
 - キーサイズを2048とし、デジタル署名として使用にチェックを入れます。
 - キーチェーンからのexportを許可のチェックを外します。
 - すべての App にアクセスを許可にチェックを入れます。
 - 保存をクリックします。

 
Jamf Pro SSO拡張機能設定
- コンピュータ>構成プロファイル>新規をクリックします。
 - 一般タブでプロファイルの名称を入力(今回はOIE_Extensible SSOとしました。)
 - レベルはComputer Levelを選択します。

 - シングルサインオン拡張機能タブで追加をクリックします。
 - 拡張識別子にcom.okta.mobile.auth-service-extensionを入力します。
 - チーム識別子にB7F62B65BNを入力します。
 - サインオンタイプはCredentialを選択します。
 - レルムにOkta Deviceを入力します。
 - ホストにOktaのURLを入力します。この時https://は不要です。
 - 保存をクリックします。

 
最後に、忘れずに作成した2つの構成プロファイルを対象端末に配布します。
Okta Authentication policiesの設定
Device Trust用のAuthentication policyを作成していない場合は以下の手順で作成するか、DefaultのラベルがついているAny two factorsなどのポリシーに以下のようなルールを組み込みます。
今回は検証結果をわかりやすく確認するために新規でポリシーおよびルールを作成しています。
- Okta管理画面のSecurity>Authentication policiesからAdd a policyをクリックします。
 - 名前をDevice Trust Policyなどわかりやすいものを設定します。

 - Add Ruleをクリックします。

 - Rule nameをDevice Trust Ruleなどわかりやすいものを設定し、Device state isをRegisteredにしDevice management isをManagedにし、Saveをクリックします。

 - 最初からあるCath-all Ruleを編集し、Access isをDeniedとしSaveをクリックします。最終的に以下のような2つのルールから構成されるポリシーとなっているかを確認します。

 - Applicationsタブ内のAdd appをクリックします。

 - 作成したポリシーを割り当てるアプリケーションのAddボタンをクリックし、最後にCloseをクリックします。

 
作成したポリシーは上から順番に判定され、ルールに該当しない場合に次のルールに一致するかどうかを確認します。今回の例ではDevice Trust Ruleに合致しない場合はCatch-all Ruleにて合致し、結果としてアクセスを拒否する設定としています。
動作確認
Oktaアプリケーション制御の確認
- 端末側でJamf Proで配布した構成プロファイルが適用されているかを確認します。
 - Oktaにログインしている場合は一度、ログアウトしてから再度ログインをします。
 - 対象アプリケーションにアクセス可能かを確認します。
 
なお、正常にアクセスできなかった場合は以下のような表示となります。
Devices上の確認
Okta管理画面のDirectory内のDevicesに該当端末のStatusがManagedとなっていることを確認します。
最後に
簡単にではありますがmacOSにおけるOkta Device Trustの設定方法をご案内いたしました。これまでのOkta Classic Engineの時よりも設定が容易になったように思います。
次回はWindowsにおけるデバイストラストの設定方法をご紹介いたします。それではまた〜?

