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
480
Other Decks in Technology
See All in Technology
GitHub Copilot の概要
tomokusaba
1
150
FOSS4G 2025 KANSAI QGISで点群データをいろいろしてみた
kou_kita
0
200
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
180
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
1.3k
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
3
250
SpringBoot x TestContainerで実現するポータブル自動結合テスト
demaecan
0
120
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
230
MySQL5.6から8.4へ 戦いの記録
kyoshidaxx
1
300
開発生産性を組織全体の「生産性」へ! 部門間連携の壁を越える実践的ステップ
sudo5in5k
0
360
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
150
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
110
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
How to train your dragon (web standard)
notwaldorf
94
6.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
53k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Become a Pro
speakerdeck
PRO
28
5.4k
Designing Experiences People Love
moore
142
24k
A Modern Web Designer's Workflow
chriscoyier
694
190k
We Have a Design System, Now What?
morganepeng
53
7.7k
Building Applications with DynamoDB
mza
95
6.5k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠