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.2k
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
440
Other Decks in Technology
See All in Technology
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
320
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
12
4.4k
データモデルYANGの処理系を再発明した話
tjmtrhs
0
180
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.7k
OCI Success Journey OCIの何が評価されてる?疑問に答える事例セミナー(2025年2月実施)
oracle4engineer
PRO
2
180
AIエージェント入門
minorun365
PRO
32
19k
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.4k
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
5.3k
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.8k
AIエージェント開発のノウハウと課題
pharma_x_tech
8
4.3k
入門 PEAK Threat Hunting @SECCON
odorusatoshi
0
170
クラウド関連のインシデントケースを収集して見えてきたもの
lhazy
9
1.8k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
520
Git: the NoSQL Database
bkeepers
PRO
428
65k
The Invisible Side of Design
smashingmag
299
50k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Writing Fast Ruby
sferik
628
61k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠