Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
LIFF API のセキュリティ的な話
Search
捧隆二
March 28, 2023
Technology
750
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
LIFF API のセキュリティ的な話
捧隆二
March 28, 2023
More Decks by 捧隆二
See All by 捧隆二
LINEミニアプリ/LIFFアプリを サクッと作りたいならFirebase
arahabica
3
2.4k
LIFFで認証しようとしたら意外と奥が深かった話
arahabica
0
2k
Firebase x LINE / Ruby on Rails x LINEでログイン画面を無くそう
arahabica
0
2.6k
公式管理画面 vs 非公式管理画面
arahabica
0
630
Share Target Pickerを使ってLIFFアプリを拡散しよう
arahabica
0
1.1k
Share Target Pickerを使って消えるメッセージを作ってみた
arahabica
0
8.3k
非公式LINE管理画面を作ってみた
arahabica
0
500
Clovaで他とは違うスマートスピーカー体験
arahabica
0
170
LINEグループであそぼ
arahabica
1
430
Other Decks in Technology
See All in Technology
[re:Invent2026事前勉強会(有志開催)]続きは、ラスベガスの廊下で / continue-in-the-vegas-hallway
sh_fk2
0
430
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
180
渡米前の準備を制す!re:Invent 2026徹底準備術 / The Ultimate Preparation Guide for re:Invent 2026
yuj1osm
1
440
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
390
自律的なチームを作るためにTechPMがやらないこと
ny7760
0
230
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
570
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
350
How we choose session proposals
kawaguti
PRO
1
190
Snowflake でできることが増えたら、 ABAC が必要になった
kaeton
0
120
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
2k
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
120
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
1
160
Featured
See All Featured
New Earth Scene 8
popppiees
4
2.7k
Designing for Timeless Needs
cassininazir
1
530
The Language of Interfaces
destraynor
162
27k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
47k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
540
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
320
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
660
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Typedesign – Prime Four
hannesfritz
42
3.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
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. トークンで認証