SaaS

Okta Identity EngineでのDevice Trustを検証してみた -Windows編-

こんにちは! SaaS検証チームのたつみんです。
前回はOkta Identity Engine(以下OIE)環境におけるmacOSのOkta Device Trustの設定ご紹介しましたが、今回はWindowsでの設定方法についてご紹介します。

注意

2021年11月18日現在、OIEは新規発行されるテナントに限り適用されます。これまでのOkta Classic EngineからOIEへ移行する時期や方法については別途Okta社からのアナウンスをお待ちください。

参照ドキュメント

検証にあたり参照したドキュメントは以下の通りです。

  • 前提条件について
  • Microsoft Intuneを利用した動的SCEPチャレンジの設定について

前提条件

Windowsでのデバイストラストを実現するには下記の3点が前提条件となります。

  • Windows 10, 32-bit and 64-bit
  • Chrome
  • Windows版Okta Verifyアプリを利用しアカウントを紐づけている

なお、ドキュメントには記載がありませんでしたが、Windows 11 64-bitでも動作することを確認しております。

設定方法

Okta証明書取得

  1. OktaのSecurity>Device integrations>Device Management>Certificate Authority>ActionsからOkta CAをダウンロードします。
  2. ダウンロードした証明書の拡張子が.cerでない場合は手動で変更を行います。

Intuneで証明書の構成

  1. デバイス>構成プロファイル>プロファイルの作成をクリックします。
  2. プラットフォームをWindows10以降を選択します。
  3. プロファイルの種類はテンプレートを選択します。
  4. テンプレート名で信頼済み証明書を選択し、作成をクリックします。

  5. 名前を入力し、次へをクリックします。(今回はOIE_Windowsとしました)

  6. Okta証明書取得でダウンロードした証明書ファイルをアップロードします。
  7. 保存先ストアをコンピューター証明書ストア – 中間を選択し、次へをクリックします。

  8. 組み込まれたグループに検証用セキュリティグループを選択し、次へをクリックします。

  9. 適用性ルールを指定する場合は設定し、次へをクリックします。(今回は何も設定せずに進めました)
  10. 設定内容を確認し、作成をクリックします。

Azureでアプリの登録

  1. Azure Active Directoryのアプリの登録から新規登録をクリックします。

  2. 名前をわかりやすいものを設定します。(今回はOkta Verifyとしました)
  3. サポートされるアカウントの種類でこの組織ディレクトリのみに含まれるアカウントを選択し、登録をクリックします。

  4. 登録情報のアプリケーション(クライアント)IDを控えておきます。

  5. 左側のメニューから証明書とシークレットをクリックします。
  6. 新しいクライアントシークレットをクリックします。
  7. 有効期限を設定し、追加をクリックします。(今回はデフォルト値の推奨:6ヶ月のままとしました)

  8. 生成された値を控えておきます。(シークレットIDでなく値を利用します)

  9. 左側メニューのAPIのアクセス許可へ移動し、アクセス許可の追加をクリックし、Intuneをクリックします。

  10. APIアクセス許可の要求でアプリケーションの許可をクリックします。
  11. scep_challenge_providerを選択し、アクセス許可の追加をクリックします。

  12. 再度、アクセス許可の追加をクリックし、Microsoft Graphをクリックします。
  13. アプリケーションの許可をクリックします。
  14. Application.Read.Allを選択し、アクセス許可の追加をクリックします。

  15. xxxxxに管理者の同意を与えますをクリックします。(xxxxxの部分はそれぞれの環境により異なります)

  16. 正常に完了すると以下のようになります。

OktaでSCEP URLを生成

  1. OktaのSecurity>Device integrations>Endpoint Management>Add Platformをクリックします。
  2. Desktop (Windows and macOS only)を選択し、Nextをクリックします。

  3. SCEP URL challenge typeをDynamic SCEP URLMicrosoft Intuneを選択します。
  4. AAD client IDにAzureでアプリの登録で控えておいたアプリケーション(クライアント)IDを入力します。
  5. AAD tenantはAADテナント名.onMicrosoft.comを入力します。
  6. AAD secretにアプリの登録で控えておいた値を入力します。
  7. Generateをクリックします。

  8. 生成されたSCEP URLを控えて、Saveをクリックします。

IntuneでSCEPの構成

  1. デバイス>構成プロファイル>プロファイルの作成をクリックします。
  2. プラットフォームをWindows10以降を選択します。
  3. プロファイルの種類はテンプレートを選択します。
  4. SCEP証明書を選択し、作成をクリックします。

  5. 名前を入力し次へをクリック(今回はOIE_Windows_SCEPとしました)

  6. 証明書の種類をユーザーを選択します。
  7. サブジェクト名の形式は以下を入力します。
    CN={{UserPrincipalName}} ManagementAttestation {{AAD_Device_ID}}
  8. キー記憶域プロバイダーはトラステッドプラットフォームモジュール(TPM) KSPが存在する場合はTPM KSPに登録する(それ以外はソフトウェアKSPに登録する)を選択します。
  9. キー使用法はデジタル署名を選択します。
  10. キーサイズは2048を選択します。
  11. ハッシュアルゴリズムはSHA-2を選択します。

  12. ルート証明書をクリックし、先の工程でIntuneに登録した信頼済み証明書を選択し、OKをクリックします。

  13. 拡張キー使用法の定義済みの値でクライアント認証を選択します。(名前とオブジェクト識別子は自動的に反映されます)
  14. SCEPサーバーのURLにOktaで生成したSCEP URLを入力し、次へをクリックします。

  15. 組み込まれたグループに検証用セキュリティグループを設定し、次へをクリックします。

  16. 適用性ルールを指定する場合は設定し、次へをクリックします。(今回は何も設定せずに進めました)
  17. 設定内容を確認し、作成をクリック

Windows端末上での設定反映確認

証明書のインストール状況の確認

  1. スタートボタンをクリックし、certを入力しEnterキーを押下します。
  2. 証明書マネージャー>個人>証明書へ移動します。
  3. 発行者がOrganization Intermediate Authorityの証明書があることを確認します。

  4. 中間証明機関>証明書へ移動します。
  5. 発行者がOrganization Root Authorityの証明書があることを確認します。

イベントログの確認

  1. スタートボタンをクリックし、Eventを入力しEnterキーを押下します。
  2. イベントビューワー>アプリケーションとサービス>Microsoft>Windows>DeviceManagement-Enterprise>Adminへ移動します。
  3. 下記のログがあるか検索します。
    • SCEP: Certificate installed successfully
    • SCEP: Certificate request generated successfully

Oktaアプリケーションサインオンポリシー設定

  1. Okta管理画面からDevice Trustをアクセスの条件にしたいアプリケーションを選択します。
  2. Sign Onタブの下にあるSign On PolicyからAdd Ruleをクリックします。
  3. Device state isをRegisteredにし、Device management isをManagedにし、Saveをクリックします。

  4. 最終的に以下のようなサインオンポリシーとなっているかを確認します。

サインオンポリシーは上から判定されルールに該当しない場合に次のルールに一致するかどうかを確認します。今回の例ではDevice Trustに合致しない場合はCatch-all Ruleにてアクセスを拒否する設定としています。

動作確認

Oktaアプリケーション制御の確認

  1. 端末側でJamf Proで配布した構成プロファイルが適用されているかを確認します。
  2. Oktaにログインしている場合は一度、ログアウトしてから再度ログインをします。
  3. 対象アプリケーションにアクセス可能かを確認します。

なお、正常にアクセスできなかった場合は以下のような表示となります。

Devices上の確認

Okta管理画面のDirectory内のDevicesに該当端末のStatusがManagedとなっていることを確認します。

最後に

macOSの手順と比べると少し複雑ではありますが、Windows端末についてもOIE環境でデバイストラストを行うことができました。

次回はiOSやAndroidのOIEデバイストラストを行う方法について記事を公開予定となります。

OIEでできることが広がっていくのは楽しいですね。ではまた〜💁‍♂️

たつみん

事業会社の情シスからクラウドネイティブにJoin!
好きなものはF1海外観戦とベルギービール!
集中力の質は深く長く遅い典型的なシングルタスクタイプです。