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
SmartHRにおけるアカウントモデルの移行のはなし/Story of migration o...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takumi KANZAKI
December 08, 2018
Technology
6
2.3k
SmartHRにおけるアカウントモデルの移行のはなし/Story of migration of account model in SmartHR - Rails Developers Meetup 2018 Day 4 Nouvelle Vague -
Takumi KANZAKI
December 08, 2018
Tweet
Share
More Decks by Takumi KANZAKI
See All by Takumi KANZAKI
新生児〜生後6ヶ月を支えた技術/kosodate-engineer-meetup-3
tknzk
4
2.2k
kosodate_engineer_meetup_2
tknzk
3
6k
eb_with_multi_container_docker
tknzk
1
2.4k
AdServer Casual Monitoring by fluentd, Mackerel
tknzk
0
1.8k
Other Decks in Technology
See All in Technology
20260204_Midosuji_Tech
takuyay0ne
1
160
Tebiki Engineering Team Deck
tebiki
0
24k
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
OpenShiftでllm-dを動かそう!
jpishikawa
0
140
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
410
Red Hat OpenStack Services on OpenShift
tamemiya
0
140
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
120
AI駆動開発を事業のコアに置く
tasukuonizawa
1
400
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
1
170
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.7k
Agile Leadership Summit Keynote 2026
m_seki
1
680
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
120
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
New Earth Scene 8
popppiees
1
1.5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
170
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
BBQ
matthewcrist
89
10k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
90
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
96
Product Roadmaps are Hard
iamctodd
PRO
55
12k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
Transcript
SmartHRʹ͓͚ΔΞΧ ϯτϞσϧͷҠߦͷ ͳ͠ SmartHR, Inc Takumi Kanzaki (@tknzk)
͓͢Δ͜ͱ B2B SaaS Ͱ͋ΔSmartHR ͕ϓϩμΫτͷʹͱ ͳͬͯཁ͕݅มΘ͍͖ͬͯ B2B αʔϏεͷΞΧϯτϞσϧ͕ B2C αʔϏεͷ
ΞΧϯτϞσϧʹҠߦͭͭ͋͠Δ
SamrtHR ʹ͍ͭͯ • SmartHRਓࣄɾ࿑ͷखଓ͖ΛΧϯλϯʹ͢Δ ΫϥυܕιϑτΣΞͰ͢ • ϚϧνςφϯτΣϒΞϓϦέʔγϣϯ (MTWA) • SmartHR
ຊମ Rails ͷϞϊϦγοΫͳΞϓϦ έʔγϣϯ
SamrtHR ʹ͍ͭͯ • ਓࣄใͷऩू • ೖୀࣾ࣌ͳͲͷ༷ʑͳॻྨͷ࡞ • e-Gov APIΛར༻ͯ͠ͷ༷ʑͳॻྨͷఏग़ •
ޏ༻ܖػೳ • ௐػೳ • ैۀһDB • etc • ར༻ऀ: ਓࣄ࿑୲ऀ (ͱ ސࣾ࿑࢜) ͱ ैۀһ
None
MTWA ʹ͓͚ΔΞΧϯτϞ σϧ • αʔϏεશମͰΞΧϯτΛڞ༗͢Δ • GitHub • EMAIL ͳͲͰҰҙͷΞΧϯτ͕ൃߦ͞Ε
Δ • org ʹটͳͲͰඥ͚ͮ
MTWA ʹ͓͚ΔΞΧϯτϞ σϧ • ςφϯτ͝ͱʹΞΧϯτΛ࡞͢Δ • Slack, Kibela • ςφϯτ͝ͱʹΞΧϯτ͕ൃߦ͞ΕΔ
• ςφϯτͷΓସ͑ = ΞΧϯτͷΓସ ͑
SmartHR ʹ͓͚ΔΞΧϯτ ͱςφϯτͷؔ • σʔλߏతʹαʔϏεશମͰΞΧϯτΛڞ ༗ • ςφϯτͱϢʔβʔΓ͞Ε͍ͯΔΑ͏ʹݟ ͑Δ͕ɺ࣮ଶີ݁߹ •
Tenant ͱ User ͕ user.tenant_id ʹΑͬͯϦ Ϩʔγϣϯ • ͜ΕʹΑΓςφϯτʹΞΫηεͰ͖ΔΞΧϯ τΛ੍ޚ
SmartHR ʹ͓͚ΔΞΧϯτ ͱςφϯτͷؔ • ݖݶཧ • user.role_id Ͱݖݶઃఆ
SmartHR ʹ͓͚ΔΞΧϯτ ͱςφϯτͷؔ • ཁ͢Δʹ • user ʹςφϯτใͱݖݶใΛ͍࣋ͬͯΔঢ়ଶ
B2BαʔϏεʹ͓͚ΔΞΧ ϯτ • ςφϯτཧऀ͕ൃߦͯ͠ཧ͢Δ • ैۀһͷΞΧϯτ • AD ͱ͔ SSO
ͱ͔ SAML ͱ͔ IdP Ͱཧ͍ͨ͠ • ୀ৬ͨ͠Βണୣ/আ • ୀ৬ޙʹࣾͷυΩϡϝϯτͱ͔ΈΕΔͱ·ͣ ͍Ͱ͢ΑͶ?
SmartHRͷΞΧϯτ • ୀ৬ͨ͠Βണୣ? • ൱
SmartHRͷΞΧϯτ • ਓࣄ࿑୲ऀ • ୀ৬ऀʹ৬ථݯઘऩථΛൃߦͨ͠Γɺڅ ༩໌ࡉΛൃߦͨ͠Γ͍ͨ͠ • ୀ৬ऀɺ • աڈͷڅ༩໌ࡉݯઘऩථΛӾཡͨ͠Γͨ͠
͍
SmartHRͷΞΧϯτ • ࣮ձ͕ࣾཧ͢Δͱ͍͏ΑΓɺݸਓʹൃߦͯ͠ ͍Δͷͱߟ͑Δ΄͏Α͍͔͠Εͳ͍ • B2CαʔϏεͷཁ͕݅Ͱ͖ͯͭͭ͋Δ
ൃੜͨ͠ • ͓͔͛͞·Ͱ ϦϦʔε͔Β3ܦա͠ SmartHR Λ ͝ར༻͍ͨͩ͘اۀ͕ॱௐʹ૿Ճ • స৬ઌͰ SmartHR
Λར༻͍ͯ͠Δέʔε • ෳͷόΠτઌͰ SmartHR Λ͝ར༻͍ͯΔ έʔε
ൃੜͨ͠ • SmartHR ͷΞΧϯτϝΞυΛ ID ͱͯ͠ΞΧ ϯτΛൃߦ • ϝʔϧΞυϨε͕ॏෳ͢Δ͕ൃੜ •
ձࣾͷϝʔϧΞυϨε͕ൃߦ͞ΕΔΑΓલʹ SmartHR ΞΧϯτ͕ൃߦ͞ΕΔͨΊɺݸਓ ͷϝΞυΛ͏έʔε͋Δ • ΞϧόΠτͷ߹ɺݸਓͷϝʔϧΞυϨεΛར ༻͢Δέʔε͕ଟ͍
ϝΞυॏෳʹରԠ • ҰͭͷϝΞυͰ ෳͷςφϯτʹΞΫηεͰ͖Ε Ϥαι
ϚϧνϩάΠϯ • Ұͭͷ SmartHR ΞΧϯτͰෳͷςφϯτʹ ΞΫηεͰ͖Δػೳ • ͱͱɺࣾ࿑͚࢜ʹ࣮ • ෳͷސઌͷςφϯτͰཧऀͱͯ͠ϩάΠ
ϯ͍ͨ͠ͱ͍͏ཁ݅ • ݖݶཧಛʹߟྀ͍ͯ͠ͳ͔ͬͨ(ཧऀݖ ݶͷΈͩͬͨͨΊ)
ϚϧνϩάΠϯ • ࣾ࿑͚࢜ͷػೳͰ͋ͬͨͷͰɺಛఆͷϨίʔυ Λ͍࣋ͬͯΔ͔Ͱఆ͢Δ࣮ • ͜ΕΛશମ (ैۀһ͚ͷݖݶ) ʹ։์ͯ͠ɺϝΞ υͷॏෳΛղܾ͢Δ(ͨ͠)
ϚϧνϩάΠϯͷશମެ։ • user.tenant_id, user.role_id ͷͻ͖Λ ΊΔ • தؒςʔϒϧ (user_role) ʹஔ͖͑
• ΞΧϯτ͕ςφϯτʹͲͷݖݶͰΞΫηεͰ ͖Δ͔ͷใΛ࣋ͭ • user.user_role ͕ ςφϯτઐ༻ͷσʔλʹอ࣋ ͞ΕΔ
ϚϧνϩάΠϯͷશମެ։ • user ͕ tenant ͔ΒΓ͞ΕΔ͜ͱʹͳΔ • ΞΧϯτ͕ςφϯτͷ͔Βݸਓͷͷ • B2C
αʔϏεʹ͍͔ۙͨͪ
࣮ • ϚϧνςφϯτͷϛυϧΣΞͱͯ͠ • activerecord-multi-tenant gem Λར༻ • https:/ /github.com/citusdata/activerecord-multi-
tenant/ • (Ҏલ apartment gem Λར༻͍ͯ͠·͕ͨ͠ࠓ ͷ6݄ʹҠߦ)
࣮ • ϚϧνϩάΠϯͷͨΊͷΓସ͑ͷΤϯυϙΠϯ τ https://app.smarthr.jp Ͱఏڙ • app ಛผͳαϒυϝΠϯͰɺςφϯτΛΓସ ͑ͳ͍ঢ়ଶͱ͍͏ѻ͍
• ϩάΠϯɺϚϧνϩάΠϯͷςφϯτΓସ͑ ͳͲΛߦ͏
࣮࣌ʹى͖ͨ͜ͱ • user.user_role ͕ṖʹΩϟογϡ͞Εͯ͠·͏ • app ԼͰ user.user_role Λ৮ͬͯ͠·͏ͱ active-record
͕ΩϟογϡΛ࣋ͬͯ͠·͍ • ຊདྷΞΫηε͖͢Ͱͳ͍σʔλΛऔͬͯ͠·͍ ςφϯτΓସ͑ޙͷڍಈ͕͓͔͘͠ͳΔ
࣮࣌ʹى͖ͨ͜ͱ • ͜ΕΒɺ active-record/multi-tenant ͷվम • ͦͦ ςφϯτΛΓସ͍͑ͯͳ͍ঢ়ଶͰ user.user_role Λ৮Βͳ͍ͳͲͷमਖ਼Λͯ͠ղ
ܾ
SmartHR ʹ͓͚ΔΞΧϯτ ͱςφϯτͷؔ(ݱࡏ) • σʔλߏతʹαʔϏεશମͰΞΧϯτΛڞ ༗ • ςφϯτͱΞΧϯτΓ͞Εͨؔ • ςφϯτͷதͰͲͷݖݶΛ͍࣋ͬͯΔ͔Λఆ
͜Ε͔Β • SmartHR::ID ߏ • B2CϕʔεͳΞΧϯτϞσϧ + ݸਓใαʔϏ ε
None
None
None
SmartHR::ID ߏ • SmartHR ͷΞΧϯτΛ͍࣋ͬͯΕస৬స੶ Λͨ͋͠ͱͰɺաڈͷࣗͷैۀһใͳͲΛ ӾཡͰ͖Δ • څ༩໌ࡉͱ͔ݯઘऩථͱ͔ •
ैۀһใΛաڈॴଐ͍ͯͨ͠اۀ͔Βస৬ઌ ʹ 1 click Πϯϙʔτͨ͠Γ • ϚΠφϯόʔͷ༬͔Γอ (๏্͋Εͳ ͋Γ·͢.. )
SmartHR::ID ߏ • ࣾձΠϯϑϥ(ͷՄೳੑ)ͱ͍͖ͯͬͯ͠
We are hiring! • Ұॹʹࣾձج൫ΛϋοΫ͢ΔؒืूதͰ͢ • དྷ SmartHR::ID ߏΛ۩ମԽͤ͞Δ༧ఆͳͷͰ ҰॹʹΓ·ͤΜ͔ʂ
• ࢲ͕த৺ͳΔ༧ఆͰ͢ʂ • SSO ͱ͔ SAML ͱ͔AD ͱ͔ৄ͍͠ํ͜ͷ͋ͱ͓ ͠·ͤΜ͔ʂ
Who • @tknzk ( Takumi Kanzaki ) • SmartHR ιϑτΣΞΤϯ
δχΞ