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
440
LIFF API のセキュリティ的な話
捧隆二
March 28, 2023
Tweet
Share
More Decks by 捧隆二
See All by 捧隆二
LINEミニアプリ/LIFFアプリを サクッと作りたいならFirebase
arahabica
3
1.7k
LIFFで認証しようとしたら意外と奥が深かった話
arahabica
0
1.7k
Firebase x LINE / Ruby on Rails x LINEでログイン画面を無くそう
arahabica
0
2k
公式管理画面 vs 非公式管理画面
arahabica
0
520
Share Target Pickerを使ってLIFFアプリを拡散しよう
arahabica
0
950
Share Target Pickerを使って消えるメッセージを作ってみた
arahabica
0
7.4k
非公式LINE管理画面を作ってみた
arahabica
0
400
Clovaで他とは違うスマートスピーカー体験
arahabica
0
130
LINEグループであそぼ
arahabica
1
360
Other Decks in Technology
See All in Technology
2024年にチャレンジしたことを振り返るぞ
mitchan
0
130
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
0
430
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
190
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
13
3.6k
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
180
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
AIのコンプラは何故しんどい?
shujisado
1
190
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
240
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
160
kargoの魅力について伝える
magisystem0408
0
200
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Six Lessons from altMBA
skipperchong
27
3.5k
A Tale of Four Properties
chriscoyier
157
23k
Building Your Own Lightsaber
phodgson
103
6.1k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Navigating Team Friction
lara
183
15k
What's in a price? How to price your products and services
michaelherold
243
12k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Automating Front-end Workflow
addyosmani
1366
200k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
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. トークンで認証