Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
go-ldap Contribution
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kazamori
November 30, 2023
Technology
1.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
go-ldap Contribution
Kobe Engineer SakeBash #2 ~神戸のエンジニアコミュニティを盛り上げよう LT
https://acall.connpass.com/event/302038/
kazamori
November 30, 2023
More Decks by kazamori
See All by kazamori
markdown-poster Introduction
kazamori
0
500
Try creating your own orderedmap
kazamori
1
760
Iintroduction of how big tech runs tech projects
kazamori
1
1.6k
Custom GitHub Actions by Java
kazamori
1
1.2k
Other Decks in Technology
See All in Technology
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
140
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
1
640
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1.3k
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
110
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
170
enechainの内製セルフサービスプラットフォーム
hiyosi
0
140
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
3
400
プロダクトエンジニアに必要な「いい感じ」に作る能力 〜たくさん作れる時代に、どこまで作るかの決め方〜
jnishime_dresscode
2
1.4k
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
170
omasushiというライブラリを作った
polidog
PRO
0
150
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
0
420
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
1
230
Featured
See All Featured
A better future with KSS
kneath
240
18k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
Product Roadmaps are Hard
iamctodd
55
13k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
Code Review Best Practice
trishagee
74
20k
Crafting Experiences
bethany
1
310
Building an army of robots
kneath
306
46k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
770
Embracing the Ebb and Flow
colly
88
5.2k
Transcript
2023-12-01 (Fri.) Tetsuya Morimoto go-ldap への コントリビューション
2 Kazamori LLC © 2023 • 森本 哲也 (もりもと てつや)
• 神戸市在住 • カザモリ合同会社 ◦ フルリモートワークで他社の開発のお手伝いをしている ▪ 直近の事例: OSSTech株式会社様 システム開発 • 課題管理 (課題管理システム) という分野に関心がある • 言語歴は Python → Java → Go をそれぞれ5年ほどの実務経験 • プログラミングや OSS 文化が好き 自己紹介
3 Kazamori LLC © 2023 目次 LDAP プロトコル概要 1. Go
開発と LDAP プロトコル 2. ID 連携に必要な機能をコントリビューション 3. リファレンス 4.
4 LDAP プロトコル概要
5 Kazamori LLC © 2023 ディレクトリサービスを提供するためのプロトコル • デファクトスタンダードでよいはず • 組織
(社員) の ID 管理などに使われている ◦ 例) 外部サービスへ ID 連携するときに使う リファレンス • LDAPとは:LDAPの仕組みと機能、プロトコル | Okta • UCIDM 用語集 - Unicorn Cloud ID Manager (オンプレミス版) LDAP プロトコルとは ディレクトリサービス ネットワーク上の リソースに対して ID と名前を管理 するサービスの総称
6 Kazamori LLC © 2023 • OpenLDAP サーバー ◦ ミシガン大学のオリジナルの
LDAP 実装から派生したもので OpenLDAP Project が開発しているサーバー実装 • Active Directory サーバー ◦ Windows 向けのマイクロソフト社のディレクトリサービスの実装 LDAP プロトコルのサーバー
7 Kazamori LLC © 2023 今回、紹介するのは検索リクエストの拡張で実現した事例になる • LDAP メッセージという単位で LDAP
オペレーションを扱う LDAP プロトコルの検索リクエストの拡張 LDAPMessage ::= SEQUENCE { messageID MessageID, protocolOp CHOICE { ..., searchRequest SearchRequest, ..., intermediateResponse IntermediateResponse }, controls [0] Controls OPTIONAL } 「コントール」 という データ構造により 検索を拡張する という考え方
8 Go 開発と LDAP プロトコル
9 Kazamori LLC © 2023 github.com/go-ldap/ldap というライブラリがある • (名前が競合するので便宜上 go-ldap
ライブラリと呼ぶ) • Go 言語の LDAP クライアント実装のデファクトスタンダード (たぶん) ◦ LDAP サーバーと通信するときに使うライブラリ ◦ 開発者が LDAP プロトコルを知らなくても簡単に使える 例) ldapadd, ldapmodify, ldapdelete, ldappassword などの操作 go-ldap/ldap ライブラリ
10 ID 連携に必要な機能を コントリビューション
11 Kazamori LLC © 2023 LDAP サーバーの情報が更新されたときにその変更を検知したい ID 連携に求められる要件 LDAP
サーバー DB エントリ 社内の部署移動 パスワード変更 新入社員追加
12 Kazamori LLC © 2023 時刻指定のポーリング検索で変更を検知できる • feat: enable DirSync
control in search operation #436 ◦ 検索リクエストにリクエストコントロールを追加して、 指定した日時以降に更新されたエントリーのみを取得する リファレンス • LDAP_SERVER_DIRSYNC_OID control code Active Directory の DirSync ポーリング (2023-12-01以降)
13 Kazamori LLC © 2023 レプリケーションの仕組みを応用した pubsub 的なもの • Add
syncrepl (rfc-4533) consumer (persistent search) #447 ◦ LDAP の検索リクエストにリクエストコントロールを追加する ◦ サーバーの状態に応じた複数のレスポンスが返ってくる リファレンス • OpenLDAP Software 2.6 Administrator's Guide: Replication • RFC 4533 - The Lightweight Directory Access Protocol (LDAP) Content Synchronization Operation OpenLDAP サーバーの syncrepl 検索リクエスト レプリケーション
14 リファレンス
15 Kazamori LLC © 2023 OSSTech 社のテックブログに詳細があります • OSSTech ブログ:
go-ldap へのコントリビューション • github.com/go-ldap/ldap このスライドで紹介した内容の詳細
ありがとうございました!