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
Takumi KANZAKI
December 08, 2018
Technology
2.3k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SmartHRにおけるアカウントモデルの移行のはなし/Story of migration of account model in SmartHR - Rails Developers Meetup 2018 Day 4 Nouvelle Vague -
Takumi KANZAKI
December 08, 2018
More Decks by Takumi KANZAKI
See All by Takumi KANZAKI
新生児〜生後6ヶ月を支えた技術/kosodate-engineer-meetup-3
tknzk
4
2.3k
kosodate_engineer_meetup_2
tknzk
3
6.1k
eb_with_multi_container_docker
tknzk
1
2.5k
AdServer Casual Monitoring by fluentd, Mackerel
tknzk
0
1.9k
Other Decks in Technology
See All in Technology
承認ゲートは何を守っているのか? AIエージェントの自律購入を実測した結果
yama3133
1
110
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
290
ClaudeCodeでセキュリティ監視業務を半自動化_1年の運用でわかったAIに任せる設計の5つのポイント
kintotechdev
4
1k
bet_ai_day_2026_session02
agenticsec
1
360
分割40%キーボードにスムーズに入門するには
hoto17296
1
210
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
0
1k
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.3k
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
210
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
0
190
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
320
AIレビュー時代に必要なのは、SLOで引く撤退ライン
nobuoooo
0
160
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
The Cult of Friendly URLs
andyhume
79
7k
KATA
mclloyd
PRO
35
15k
From π to Pie charts
rasagy
0
340
Designing for Performance
lara
611
70k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Un-Boring Meetings
codingconduct
0
400
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Are puppies a ranking factor?
jonoalderson
2
3.9k
The agentic SEO stack - context over prompts
schlessera
0
880
We Have a Design System, Now What?
morganepeng
55
8.3k
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 ιϑτΣΞΤϯ
δχΞ