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
Claude Code に プロジェクト管理やらせたみた
unson
6
4.1k
スタートアップに選択肢を 〜生成AIを活用したセカンダリー事業への挑戦〜
nstock
0
210
いつの間にか入れ替わってる!?新しいAWS Security Hubとは?
cmusudakeisuke
0
130
DatabricksにOLTPデータベース『Lakebase』がやってきた!
inoutk
0
110
ゼロからはじめる採用広報
yutadayo
3
950
OPENLOGI Company Profile for engineer
hr01
1
34k
Delta airlines®️ USA Contact Numbers: Complete 2025 Support Guide
airtravelguide
0
340
united airlines ™®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedhelp
1
340
SmartNewsにおける 1000+ノード規模 K8s基盤 でのコスト最適化 – Spot・Gravitonの大規模導入への挑戦
vsanna2
0
140
What’s new in Android development tools
yanzm
0
320
OPENLOGI Company Profile
hr01
0
67k
CDKTFについてざっくり理解する!!~CloudFormationからCDKTFへ変換するツールも作ってみた~
masakiokuda
1
150
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
BBQ
matthewcrist
89
9.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Statistics for Hackers
jakevdp
799
220k
GitHub's CSS Performance
jonrohan
1031
460k
Embracing the Ebb and Flow
colly
86
4.7k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
The Language of Interfaces
destraynor
158
25k
How to Think Like a Performance Engineer
csswizardry
25
1.7k
Bash Introduction
62gerente
613
210k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠