Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ID管理のクラウドサービスExtic におけるセキュリティの取り組み
Search
VAddy
December 01, 2016
Technology
1
1.3k
ID管理のクラウドサービスExtic におけるセキュリティの取り組み
2016年11月30日 VAddyユーザーミートアップ Vol.4 資料
ID管理のクラウドサービスExtic におけるセキュリティの取り組み
エクスジェン・ネットワークス株式会社
野村 健太郎
VAddy
December 01, 2016
Tweet
Share
More Decks by VAddy
See All by VAddy
開発者のためのWebセキュリティ診断入門
vaddy
0
490
Other Decks in Technology
See All in Technology
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
130
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
10
4.7k
OSSのSNSツール「Misskey」をさわってみよう(右下ワイプで私のOSCの20年を振り返ります) / 20250705-osc2025-do
akkiesoft
0
170
Lazy application authentication with Tailscale
bluehatbrit
0
210
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
1
17k
Geminiとv0による高速プロトタイピング
shinya337
1
270
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
3
22k
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
240
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
400
AI専用のリンターを作る #yumemi_patch
bengo4com
5
4.3k
高速なプロダクト開発を実現、創業期から掲げるエンタープライズアーキテクチャ
kawauso
2
9.4k
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
170
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Code Review Best Practice
trishagee
69
18k
Practical Orchestrator
shlominoach
189
11k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Navigating Team Friction
lara
187
15k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Transcript
IDཧͷΫϥυαʔϏε Extic ʹ͓͚Δ ηΩϡϦςΟͷऔΓΈ 201611݄30 ΤΫεδΣϯŋωοτϫʔΫεגࣜձࣾ ଜ ݈ଠ VAddy ϢʔβʔϛʔτΞοϓ
Vol.4
࣍ • ࣗݾհ • IDaaS Ͱ͋Δ Extic ͷհ • SCIM
ͷհ • Extic ʹ͓͚ΔηΩϡϦςΟͷऔΓΈʹ͍ͭͯ 2
ࣗݾհ • ଜ ݈ଠ(@nomnux) • ॴଐɿΤΫεδΣϯŋωοτϫʔΫε(ג) • ೝূؔ࿈ͷࣄʹैࣄ͔ͯ͠Ε͜Ε10 • ͖ͳݴޠɿPython
• ࠷ۙͷ͓ؾʹೖΓɿDockerɺAnsible • ͖ͳόΠΫϝʔΧʔɿSUZUKI (ླەอ࣋ऀ)
Extic հ
ͷલʹ࣭Ͱ͢
ʮIDaaSʯ ͬͯ·͔͢ʁ
IDaaS ? • ฉ͍ͨ͜ͱ͋Δ • ͍ͬͯΔ(Ϣʔβʔͱͯ͠) • ։ൃ͍ͯ͠Δ 7
IDaaS ؔ࿈Ωʔϫʔυ • LDAP • ϓϩϏδϣχϯά • ϑΣσϨʔγϣϯ • SAML
• OAuth • OpenID / OpenID Connect • SCIM (※ೖྗϝιουͰͳ͍Ͱ͢) 8
IDaaS ͱ • Identity as a Service • ʮID ཧʯʮγϯάϧαΠϯΦϯʯΛ
Ϋϥυ্ͷαʔϏεͱͯ͠ఏڙ͢Δ ͷ • ւ֎ɾࠃͰ༷ʑͳ IDaaS ࣄۀऀ͕αʔ ϏεΛల։͍ͯ͠Δ 9
IDaaS ͰͰ͖Δ͜ͱ 10 G Suite Office 365 ཧऀ ID ϓϩϏδϣχϯά
ΦϯϓϨAD/LDAP
IDaaS ͰͰ͖Δ͜ͱ 11 G Suite Office 365 γϯάϧαΠϯΦϯ(SSO) ར༻ऀ ϩάΠϯ
Extic • EXGEN Trusted Identity Center • EXGEN ͕࡞ͬͨ IDaaS
• ࠓͷͱ͜Ζจڭ͚ 12
Extic ͷػೳ • ID ϓϩϏδϣχϯά • G SuiteɺOffice 365 •
ΦϯϓϨͷ ADɾLDAP (ΤʔδΣϯτΛΦϯϓϨʹಋೖ) • γϯάϧαΠϯΦϯ (Ճ༧ఆ) • SAML • Shibboleth IdP (Ճ༧ఆ) • ֶज़ೝূϑΣσϨʔγϣϯ͚ 13
σϞ
SCIM ͷ͝հ
SCIM 16 SCIM Client SCIM Server JSON HTTP
ɹSCIM • System for Cross-domain Identity Management • http://www.simplecloud.info/ •
ID ཧ༻ͷ API (REST API) ͷ༷ • ϢʔβʔใάϧʔϓใΛ JSON Ͱදݱ͠ɺHTTP ϦΫΤετͰର αʔϏε(SCIM Server)ʹૹ৴͢Δ • Extic ͰҰ෦ͷػೳͰ SCIM(ͬΆ͍) REST API Λ࣮͍ͯ͠Δ • ࣮ྫ • https://api.slack.com/scim 17
SCIM ͷ JSON 18 { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], "userName": "
[email protected]
", "displayName":
"NIHON Taro", "nickName": "taro" }
SCIM Ͱར༻͢Δ HTTP ϝιου 19 ૢ࡞ HTTP ϝιου Ճ POST
ߋ৽ PUT (શଐੑߋ৽) PATCH (Ұ෦ଐੑߋ৽) আ DELETE औಘɾݕࡧ GET
SCIM ͷϦΫΤετ 20 $ curl \ -H “Authorization: *****” \
-H "Content-Type: application/scim+json" \ -X "POST" \ -d ‘{ JSON Λॻ͘(লུ) }’ \ https://scimsv.example.jp/v2/Users ϢʔβʔՃͷྫ
Extic ʹ͓͚Δ ηΩϡϦςΟͷऔΓΈ
ཧ • ͓٬͞Μͷ ID/PW Λ༬͔ΔͷͰηΩϡϦςΟେࣄ • ՄೳͳݶΓ(༧ࢉ͕ڐ͢ݶΓ)ઐϕϯμʔʹΑΔ੬ ऑੑݕࠪΛ࣮ࢪ͍ͨ͠ • VAddy
ͷΑ͏ͳݕࠪπʔϧΛ։ൃϓϩηεʹΈ ࠐΜͰසൟ(Ϗϧυຖ)ʹηΩϡϦςΟςετ͍ͨ͠ 22
ݱ࣮ • ઐϕϯμʔʹΑΔසൟͳݕࠪίετతʹແཧ • ϦϦʔεલʹݕࠪΛड͚ͨͱͯ͠ɺͦ͜Ͱ੬ऑੑ ͕ݟ͔ͭͬͯमਖ਼ʹ͕͔͔࣌ؒΔͷͰɺखΓ ͕େ͖͘ɺϦϦʔε͕ΕΔ • ϏϧυຖʹηΩϡϦςΟςετΛ࣮ࢪͯ݁͠ՌΛ ֬ೝ͖͠Εͳ͍
• ϩάͷ֬ೝେࣄ(ޙड़) 23
ݕࠪπʔϧɾαʔϏεൺֱ 24 VAddy skipfish OWASP ZAP ઐϕϯμʔ ༻қ த ߴ
ָ ݕ߲ࠪ গ ଟ ଟ API ͷݕࠪ O X(?) O ݕࠪ࣌ؒ ʙ ݁Ռͷ֬ೝ (ϩά·Ͱ֬ೝ) ͪΐͬͱ େม ͔ͳΓେม (ઈతͳྔ…) ָ
VAddy ͷϝϦοτ • ࣮ߦ͕؆୯ • खܰ͞େࣄ • ࣄલʹΫϩʔϧ͢Δ͜ͱͰɺݕࠪର URL ͕ߜΒΕΔ
• ݕࠪ࣌ؒͷॖɺϩά֬ೝͷݮ • API ͷݕ͕ࠪՄೳ • ׂΓΓ • ݕ߲ࠪΛ֦ॆ͍ͨ͠߹ଞͷπʔϧΛ͑Α͍ 25
ݱ࣮తͳηΩϡϦςΟςετܭը 26 ʑͷ։ൃ ෆ۩߹मਖ਼ ܰඍͳػೳՃ େنػೳՃ ఆظతͳશݕࠪ ηΩϡϦςΟςετ VAddy VAddyɾͦͷଞπʔϧ
ͦͷଞπʔϧɾઐϕϯμʔ ઐϕϯμʔ
ࠓޙͷ՝ • ࣗಈԽ • ΞϓϦͷσΟϓϩΠ ➡ ݕ࣮ࠪߦ ➡ ݕࠪ݁Ռ֬ೝ ͷࣗ
ಈԽ • ը໘ͷΫϩʔϧख࡞ۀͰΑ͍ • ࣗಈԽ͍ͨ͠ͱ͜ΖͰ͋Δ͕ɺͪΐͬͱେม… • ݱঢ়ɺͦ͜·Ͱը໘ଟ͘ͳ͍ͷͰɺΫϩʔϧ ख࡞ۀͰͳΜͱ͔ͳΔ 27
VAddy ಋೖͷཪ
น • VAddy ͷεΩϟϯ݁ՌͰ੬ऑੑແ͠ͱग़·ͨ͢ɻ͜ΕͰ҆৺Ͱ ͢ɻ • ͲΜͳݕࠪΛͯ͠Δͷ͔ϩάݟͯ֬ೝͯ͠ΈΑ͏ͣ • (ɹƅшƅ) •
ηογϣϯ͕ඞཁͳը໘ͷεΩϟϯͰΤϥʔฦͬͯͶ?… • (ͭд⊂)ŠƄŢŠƄŢ • ηογϣϯҡ࣋Ͱ͖ͯͳ͍ ➡ ηογϣϯ͕ඞཁͳը໘(ϩάΠϯը໘ Ҏ֎)ͷݕ͕ࠪͰ͖ͯͳ͍(T_T) 29
ਆରԠ • (E) VAddy ͔ΒͷεΩϟϯ࣌ʹηογϣϯҡ࣋Ͱ͖ͯͳ͍Α͏ Ͱ͢(T_T) • (૬ੑͱ͔͋ΔͩΖ͏͠ɺͲ͏ͯ͠εΩϟϯͰ͖ͳ͔ͬͨ Β VAddy
͖͋ΒΊΑ͏…) • (V) ରԠ͠·ͨ͠ʂ • (E) ͍͢·ͤΜɺࠓ CSRF ରࡦͷτʔΫϯ͕… • (V) ରԠ͠·ͨ͠ʂʂ 30
ͦͷଞʹ େม͓ੈʹͳΓ·ͨ͠… • (E) go-vaddy ίϚϯυͷΓ͕ظͱҧ͍·ͨ͠… • (V) मਖ਼͠·ͨ͠ʂ •
(E) API ͷΫϩʔϧ࣌ʹඌʹΫΤϦετϦϯά͚ͭΔͷ໘͍͘͞Ͱ ͢… • (V)͚ͭͳͯ͘Α͘͠·ͨ͠ʂ • (E) ͪΌΜͱΫϩʔϧͰ͖ͯΔͷ͔Ͳ͏͔ෆ҆Ͱ͢… • (V) ը໘ͰΫϩʔϧ݁ՌΛ֬ೝͰ͖ΔΑ͏ʹ͠·ͨ͠ʂ 31
ޙஊ • VAddy ͷεϐʔσΟʔͳରԠָ͕ͯ͘͠ɺ͍͍ͭͭηΩϡϦςΟ ςετʹ಄ • Docker ΛͬͯίϚϯυҰൃͰςετڥ࡞ΕΔΑ͏ʹͨ͠Γ • Nginx
ͷϩάग़ྗΛڧԽͨͯ͘͠ lua ॻ͘ͷʹ಄ͨ͠Γ • ຊۀ(Πϯϑϥ֦ுɺػೳՃ)ʹࢧো͕Ͱͩ͢… • (্࢘)ʮηΩϡϦςΟେࣄ͕ͩɺͦΖͦΖۭؾಡΊʯ • VAddy ͠Β͓͘༬͚ʹ… 32
ڭ܇ • ϩάͷ֬ೝॏཁ • πʔϧͷݕࠪ݁ՌΛӏವΈʹͤͣɺͪΌΜͱ Web αʔόʔΞϓϦͷϩά֬ೝ͢Δ • ηΩϡϦςΟςετґଘʹҙ •
ʮηΩϡϦςΟେࣄͰ͔͢Βʂʯͱ͔ݴ͍ͭͭɺ ʮςετΛޮతʹߦ͏ͨΊͷڥߏஙʯͱ͔ʹ ಄͠ͳ͍Α͏ʹҙ… 33
͋Γ͕ͱ͏͍͟͝·ͨ͠