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
LIFF API のセキュリティ的な話
Search
捧隆二
March 28, 2023
Technology
0
470
LIFF API のセキュリティ的な話
捧隆二
March 28, 2023
Tweet
Share
More Decks by 捧隆二
See All by 捧隆二
LINEミニアプリ/LIFFアプリを サクッと作りたいならFirebase
arahabica
3
1.8k
LIFFで認証しようとしたら意外と奥が深かった話
arahabica
0
1.7k
Firebase x LINE / Ruby on Rails x LINEでログイン画面を無くそう
arahabica
0
2.1k
公式管理画面 vs 非公式管理画面
arahabica
0
520
Share Target Pickerを使ってLIFFアプリを拡散しよう
arahabica
0
950
Share Target Pickerを使って消えるメッセージを作ってみた
arahabica
0
7.5k
非公式LINE管理画面を作ってみた
arahabica
0
400
Clovaで他とは違うスマートスピーカー体験
arahabica
0
130
LINEグループであそぼ
arahabica
1
370
Other Decks in Technology
See All in Technology
20250122_個人向けCopilotどうなん
ponponmikankan
0
190
スクラムマスターの活動と組織からの期待のズレへの対応 / Dealing with the gap between Scrum Master activities and organizational expectations
pauli
2
980
論文紹介 ”Long-Context LLMs Meet RAG: Overcoming Challenges for Long Inputs in RAG” @GDG Tokyo
shukob
0
240
実践!生成AIのビジネス活用 / How to utilize Generative AI in your own business
gakumura
1
190
SREKaigi.pdf
_awache
2
3.1k
一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself
vtryo
7
4.9k
あなたはJVMの気持ちを理解できるか?
skrb
5
1.8k
アクセシブルなマークアップの上に成り立つユーザーファーストなドロップダウンメニューの実装 / 20250127_cloudsign_User1st_FE
bengo4com
1
1.1k
Platform EngineeringがあればSREはいらない!? 新時代のSREに求められる役割とは
mshibuya
2
3.3k
サーバレスの未来〜The Key to Simplifying Everything〜
kawaji_scratch
2
330
DMMブックスへのTipKit導入
ttyi2
1
150
HCP Terraformで実現するPlatform Engineering/nikkei-tech-talk-29
nikkei_engineer_recruiting
0
200
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Mobile First: as difficult as doing things right
swwweet
222
9.1k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
11
890
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
Measuring & Analyzing Core Web Vitals
bluesmoon
5
210
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Making Projects Easy
brettharned
116
6k
Transcript
LINE Developer Community 【React/Vercelハンズオン】LINEミニアプリ×microCMSでサロン向けアプリを作ろう LIFF API のセキュリティ的な話 2022.03.28 捧 隆⼆
1
⾃⼰紹介 捧 隆⼆ (ささげ りゅうじ) ITエンジニア ⼤学院在学中に⼤阪でITスタートアップを起業。 上京後、外資系ITコンサル、フィンテック企業を経験。 2019年にボイスアップラボの創業メンバーとして参画。LINE関連 の開発に従事。
LINE BOOT AWARDS 2018 部⾨賞受賞。2021年よりLINE API Expert。 趣味は温泉めぐり。 2 Arahabica @Arahabica1
今回のハンズオンにおける認証 3
今回のハンズオンにおける認証 • 認証はほぼしていない • LINEのユーザーIDをそのままMicroCMSに保存 Ø ユーザーIDを知っているだけでは認証にはならない 4
今回のハンズオンにおける認証 • 認証はほぼしていない • LINEのユーザーIDをそのままMicroCMSに保存 Ø ユーザーIDを知っているだけでは認証にはならない Ø 本番環境では危険︕ 5
なぜ危ない︖ • IDの漏洩リスク • 他のユーザの情報を表⽰する際に漏れるリスク 6 Aさん Bさん Cさん Ranking
なぜ危ない︖ • IDの漏洩リスク • 他のユーザの情報を表⽰する際に漏れるリスク • IDなので変更不能 • IDなので暗号論的に安全に⽣成される乱数とは限らない •
ID: 001があるとID: 002もあるかもしれない。 • 推測、総当たり可能性 7
LIFFの認証 8
LIFFの認証 1. LIFFでアクセストークンを取得 2. アクセストークンをサーバに送信 3. サーバからLINEにアクセストークンを送りプロフィール取得 4. 問題なければ認証成功 9
LIFFの認証 1. LIFFでアクセストークンを取得 2. アクセストークンをサーバに送信 3. サーバからLINEにアクセストークンを送りプロフィール取得 4. 問題なければ認証成功 Ø
公式のドキュメントに詳細載っています。 https://developers.line.biz/ja/docs/liff/using-user-profile/#use-user- info-on-server 10
LIFFの認証の実装の流れ 11
LIFFの認証の実装の流れ 1. LIFFアプリを初期化 12 LINE ミニアプリ Server 1. 初期化
LIFFの認証の実装の流れ 1. ミニアプリを初期化 2. トークン取得 13 LINE ミニアプリ Server 1.
初期化 2. トークン取得
LIFFの認証の実装の流れ 1. ミニアプリを初期化 2. トークン取得 3. トークン送付 14 LINE ミニアプリ
Server 1. 初期化 2. トークン取得 3. トークン送付
LIFFの認証の実装の流れ 1. ミニアプリを初期化 2. トークン取得 3. トークン送付 4. トークン検証 15
LINE ミニアプリ Server 1. 初期化 2. トークン取得 3. トークン送付 4. トークン検証
LIFFの認証の実装の流れ 1. ミニアプリを初期化 2. トークン取得 3. トークン送付 4. トークン検証 5.
認証情報共有 16 LINE ミニアプリ Server 1. 初期化 2. トークン取得 3. トークン送付 4. トークン検証 5. 認証情報共有
LIFFの認証の実装の流れ 1. ミニアプリを初期化 2. トークン取得 3. トークン送付 4. トークン検証 5.
認証情報共有 Ø ここが⼀番たいへん Ø 認証ライブラリが想定していない 17 LINE ミニアプリ Server 1. 初期化 2. トークン取得 3. トークン送付 4. トークン検証 5. 認証情報共有
FirebaseによるLIFFの認証の実装 18
FirebaseによるLIFFの認証の実装 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 19
FirebaseによるLIFFの認証の実装 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付
4. トークン検証 20 LINE Cloud Functions Authentication 1. 2. 3. 4.
FirebaseによるLIFFの認証の実装 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付
4. トークン検証 5. カスタムトークン作成 21 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成
FirebaseによるLIFFの認証の実装 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付
4. トークン検証 5. カスタムトークン作成 6. カスタムトークン取得 22 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成 6. トークン取得
FirebaseによるLIFFの認証の実装 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付
4. トークン検証 5. カスタムトークン作成 6. カスタムトークン取得 7. カスタムトークンで認証 23 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成 6. トークン取得 7. トークンで認証
FirebaseによるLIFFの認証の実装 • Firebase Authenticationのカスタムトークン作成機能を使うと対応可能 1. ミニアプリを初期化 2. トークン取得 3. トークン送付
4. トークン検証 5. カスタムトークン作成 6. カスタムトークン取得 7. カスタムトークンで認証 • 詳細は記事参照 • https://qiita.com/Arahabica/items/8f5c7472ded92128535f 24 LINE Cloud Functions Authentication 1. 2. 3. 4. 5. トークン作成 6. トークン取得 7. トークンで認証