Slide 1

Slide 1 text

Jamf Pro で Okta から ユーザー情報や所属グループを LDAP を使って取得してみた 2022.04.13 JMUG Meetup #17 しもしゃん @shimosyan 1

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

3 自己紹介

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

5 Jamf Pro の LDAP でできること

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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/

Slide 12

Slide 12 text

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/

Slide 13

Slide 13 text

ユーザーマッピング設定① 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/

Slide 14

Slide 14 text

ユーザーマッピング設定② 14 ● 属性マッピング ○ Eメールアドレス:mail ○ E メール結果に追加:空白 ○ ユーザーUUID:objectGUID 指定できるプロパティ名について ここで使用できるプロパティは LDAP 標準の uid や cn、mail の他に、Okta のユーザープロ パティを指定することができます。 一つ前のスライドにあった、displayName が それにあたります。 Okta Jamf Pro 参考 https://jrdsgl.com/integrating-okta-ldap-to-jamf-pro/

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

グループマッピング設定 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

Slide 17

Slide 17 text

グループメンバーシップマッピング設定 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 サーバーの設定完了です。

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

デバイスの使用者を LDAP から補完する 20 LDAP 設定が有効になっている状態で、デバイス の使用ユーザーを登録してみます。 ユーザ名に Okta のユーザー ID だけを入力し保 存すると、氏名などのほかのプロパティが自動で 登録されます。 注意 すでに、Jamf Pro のユーザー管理に同じ ID を を持つユーザーが居る場合は、そちらが優先さ れてしまいます。削除や ID の変更など ID が重 複しないようにしてください。 参考 https://docs.jamf.com/ja/10.37.0/jamf-pro/documentation/User_Assignments.html

Slide 21

Slide 21 text

シングルサインオンを使ってユーザー割り当てを自動化する 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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

拡張属性の作成 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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

Smart Computer Groups と連携 28 無事に拡張属性が機能したら、それを Smart Computer Groups のクライテリアに使用することが可能です。 クライテリアで使える一覧から OktaGroups が選択できます。条件式は has または does not have が使用できます。 数値は以下のフォーマットで指定する必要がありますが、これにより同じ Okta のグループに属するユーザーが所有するデ バイスが抽出できます。 cn=Oktaのグループ名,ou=groups,dc=yourtenant, dc=okta, dc=com あとは、ポリシーや構成プロファイルの scope で使いましょう。

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

30 Jamf Pro に期待したいこと

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

32 まとめ

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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