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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
捧隆二
March 28, 2023
Technology
0
650
LIFF API のセキュリティ的な話
捧隆二
March 28, 2023
Tweet
Share
More Decks by 捧隆二
See All by 捧隆二
LINEミニアプリ/LIFFアプリを サクッと作りたいならFirebase
arahabica
3
2.3k
LIFFで認証しようとしたら意外と奥が深かった話
arahabica
0
2k
Firebase x LINE / Ruby on Rails x LINEでログイン画面を無くそう
arahabica
0
2.5k
公式管理画面 vs 非公式管理画面
arahabica
0
580
Share Target Pickerを使ってLIFFアプリを拡散しよう
arahabica
0
1.1k
Share Target Pickerを使って消えるメッセージを作ってみた
arahabica
0
7.9k
非公式LINE管理画面を作ってみた
arahabica
0
460
Clovaで他とは違うスマートスピーカー体験
arahabica
0
150
LINEグループであそぼ
arahabica
1
410
Other Decks in Technology
See All in Technology
メタデータ同期に潜んでいた問題 〜 Cache Stampede 時の Cycle Wait を⾒つけた話
lycorptech_jp
PRO
0
150
Agentic Software Modernization - Back to the Roots (Zürich Agentic Coding and Architectures, März 2026)
feststelltaste
1
230
AWSをCLIで理解したい! / I want to understand AWS using the CLI
mel_27
2
230
元エンジニアPdM、IDEが恋しすぎてCursorに全業務を集約したら、スライド作成まで爆速になった話
doiko123
1
500
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
8
7.1k
タスク管理も1on1も、もう「管理」じゃない ― KiroとBedrock AgentCoreで変わった"判断の仕事"
yusukeshimizu
5
2.1k
型を書かないRuby開発への挑戦
riseshia
0
200
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
9
1.4k
Kiro のクレジットを使い切る!
otanikohei2023
0
120
Datadog の RBAC のすべて
nulabinc
PRO
3
360
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
430
ビズリーチにおける検索・推薦の取り組み / DEIM2026
visional_engineering_and_design
1
120
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
The browser strikes back
jonoalderson
0
770
The Limits of Empathy - UXLibs8
cassininazir
1
250
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Facilitating Awesome Meetings
lara
57
6.8k
Site-Speed That Sticks
csswizardry
13
1.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
My Coaching Mixtape
mlcsv
0
67
Large-scale JavaScript Application Architecture
addyosmani
515
110k
[SF Ruby Conf 2025] Rails X
palkan
2
820
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
89
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. トークンで認証