Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Jamf Pro で Okta からユーザー情報や所属グループを LDAP を使って取得してみた

Jamf Pro で Okta からユーザー情報や所属グループを LDAP を使って取得してみた

JMUG #17 で発表した内容です。
https://eventregist.com/e/jmug0017

773302ca4f942c1b3eed18d3f0074ec8?s=128

shimosyan

April 13, 2022
Tweet

More Decks by shimosyan

Other Decks in Technology

Transcript

  1. Jamf Pro で Okta から ユーザー情報や所属グループを LDAP を使って取得してみた 2022.04.13 JMUG

    Meetup #17 しもしゃん @shimosyan 1
  2. アジェンダ 1. 自己紹介 2. Jamf Pro の LDAP でできること 3.

    Okta の LDAP と連携してみよう 4. デバイスにユーザーを紐付けてインベントリ収集時に LDAP からユーザー情報を 取得してみた 5. デバイスの使用ユーザーが属している Okta のグループの一覧を取得してみた 6. Jamf Pro に期待したいこと 7. まとめ 2
  3. 3 自己紹介

  4. 自己紹介 しもしゃん Corporate Engineer at Chatwork Co., Ltd. 4 Twitter

    / GitHub @shimosyan スキル • Jamf Pro • Okta • Serverless Architecture • Network Engineering 趣味 • DTM • 自作PC 最近の取り組んでいること • 家を建てるために奔走中 ポートフォリオ https://shimosyan.github.io/
  5. 5 Jamf Pro の LDAP でできること

  6. 6 ざっくりなシステム構成図 Jamf Pro LDAP サーバー LDAP LDAP サーバー上のユーザー情報を同期する 💡

    LDAP とは LDAP (Lightweight Directory Access Protocol) は、ネットワークを経由してユーザーなどの情報 が格納されているディレクトリへアクセスすることができるプロトコルです。 ユーザーの同期に加え、ユーザーの認証もおこなうことができます。 (しかし、今回は認証機能は使いません…) 参考 https://www.okta.com/jp/identity-101/what-is-ldap/
  7. 7 Jamf Pro の LDAP でできること 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/LDAP_Directory_Service_Integration.html 端末に使用ユーザーのメールアドレスを登録する と、インベントリ収集時にユーザー情報を

    LDAP から読み込んでデータの同期ができる Jamf Pro のユーザーアカウント・グループを LDAP から読み込んで認証できる SelfService 利用時に LDAP 認証を要求すること ができる モバイルデバイス利用時に LDAP 認証を要求する ことができる 各 Scope の Limitation に LDAP のユーザーまた はグループを指定できる
  8. 8 Jamf Pro の LDAP でできること 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/LDAP_Directory_Service_Integration.html Jamf Pro

    のユーザーアカウント・グループを LDAP から読み込んで認証できる SelfService 利用時に LDAP 認証を要求すること ができる モバイルデバイス利用時に LDAP 認証を要求する ことができる 各 Scope の Limitation に LDAP のユーザーまた はグループを指定できる これらの LDAP 認証は、Okta のシングルサインオ ンで代替することができます 端末に使用ユーザーのメールアドレスを登録する と、インベントリ収集時にユーザー情報を LDAP から読み込んでデータの同期ができる
  9. 9 Okta の LDAP と 連携してみよう

  10. 10 今回想定するシステム構成図 Jamf Pro Okta Okta LDAP Interface Okta 側の設定手順は今回は割愛します。

    以下が用意されていたらOK。 • LDAP Interface の有効化 • Read Only Administrator が付与され、MFA が無効化された Okta アカウント LDAP Okta 上のユーザー情報を同期する
  11. LDAP 接続設定 ① まずは、Okta との接続設定です。 環境設定から LDAP サーバーの設定画面を開きま す。 サーバーの種類を選択する画面では

    Configure manually を選択し、以下のように入力します。 • SSL を使用:ON • サーバーと Port ◦ サーバー名: yourtenant.ldap.okta.com ◦ Port:636 ◦ 証明書:なし • LDAP プロキシサーバを有効にする:OFF <次のスライドに続く> 11 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/
  12. LDAP 接続設定 ② 12 • 認証タイプ:Simple • LDAP サーバアカウント ◦

    接続ユーザ名: uid=oktaAccount,dc=yourtenant, dc=okta, dc=com ◦ OktaAccount は Okta で用意した ReadOnlyAdmin + MFA 無効化したアカウ ントID ◦ パスワード: OktaAccount のパスワード • 接続タイムアウト:15秒 • 検索タイムアウト:60秒 • 委任応答:Use default from LDAP service • 検索時にワイルドカードを使用:ON ここまで入力したら、保存します。 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/
  13. ユーザーマッピング設定① 13 続いて、LDAP の同期項目 を設定していきます。 LDAP サーバーの設定画面から「マッピング」を 開き、以下のように入力します。 • Object

    Class Limitation: All ObjectClass Values • Object Class:inetOrgPerson • ベース検索: dc=yourtenant, dc=okta, dc=com • Scope検索:All Subtrees • 属性マッピング ◦ ユーザーID:uid ◦ ユーザー名:uid ◦ 本名:cn 左図は諸事情で displayName を使用しています <次のスライドに続く> 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/
  14. ユーザーマッピング設定② 14 • 属性マッピング ◦ Eメールアドレス:mail ◦ E メール結果に追加:空白 ◦

    ユーザーUUID:objectGUID 指定できるプロパティ名について ここで使用できるプロパティは LDAP 標準の uid や cn、mail の他に、Okta のユーザープロ パティを指定することができます。 一つ前のスライドにあった、displayName が それにあたります。 Okta Jamf Pro 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/
  15. ユーザーマッピング設定③ 15 この環境では、部署や建物、ルームを空白にしていま すが、もちろん自由に設定することも可能です。 ただし、以下の点に注意する必要があります。 ルーム、電話、ポジションの場合 ほかと同様に、Okta のユーザープロパティを 指定することで情報を取得できます。 部署、建物の場合

    プロパティを指定しただけでは同期されませ ん。 Jamf Pro の環境設定から、部署と建物を事前 に定義しておく必要があります。 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/
  16. グループマッピング設定 16 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/ 続いて、User Group Mappings を以下のように編 集します。 •

    Object Class Limitation: All ObjectClass Values • Object Class:groupofUniqueNames • ベース検索:ou=groups, dc=yourtenant, dc=okta, dc=com • Scope検索:All Subtrees • 属性マッピング ◦ グループID:uniqueIdentifier ◦ グループ名:cn ◦ グループ UUID:objectGUID
  17. グループメンバーシップマッピング設定 17 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/ 最後に、User Group Membership Mappings を以 下のように編集します。

    • Membership Location:Group Object • メンバーユーザーのマッピング :uniqueMembers • LDAP ディレクトリの検索時にメンバー ユーザーの識別名を使用:ON • LDAP ディレクトリの検索時には、LDAP compare operation(比較オペレーション) を使用:OFF • 属性を返すときはメンバーユーザのマッピ ングを含める:OFF これで、LDAP サーバーの設定完了です。
  18. 18 設定した LDAP は設定の動作確認をすることがで きます。 LDAP 設定画面からテスト画面を開きます。 ユーザー名をルックアップに Okta のユーザー

    ID を入力してみると、Okta に登録されている情報 を取得することができます。
  19. 19 デバイスにユーザーを紐付けて インベントリ収集時に LDAP から ユーザー情報を取得してみた

  20. デバイスの使用者を LDAP から補完する 20 LDAP 設定が有効になっている状態で、デバイス の使用ユーザーを登録してみます。 ユーザ名に Okta のユーザー

    ID だけを入力し保 存すると、氏名などのほかのプロパティが自動で 登録されます。 注意 すでに、Jamf Pro のユーザー管理に同じ ID を を持つユーザーが居る場合は、そちらが優先さ れてしまいます。削除や ID の変更など ID が重 複しないようにしてください。 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/User_Assignments.html
  21. シングルサインオンを使ってユーザー割り当てを自動化する 21 シングルサインオンをはじめ、Jamf Pro の以下 の機能を組み合わせる事ができます。 この組み合わせを使うと、Automated Device Enrollment(ADE、旧DEP) 時に

    IdP のログイン 画面を表示させることができます。 ユーザーに IdP にログインしてもらうことで、そ のデバイスの使用ユーザーの登録を自動化するこ とができるようになります。 残念ながら今回は割愛させていただきます… Prestage Enrollment 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/Enrollment_Customization_Settings.html
  22. LDAP サーバーの最新の情報を同期できるようにする 22 LDAP サーバー上のデータが更新されていた場 合、デフォルトではデバイスの使用ユーザーに登 録された情報は自動更新されません。 インベントリ収集の設定から LDAP からユーザと

    位置の情報を収集 を ON にするととで、jamf recon 時に最新に更新することができます。 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/Computer_Inventory_Collection_Settings.html
  23. 23 デバイスの使用ユーザーが 属している Okta のグループ の一覧を取得してみた

  24. 24 先ほど、この図を出しましたが… 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/LDAP_Directory_Service_Integration.html 端末に使用ユーザーのメールアドレスを登録する と、インベントリ収集時にユーザー情報を LDAP から読み込んでデータの同期ができる Jamf Pro

    のユーザーアカウント・グループを LDAP から読み込んで認証できる SelfService 利用時に LDAP 認証を要求すること ができる モバイルデバイス利用時に LDAP 認証を要求する ことができる 各 Scope の Limitation に LDAP のユーザーまた はグループを指定できる
  25. 25 先ほど、この図を出しましたが… 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/LDAP_Directory_Service_Integration.html 端末に使用ユーザーのメールアドレスを登録する と、インベントリ収集時にユーザー情報を LDAP から読み込んでデータの同期ができる Jamf Pro

    のユーザーアカウント・グループを LDAP から読み込んで認証できる SelfService 利用時に LDAP 認証を要求すること ができる モバイルデバイス利用時に LDAP 認証を要求する ことができる 各 Scope の Limitation に LDAP のユーザーまた はグループを指定できる これに近いことを全く異なる方法で実現する方法をご紹介します。 (この方法、公式のリファレンスに重たくなるから注意と書いてある)
  26. 拡張属性の作成 26 コンピュータ(Mac 向け)用の新規拡張属性の編 集画面を開き、以下のように入力します。 • 表示名:なんでも (ここでは OktaGroups とします)

    • データタイプ:String • インベントリ表示:User and Location • 入力タイプ:LDAP Attribute Mapping • LDAP 属性:memberOf • 属性に複数の値を許可する:ON 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/Computer_Extension_Attributes.html https://help.okta.com/en/prod/Content/Topics/Directory/LDAP-interface-limitations.htm
  27. 拡張属性の動作確認 27 拡張属性を作成したあとで jamf recon が実行さ れると、デバイスに使用ユーザーが属する Okta のグループが一覧で表示されます。

  28. Smart Computer Groups と連携 28 無事に拡張属性が機能したら、それを Smart Computer Groups のクライテリアに使用することが可能です。

    クライテリアで使える一覧から OktaGroups が選択できます。条件式は has または does not have が使用できます。 数値は以下のフォーマットで指定する必要がありますが、これにより同じ Okta のグループに属するユーザーが所有するデ バイスが抽出できます。 cn=Oktaのグループ名,ou=groups,dc=yourtenant, dc=okta, dc=com あとは、ポリシーや構成プロファイルの scope で使いましょう。
  29. モバイルデバイスでも同じことが実現できます 29 モバイルデバイス(iOS 向け)でも、同じ設定が可能です。 ↓ インベントリ収集の設定で LDAP からユーザと位置の情報 を収集が ON

    になっていないと、拡張属性の追加ができませ ん。注意してください。
  30. 30 Jamf Pro に期待したいこと

  31. Jamf Pro に期待したいこと 31 先ほど、Mac 向けの拡張属性で LDAP と連携する 方法をご紹介しました。 ユーザー向けの拡張属性では使えません…

    ユーザー向けの拡張属性で使えないということ は、Smart User Groups では先ほど紹介した方法 は使えないということになります。 ぜひ、ここも LDAP 連携に対応されることを願っ ています。
  32. 32 まとめ

  33. まとめ • Jamf Pro は LDAP 機能を使って、Okta のユーザー情報を取得す ることができます。 •

    Okta のユーザー情報だけでなく、そのユーザーが Okta のどのグ ループに属しているかの一覧も取得することができます。それを Smart Cpmputer Groups の条件設定に使うこともできます。 → この2つを使うことで、デバイスに対して使用するユーザーに応じた 細かい条件でポリシーや構成プロファイルの配布が可能になります。 33
  34. ご静聴 ありがとうございました 34