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

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

    View full-size slide

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

    View full-size slide

  3. 3
    自己紹介

    View full-size slide

  4. 自己紹介
    しもしゃん
    Corporate Engineer at Chatwork Co., Ltd.
    4
    Twitter / GitHub
    @shimosyan
    スキル
    ● Jamf Pro
    ● Okta
    ● Serverless Architecture
    ● Network Engineering
    趣味
    ● DTM
    ● 自作PC
    最近の取り組んでいること
    ● 家を建てるために奔走中
    ポートフォリオ https://shimosyan.github.io/

    View full-size slide

  5. 5
    Jamf Pro の LDAP でできること

    View full-size slide

  6. 6
    ざっくりなシステム構成図
    Jamf
    Pro
    LDAP
    サーバー LDAP
    LDAP サーバー上のユーザー情報を同期する
    💡 LDAP とは
    LDAP (Lightweight Directory Access Protocol) は、ネットワークを経由してユーザーなどの情報
    が格納されているディレクトリへアクセスすることができるプロトコルです。
    ユーザーの同期に加え、ユーザーの認証もおこなうことができます。
    (しかし、今回は認証機能は使いません…)
    参考 https://www.okta.com/jp/identity-101/what-is-ldap/

    View full-size slide

  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 のユーザーまた
    はグループを指定できる

    View full-size slide

  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
    から読み込んでデータの同期ができる

    View full-size slide

  9. 9
    Okta の LDAP と
    連携してみよう

    View full-size slide

  10. 10
    今回想定するシステム構成図
    Jamf
    Pro
    Okta Okta
    LDAP
    Interface
    Okta 側の設定手順は今回は割愛します。
    以下が用意されていたらOK。
    ● LDAP Interface の有効化
    ● Read Only Administrator が付与され、MFA が無効化された Okta アカウント
    LDAP
    Okta 上のユーザー情報を同期する

    View full-size slide

  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/

    View full-size slide

  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/

    View full-size slide

  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/

    View full-size slide

  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/

    View full-size slide

  15. ユーザーマッピング設定③
    15
    この環境では、部署や建物、ルームを空白にしていま
    すが、もちろん自由に設定することも可能です。
    ただし、以下の点に注意する必要があります。
    ルーム、電話、ポジションの場合
    ほかと同様に、Okta のユーザープロパティを
    指定することで情報を取得できます。
    部署、建物の場合
    プロパティを指定しただけでは同期されませ
    ん。
    Jamf Pro の環境設定から、部署と建物を事前
    に定義しておく必要があります。
    参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/

    View full-size slide

  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

    View full-size slide

  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 サーバーの設定完了です。

    View full-size slide

  18. 18
    設定した LDAP は設定の動作確認をすることがで
    きます。
    LDAP 設定画面からテスト画面を開きます。
    ユーザー名をルックアップに Okta のユーザー ID
    を入力してみると、Okta に登録されている情報
    を取得することができます。

    View full-size slide

  19. 19
    デバイスにユーザーを紐付けて
    インベントリ収集時に LDAP から
    ユーザー情報を取得してみた

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  22. LDAP サーバーの最新の情報を同期できるようにする
    22
    LDAP サーバー上のデータが更新されていた場
    合、デフォルトではデバイスの使用ユーザーに登
    録された情報は自動更新されません。
    インベントリ収集の設定から LDAP からユーザと
    位置の情報を収集 を ON にするととで、jamf
    recon 時に最新に更新することができます。
    参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/Computer_Inventory_Collection_Settings.html

    View full-size slide

  23. 23
    デバイスの使用ユーザーが
    属している Okta のグループ
    の一覧を取得してみた

    View full-size slide

  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 のユーザーまた
    はグループを指定できる

    View full-size slide

  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 のユーザーまた
    はグループを指定できる
    これに近いことを全く異なる方法で実現する方法をご紹介します。
    (この方法、公式のリファレンスに重たくなるから注意と書いてある)

    View full-size slide

  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

    View full-size slide

  27. 拡張属性の動作確認
    27
    拡張属性を作成したあとで jamf recon が実行さ
    れると、デバイスに使用ユーザーが属する Okta
    のグループが一覧で表示されます。

    View full-size slide

  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 で使いましょう。

    View full-size slide

  29. モバイルデバイスでも同じことが実現できます
    29
    モバイルデバイス(iOS 向け)でも、同じ設定が可能です。
    ↓ インベントリ収集の設定で LDAP からユーザと位置の情報
    を収集が ON になっていないと、拡張属性の追加ができませ
    ん。注意してください。

    View full-size slide

  30. 30
    Jamf Pro に期待したいこと

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  33. ご静聴
    ありがとうございました
    34

    View full-size slide