SlideShare a Scribd company logo
ハッシュタグ
#LINEDC
LINE Developer Communityとは?
• LINE Platformでものづくりするエンジニア・クリエイターによ
るLINE社外の人が集まるコミュニティです。
• 要はLINEで面白いものを作ったり、エンジニア同士の情報交
換・コラボを促進しようというコミュニティ
Follow me!
メンバー数4000名以上!
勉強会イベント情報
全コンテンツ無料。
ぜひ登録お願いします!
https://linedevelopercommunity.connpass.com/
チャンネル登録お願いします🙇
本日のアーカイブ/最新情報や事例の紹介
勉強会動画を分かりやすく編集してアップ
/ LINE DC
などなど
登録者増 = Flutter大学さんとのさらなるコラボレーショ
ンが可能になり、より多くのコンテンツをお届けできる
ようになります!
概要欄にURL貼っていただきました!
コンテンツ紹介
今後もYoutubeチャンネルで、LINE開発者必見情報を続々発信!
LINE Platformの
最新アップデートを
定期的にお届け
モバイル以外のLINEログイン勘
所を話している動画もあります
#linedc
ざっくり解説 LINE ログイン
2021/09/08
Naohiro Fujie
@phr_eidentity
#linedc
⾃⼰紹介
• 役割
• OpenIDファウンデーション・ジャパン代表理事、KYC WGリーダー
• ⽶国OpenID Foundation eKYC and Identity Assurance WG, co-chair
• 書き物など
• Blog:IdM実験室(https://idmlab.eidentity.jp)
• 監訳 : クラウド時代の認証基盤 Azure Active Directory 完全解説
• 共著 : クラウド環境におけるアイデンティティ管理ガイドライン
• その他活動
• ⽇本ネットワークセキュリティ協会アイデンティティ管理WG
• Microsoft MVP for Enterprise Mobility(Jan 2010 -)
• LINE API Expert (Feb 2018 -)
• Auth0 Ambassador(Sep 2018 -)
Copyright Naohiro Fujie, 2021 7
#linedc
コンテンツ
• LINE ログインとは?
• OpenID Connect って何?
• ”OAuth 認証“って⾔われるものと違うの?
• セキュアに使うには?
• LINE ログインならではの便利機能
Copyright Naohiro Fujie, 2021 8
#linedc
LINE ログインとは?
公式ドキュメントより
• もっと簡単に LINE につながる
• 利便性を上げてコンバージョンレートを向上
• 圧倒的なユーザーベース
• 2億⼈以上が登録、70%のアクティブ率
• 簡単なアカウント作成
• LINE アカウントを使ってタップ1つでアカウント作成
• パーソナライゼーション
• 表⽰名、プロフィール画像等へアクセス、魅⼒的なユーザ体験を提供
※出典)https://developers.line.biz/ja/services/line-login/
Copyright Naohiro Fujie, 2021 9
#linedc
アプリケーションへの組み込み⽅
• Webアプリ
• 認証・認可のプロセスは OAuth2.0 と OpenID Connect プロトコルに
基づく
• ネイティブアプリ
• iOS、Android、Unity
• LINE SDK を利⽤
• LINE SDK for iOS Swift
• LINE SDK for iOS Objective-C
• LINE SDK for Android
• LINE SDK for Unity
• LINE SDK for Flutter
Copyright Naohiro Fujie, 2021 10
#linedc
LINE ログインの機能
• 認証
• ⾃動ログイン:LINE アプリで⾃動的にログイン
• メールアドレスログイン:メールアドレスとパスワードでログイン
• QR コードログイン:QR コードを LINE アプリで読み込みログイン
• シングルサインオン(SSO)によるログイン:過去のログイン状態を保持
• ユーザの識別、プロフィールの取得
• 表⽰名、ユーザID、プロフィール画像のURL、ステータスメッセージ取得
• 申請によりメールアドレス、Profile+の詳細情報も取得可能
Copyright Naohiro Fujie, 2021 11
#linedc
LINE ログインの裏側を知る
• LINE ログインの認証・認可のプロセスは OAuth2.0 と OpenID
Connect プロトコルに基づく
• 認可フレームワークである OAuth2.0 (RFC6749)の上にシン
プルなアイデンティティレイヤを付与したものが OpenID
Connect(OpenID Foundation にて仕様策定)
• 関連仕様(⽇本語訳):
https://www.openid.or.jp/document/
Copyright Naohiro Fujie, 2021 12
#linedc
LINE ログインが対応している関連仕様
• JWx
• RFC 7519 : JWT(JSON Web Token)
• RFC 7515 : JWS(JSON Web Signature)
• RFC 7517 : JWK(JSON Web Key)
• OAuth2.0
• RFC 6749 : The OAuth2.0 Authorization Framework
• RFC 6750 : The OAuth2.0 Authorization Framework Bearer Token Usage
• RFC 7636 : PKCE(Proof Key for Code Exchange)
• OpenID Connect
• OpenID Connect Core 1.0
• OpenID Connect Discovery 1.0
Copyright Naohiro Fujie, 2021 13
#linedc
OpenID Connectとは
• OpenID Connect 1.0 は, OAuth 2.0 プロトコルの上にシンプルなア
イデンティティレイヤーを付与したものである. このプロトコルは
Client が Authorization Server の認証結果に基づいて End-User の
アイデンティティを検証可能にする. また同時に End-User の必要最
低限のプロフィール情報を, 相互運⽤可能かつ RESTful な形で取得
することも可能にする.
• OpenID Connect Core 1.0 ⽇本語訳
• http://openid-foundation-japan.github.io/openid-connect-core-1_0.ja.html
• OpenIDファウンデーション・ジャパン翻訳・教育WG
Copyright Naohiro Fujie, 2021 14
#linedc
OAuth2.0とは
• OAuth 2.0 は, サードパーティーアプリケーションによるHTTP
サービスへの限定的なアクセスを可能にする認可フレームワー
クである.
• RFC 6749: The OAuth 2.0 Authorization Framework ⽇本語訳
• http://openid-foundation-japan.github.io/rfc6749.ja.html
• OpenIDファウンデーション・ジャパン翻訳・教育WG
Copyright Naohiro Fujie, 2021 15
#linedc
• サードパーティアプリケーション:OAuthクライアント
• HTTPサービス:リソースサーバ
• 限定的なアクセス:スコープ
• 可能にする(サービス):認可サーバ
Copyright Naohiro Fujie, 2021 16
OAuthクライアント
(Webアプリ、スマホアプリなど)
リソースサーバ
(API、サービス)
認可サーバ
(OAuthサーバ)
利⽤者
(リソースオーナー)
スコープに基づき許可
(認可)
認可に基づき
アクセストークンを発⾏
アクセストークンを
提⽰してアクセス
リソースを所有
#linedc
典型的な使われ⽅
• カレンダーアプリとGoogle Calendarの連携
Copyright Naohiro Fujie, 2021 17
カレンダーアプリ
Google Calendar API
Google Account
利⽤者
(リソースオーナー)
カレンダーアプリに対して
アイテムの読み出しを許可
認可に基づき
アクセストークンを発⾏
アクセストークンを
提⽰してアクセス
リソースを所有
#linedc
認証/ID連携(OAuth認証)の誤⽤理由①
• アクセス許可を⾏う前にログインする為、アクセストークンを
認証の結果得られたものとして扱ってしまう
Copyright Naohiro Fujie, 2021 18
カレンダーアプリ
Google Calendar API
Google Account
利⽤者
(リソースオーナー)
カレンダーアプリに対して
アイテムの読み出しを許可
認可に基づき
アクセストークンを発⾏
アクセストークンを
提⽰してアクセス
リソースを所有
ログイン(認証)
#linedc
認証/ID連携(OAuth認証)の誤⽤理由②
• 殆どのサービスがプロファイル取得APIを⽤意しており、アク
セストークンでID情報の取得が可能。アクセストークンの持ち
主=リソースオーナーとみなしてしまう
Copyright Naohiro Fujie, 2021 19
カレンダーアプリ
Google Account API
Google Account
利⽤者
(リソースオーナー)
カレンダーアプリに対して
アイテムの読み出しを許可
認可に基づき
アクセストークンを発⾏
アクセストークンを
提⽰してアクセス
リソースを所有
ID情報の取得が可能
#linedc
よく考えると
• アクセストークンは無記名式の切符(誰が持ってきてもOK)
• 認可サーバはアクセストークンの有効性検証は出来るが、持参⼈=発⾏者かどうかは検証できない
• 何故なら、
• 基本的にアクセストークンは単なる⽂字列(ハンドルトークン)
• ※最近はJWT形式のAssertion Tokenもありますがややこしくなるので割愛
• 認可サーバには以下のように保存されている(イメージ)
• Authorization HeaderにBearer xxxx(トークン)って書きますよね?
• Bearer(ベアラ)=持参⼈。持ってきた⼈に利⽤を許可する、ということ
• 参考)https://idmlab.eidentity.jp/2013/09/bearer-token.html
Copyright Naohiro Fujie, 2021 20
アクセストークン 発⾏者 有効期限 スコープ
nQ6wtY3K#UCWRtE6 Yamada Taro 2019-03-15 18:30:00 Email Profie
xU,RRjaa.iZLnNgJ Tanaka Hanako 2019-03-15 19:00:00 Calendar.Read
#linedc
OAuth2.0とは
• OAuth 2.0 は, サードパーティーアプリケーションによるHTTP
サービスへの限定的なアクセスを可能にする認可フレームワー
クである.
• RFC 6749: The OAuth 2.0 Authorization Framework ⽇本語訳
• http://openid-foundation-japan.github.io/rfc6749.ja.html
• OpenIDファウンデーション・ジャパン翻訳・教育WG
Copyright Naohiro Fujie, 2021 21
認証/ID連携は仕様のスコープ外
#linedc
認証/ID連携に使うには?
• OAuthクライアントがリソースサーバ側のユーザ情報を取得できること
• 認証された結果を把握できること
• リソースオーナーのID情報を把握できること
• OpenID Connectにおける実現⽅法=アイデンティティレイヤー
• ID Token : 認証結果(アサーション)の取得⽅法の標準化
• UserInfoエンドポイント : ID情報の取得⽅法の標準化
※ID TokenにもID情報を含められるがトークンのサイズの巨⼤化の問題や認証時以外の情報取得に対応す
るためUserInfoを使⽤
Copyright Naohiro Fujie, 2021 22
#linedc
OpenID Connectとは
• OpenID Connect 1.0 は, OAuth 2.0 プロトコルの上にシンプル
なアイデンティティレイヤーを付与したものである. このプロ
トコルは Client が Authorization Server の認証結果に基づいて
End-User のアイデンティティを検証可能にする. また同時に
End-User の必要最低限のプロフィール情報を, 相互運⽤可能か
つ RESTful な形で取得することも可能にする.
• OpenID Connect Core 1.0 ⽇本語訳
• http://openid-foundation-japan.github.io/openid-connect-core-
1_0.ja.html
• OpenIDファウンデーション・ジャパン翻訳・教育WG
Copyright Naohiro Fujie, 2021 23
アイデンティティレイヤー
=
ID Token、UserInfoエンドポイント
#linedc
OAuthとOpenID Connectの違いの例
(code flow)
項⽬ OAuth OpenID Connect
認可リクエストの
パラメータ
scope 任意 必須(openid)
redirect_uri 任意 必須
nonce - 任意
セキュリティ対策
(code置き換えへの対策)
PKCE
(codeとセッション紐づけ)
nonce
(codeとid_tokenの紐づけ)
トークンの種類 access_token
(発⾏対象者の情報なし)
id_token
(発⾏対象者の情報あり)
プロファイル取得⽅法 標準化対象外 userInfoエンドポイント
Copyright Naohiro Fujie, 2021 24
キモは「scope=openid」と「id_token」と「userInfoエンドポイント」
#linedc
具体的なフロー
(code flow)
LINEの場合のエンドポイント
• Authorization Endpoint
• https://access.line.me/oauth2/v2.1/authorize
• Token Endpoint
• https://api.line.me/oauth2/v2.1/token
• Profile Endpoint
• https://api.line.me/v2/profile
Copyright Naohiro Fujie, 2021 25
#linedc
id_token
• JWT(JSON Web Token)形式
• JSON Web Token (JWT) - draft-ietf-oauth-json-web-token-11 ⽇本語訳
• http://openid-foundation-japan.github.io/draft-ietf-oauth-json-web-token-
11.ja.html
• OpenIDファウンデーション・ジャパン翻訳・教育WG
• 内部構造
• ヘッダ:署名や暗号化形式など
• ペイロード:クレーム(属性)セット、暗号化する場合も
• シグニチャ:デジタル署名
• Base64Urlエンコードし、”.”で各パートを連結する
• eyJhb̶snip--iJ9.eyJpc3̶snip--pwIn0.gC4ub--snip--yBm0
Copyright Naohiro Fujie, 2021 26
#linedc
id_tokenの中⾝
• jwt.io(by Auth0)とかjwt.ms(by MS)
Copyright Naohiro Fujie, 2021 27
#linedc
id_tokenの中⾝
Claim Type Value Notes
iss https://access.line.me JWTの発⾏者(issuer)を表す識別⼦
sub U9f1cac4f164ef3f5c02c92d00
67a11a1
JWTの主体(subject)を表す識別⼦
LINEの場合はuserId
aud 1516319320 JWTの発⾏先(audience)を表す識別⼦
LINEの場合はclient_id
exp 1552324580 JWTの有効期限(UNIX Time)
iat 1552320980 JWTの発⾏時刻(UNIX Time)
nonce 51501f6a-9a12-4d42-ad72-
0d36e44df96f
リクエスト時に設定したnonceの値
リクエストと発⾏されたid_tokenの中の値がマッチ
するかどうかを検査し置き換え攻撃を検知する
name Naohiro Fujie 名前。LINEの場合は表⽰名
picture https://profile.line-
scdn.net/0m0--snip-- xxx
プロファイル写真のURL
email naohiro.fujie@example.jp メールアドレス
Copyright Naohiro Fujie, 2021 28
#linedc
セキュアにつかうには
• SDKの利活⽤ > プロトコルの仕様に基づき実装
• ステートレスなプロトコルであるHTTP上でリダイレクトを繰り返
しながらブラウザ、認可サーバ、クライアント、リソースの間でや
りとりをする
• どこで通信を偽装されても⼤丈夫なようにプロトコルは設計されている
(stateとかnonceとか)
• が、⼿動で実装するとどうしても「繋がった!万歳!」で終わってしまい、
必要な検証を⾶ばしてしまう⼈が多い
• 解はできるだけ信頼できるSDK、ライブラリを使うこと
• もちろんプロトコルを深く理解して実装することができれば望ましい
Copyright Naohiro Fujie, 2021 29
#linedc
LINE ログインならではの便利機能
• シームレスにログイン
• 「⾃動ログイン」
• https://developers.line.biz/ja/faq/#how-does-auto-login-work
• LINE内ブラウザもしくはビルトインブラウザ(iOS/Safari、Android/Chrome)
でアクセスするとLINEアプリで⾃動ログイン
• UniversalLink、暗黙的インテントを利⽤
• 「シングルサインオン」
• https://developers.line.biz/ja/docs/line-login/integrate-line-login/#line-sso-
login
• ログイン済みのセッションの保存、ワンタップでログイン可能
Copyright Naohiro Fujie, 2021 30
#linedc
LINE ログインならではの便利機能
• パスワードを使わないログイン
• 「QRコードログイン」
• https://developers.line.biz/ja/docs/line-
login/integrate-line-login/#mail-or-qrcode-login
• initial_amr_display=lineqrを指定することにより
デフォルトログイン⽅法がQRコードになる
• switch_amr=falseを指定するとログイン⽅法の切
り替えを無効にできる(QRコードのみにログイン
⽅法を限定する、等が可能)
Copyright Naohiro Fujie, 2021 31
#linedc
LINE ログインならではの便利機能
• ログイン時に公式アカウントと友達になる
• bot_prompt設定
• normal : 同意画⾯で友達になるかどうか選択させる
• aggressive : 同意画⾯の後に友達になることを促す画⾯を出す
Copyright Naohiro Fujie, 2021 32
Normal Aggressive
#linedc
その他、留意事項
• メールアドレスの取得
• scopeとして指定できるのは、
• openid, email, profileの3種類
• emailを指定しても、あらかじめ許可
設定をしておかないとダメ
• Emailはprofileではなくid_tokenのみ
に含まれる
• そして、tokenレスポンス内のscope
にはemailは出てこない(指定していても)
Copyright Naohiro Fujie, 2021 33
Get Connected with LINE/LINEを介して実現される様々な繋がりや連携
LINE Developers Community REV UP 2021(以下、「REV UP」) はLINEのコミュニティが主催する国内最
大のLINE関連カンファレンスです。各分野のエキスパートがLINE関連の技術や事例、知見について惜しみ
なく発信する様々なセッションが今年も数多く行われます。
また、今年のテーマは「Get Connected with LINE」です。ぜひ、本カンファレンスを介して様々な繋がり出会
いを実現していただければ幸いです。

More Related Content

PDF
実装して理解するLINE LoginとOpenID Connect入門
PDF
LINE Login総復習
PDF
OpenID Connect のビジネスチャンス
PDF
OpenID ConnectとSCIMの標準化動向
PDF
今なら間に合う分散型IDとEntra Verified ID
PDF
なぜOpenID Connectが必要となったのか、その歴史的背景
PDF
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
PPTX
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
実装して理解するLINE LoginとOpenID Connect入門
LINE Login総復習
OpenID Connect のビジネスチャンス
OpenID ConnectとSCIMの標準化動向
今なら間に合う分散型IDとEntra Verified ID
なぜOpenID Connectが必要となったのか、その歴史的背景
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
KeycloakでFAPIに対応した高セキュリティなAPIを公開する

What's hot (20)

PDF
Black Belt Online Seminar Amazon Cognito
PDF
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
PDF
エンタープライズITでのOpenID Connect利用ガイドライン
PDF
20231109_OpenID_TechNight_OpenID_Federation.pdf
PDF
Keycloakの最近のトピック
PDF
OpenID Connectとネイティブアプリを取り巻く仕様と動向 Yahoo! JAPANの取り組み #openid #openid_tokyo
PPTX
AKS と ACI を組み合わせて使ってみた
PDF
MicrosoftのDID/VC実装概要
PDF
20200630 AWS Black Belt Online Seminar Amazon Cognito
PDF
パスワードのいらない世界へ  FIDO認証の最新状況
PDF
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID - OpenID Summit 2020
PDF
20200818 AWS Black Belt Online Seminar AWS Shield Advanced
PDF
単なるキャッシュじゃないよ!?infinispanの紹介
PDF
SSIとDIDで何を解決したいのか?(β版)
PDF
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
PDF
OpenID ConnectとAndroidアプリのログインサイクル
PDF
プロトコルから見るID連携
PDF
Infrastructure as Code (IaC) 談義 2022
PDF
Keycloak拡張入門
PDF
組織におけるアイデンティティ管理の基本的な考え方
Black Belt Online Seminar Amazon Cognito
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
エンタープライズITでのOpenID Connect利用ガイドライン
20231109_OpenID_TechNight_OpenID_Federation.pdf
Keycloakの最近のトピック
OpenID Connectとネイティブアプリを取り巻く仕様と動向 Yahoo! JAPANの取り組み #openid #openid_tokyo
AKS と ACI を組み合わせて使ってみた
MicrosoftのDID/VC実装概要
20200630 AWS Black Belt Online Seminar Amazon Cognito
パスワードのいらない世界へ  FIDO認証の最新状況
次世代 IDaaS のポイントは本人確認 NIST と、サプライチェーンセキュリティと、みなしご ID - OpenID Summit 2020
20200818 AWS Black Belt Online Seminar AWS Shield Advanced
単なるキャッシュじゃないよ!?infinispanの紹介
SSIとDIDで何を解決したいのか?(β版)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
OpenID ConnectとAndroidアプリのログインサイクル
プロトコルから見るID連携
Infrastructure as Code (IaC) 談義 2022
Keycloak拡張入門
組織におけるアイデンティティ管理の基本的な考え方
Ad

Similar to ざっくり解説 LINE ログイン (20)

PDF
OpenID Connect primer
PPT
Securing RESTful API
PDF
OpenID Connect Explained
PDF
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
PPTX
Authorization and Authentication using IdentityServer4
PDF
Implementing Microservices Security Patterns & Protocols with Spring
PDF
Application Security in ASP.NET Core
PPTX
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
PDF
Lynx Webinar #3: Lynx Services Platform (LySP) - Part 1 - Overview
PPTX
OAuth with AngularJS and WebAPI - SoCal Code Camp 2015
PDF
Seamless OAuth2.0 and OpenID Connect in VAST
PPTX
OAuth with Salesforce - Demystified
PDF
Securing .NET Core, ASP.NET Core applications
PDF
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
PPTX
Webinar: Embracing REST APIs through APPSeCONNECT
PPTX
Box connector
PDF
SAML VS OAuth 2.0 VS OpenID Connect
PPTX
Mastering Authorization: Integrating Authentication and Authorization Data in...
PDF
What is the ORCID API and what you can do with it? (R. Peters)
PDF
OSCON 2018 Getting Started with Hyperledger Indy
OpenID Connect primer
Securing RESTful API
OpenID Connect Explained
AllTheTalks.Online 2020: "Basics of OAuth 2.0 and OpenID Connect"
Authorization and Authentication using IdentityServer4
Implementing Microservices Security Patterns & Protocols with Spring
Application Security in ASP.NET Core
Configuring Single Sign-On (SSO) via Identity Management | MuleSoft Mysore Me...
Lynx Webinar #3: Lynx Services Platform (LySP) - Part 1 - Overview
OAuth with AngularJS and WebAPI - SoCal Code Camp 2015
Seamless OAuth2.0 and OpenID Connect in VAST
OAuth with Salesforce - Demystified
Securing .NET Core, ASP.NET Core applications
2019 - Tech Talk DC - Token-based security for web applications using OAuth2 ...
Webinar: Embracing REST APIs through APPSeCONNECT
Box connector
SAML VS OAuth 2.0 VS OpenID Connect
Mastering Authorization: Integrating Authentication and Authorization Data in...
What is the ORCID API and what you can do with it? (R. Peters)
OSCON 2018 Getting Started with Hyperledger Indy
Ad

More from Naohiro Fujie (20)

PDF
分散型IDと検証可能なアイデンティティ技術概要
PDF
Azure AD B2CにIdPを色々と繋いでみる
PDF
LINEログインの最新アップデートとアプリ連携ウォークスルー
PDF
Azure AD x LINE x Auth0
PDF
LINE Payも取り組んでいるKYCってなんだろう?KYCの基本と最近の動向
PDF
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
PDF
自己主権型IDと分散型ID
PDF
Azure ADの外部コラボレーションとBYOID
PDF
祝!公式サポート Auth0 + LINE Login
PDF
IDaaSにSign in with Appleをつないでみた
PDF
次世代KYCと自己主権型アイデンティティの動向
PDF
これからの KYC と Identity on Blockchain の動向
PDF
教育機関におけるBYOIDとKYC
PDF
コンシューマIDのエンタープライズ領域での活用
PDF
大学等におけるAzure AD B2Cを使用したSNS認証の活用
PDF
Azure AD B2C + LINE 学校や企業における次世代 ID/ メッセージ基盤
PDF
Azure ADとLINE連携により実現する学校や企業における次世代ID/メッセージ基盤
PDF
認証/メッセージング領域へのモバイル/ソーシャルネットワークIDの活用
PDF
大学等におけるAzure AD B2Cを使用したSNS認証の活用
PDF
アイデンティティ API とデータ統合プラットフォームの活用
分散型IDと検証可能なアイデンティティ技術概要
Azure AD B2CにIdPを色々と繋いでみる
LINEログインの最新アップデートとアプリ連携ウォークスルー
Azure AD x LINE x Auth0
LINE Payも取り組んでいるKYCってなんだろう?KYCの基本と最近の動向
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
自己主権型IDと分散型ID
Azure ADの外部コラボレーションとBYOID
祝!公式サポート Auth0 + LINE Login
IDaaSにSign in with Appleをつないでみた
次世代KYCと自己主権型アイデンティティの動向
これからの KYC と Identity on Blockchain の動向
教育機関におけるBYOIDとKYC
コンシューマIDのエンタープライズ領域での活用
大学等におけるAzure AD B2Cを使用したSNS認証の活用
Azure AD B2C + LINE 学校や企業における次世代 ID/ メッセージ基盤
Azure ADとLINE連携により実現する学校や企業における次世代ID/メッセージ基盤
認証/メッセージング領域へのモバイル/ソーシャルネットワークIDの活用
大学等におけるAzure AD B2Cを使用したSNS認証の活用
アイデンティティ API とデータ統合プラットフォームの活用

Recently uploaded (20)

PDF
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Google’s NotebookLM Unveils Video Overviews
PDF
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
PDF
Why Endpoint Security Is Critical in a Remote Work Era?
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Event Presentation Google Cloud Next Extended 2025
PDF
Top Generative AI Tools for Patent Drafting in 2025.pdf
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
PPTX
CroxyProxy Instagram Access id login.pptx
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PPTX
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
PPTX
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
PDF
creating-agentic-ai-solutions-leveraging-aws.pdf
PDF
agentic-ai-and-the-future-of-autonomous-systems.pdf
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
PDF
DevOps & Developer Experience Summer BBQ
PDF
Smarter Business Operations Powered by IoT Remote Monitoring
PPTX
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Google’s NotebookLM Unveils Video Overviews
How Onsite IT Support Drives Business Efficiency, Security, and Growth.pdf
Why Endpoint Security Is Critical in a Remote Work Era?
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Event Presentation Google Cloud Next Extended 2025
Top Generative AI Tools for Patent Drafting in 2025.pdf
NewMind AI Weekly Chronicles - July'25 - Week IV
CroxyProxy Instagram Access id login.pptx
GamePlan Trading System Review: Professional Trader's Honest Take
Telecom Fraud Prevention Guide | Hyperlink InfoSystem
A Day in the Life of Location Data - Turning Where into How.pdf
breach-and-attack-simulation-cybersecurity-india-chennai-defenderrabbit-2025....
creating-agentic-ai-solutions-leveraging-aws.pdf
agentic-ai-and-the-future-of-autonomous-systems.pdf
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
DevOps & Developer Experience Summer BBQ
Smarter Business Operations Powered by IoT Remote Monitoring
How Much Does It Cost to Build a Train Ticket App like Trenitalia in Italy.pptx

ざっくり解説 LINE ログイン

  • 2. LINE Developer Communityとは? • LINE Platformでものづくりするエンジニア・クリエイターによ るLINE社外の人が集まるコミュニティです。 • 要はLINEで面白いものを作ったり、エンジニア同士の情報交 換・コラボを促進しようというコミュニティ
  • 4. チャンネル登録お願いします🙇 本日のアーカイブ/最新情報や事例の紹介 勉強会動画を分かりやすく編集してアップ / LINE DC などなど 登録者増 = Flutter大学さんとのさらなるコラボレーショ ンが可能になり、より多くのコンテンツをお届けできる ようになります! 概要欄にURL貼っていただきました!
  • 7. #linedc ⾃⼰紹介 • 役割 • OpenIDファウンデーション・ジャパン代表理事、KYC WGリーダー • ⽶国OpenID Foundation eKYC and Identity Assurance WG, co-chair • 書き物など • Blog:IdM実験室(https://idmlab.eidentity.jp) • 監訳 : クラウド時代の認証基盤 Azure Active Directory 完全解説 • 共著 : クラウド環境におけるアイデンティティ管理ガイドライン • その他活動 • ⽇本ネットワークセキュリティ協会アイデンティティ管理WG • Microsoft MVP for Enterprise Mobility(Jan 2010 -) • LINE API Expert (Feb 2018 -) • Auth0 Ambassador(Sep 2018 -) Copyright Naohiro Fujie, 2021 7
  • 8. #linedc コンテンツ • LINE ログインとは? • OpenID Connect って何? • ”OAuth 認証“って⾔われるものと違うの? • セキュアに使うには? • LINE ログインならではの便利機能 Copyright Naohiro Fujie, 2021 8
  • 9. #linedc LINE ログインとは? 公式ドキュメントより • もっと簡単に LINE につながる • 利便性を上げてコンバージョンレートを向上 • 圧倒的なユーザーベース • 2億⼈以上が登録、70%のアクティブ率 • 簡単なアカウント作成 • LINE アカウントを使ってタップ1つでアカウント作成 • パーソナライゼーション • 表⽰名、プロフィール画像等へアクセス、魅⼒的なユーザ体験を提供 ※出典)https://developers.line.biz/ja/services/line-login/ Copyright Naohiro Fujie, 2021 9
  • 10. #linedc アプリケーションへの組み込み⽅ • Webアプリ • 認証・認可のプロセスは OAuth2.0 と OpenID Connect プロトコルに 基づく • ネイティブアプリ • iOS、Android、Unity • LINE SDK を利⽤ • LINE SDK for iOS Swift • LINE SDK for iOS Objective-C • LINE SDK for Android • LINE SDK for Unity • LINE SDK for Flutter Copyright Naohiro Fujie, 2021 10
  • 11. #linedc LINE ログインの機能 • 認証 • ⾃動ログイン:LINE アプリで⾃動的にログイン • メールアドレスログイン:メールアドレスとパスワードでログイン • QR コードログイン:QR コードを LINE アプリで読み込みログイン • シングルサインオン(SSO)によるログイン:過去のログイン状態を保持 • ユーザの識別、プロフィールの取得 • 表⽰名、ユーザID、プロフィール画像のURL、ステータスメッセージ取得 • 申請によりメールアドレス、Profile+の詳細情報も取得可能 Copyright Naohiro Fujie, 2021 11
  • 12. #linedc LINE ログインの裏側を知る • LINE ログインの認証・認可のプロセスは OAuth2.0 と OpenID Connect プロトコルに基づく • 認可フレームワークである OAuth2.0 (RFC6749)の上にシン プルなアイデンティティレイヤを付与したものが OpenID Connect(OpenID Foundation にて仕様策定) • 関連仕様(⽇本語訳): https://www.openid.or.jp/document/ Copyright Naohiro Fujie, 2021 12
  • 13. #linedc LINE ログインが対応している関連仕様 • JWx • RFC 7519 : JWT(JSON Web Token) • RFC 7515 : JWS(JSON Web Signature) • RFC 7517 : JWK(JSON Web Key) • OAuth2.0 • RFC 6749 : The OAuth2.0 Authorization Framework • RFC 6750 : The OAuth2.0 Authorization Framework Bearer Token Usage • RFC 7636 : PKCE(Proof Key for Code Exchange) • OpenID Connect • OpenID Connect Core 1.0 • OpenID Connect Discovery 1.0 Copyright Naohiro Fujie, 2021 13
  • 14. #linedc OpenID Connectとは • OpenID Connect 1.0 は, OAuth 2.0 プロトコルの上にシンプルなア イデンティティレイヤーを付与したものである. このプロトコルは Client が Authorization Server の認証結果に基づいて End-User の アイデンティティを検証可能にする. また同時に End-User の必要最 低限のプロフィール情報を, 相互運⽤可能かつ RESTful な形で取得 することも可能にする. • OpenID Connect Core 1.0 ⽇本語訳 • http://openid-foundation-japan.github.io/openid-connect-core-1_0.ja.html • OpenIDファウンデーション・ジャパン翻訳・教育WG Copyright Naohiro Fujie, 2021 14
  • 15. #linedc OAuth2.0とは • OAuth 2.0 は, サードパーティーアプリケーションによるHTTP サービスへの限定的なアクセスを可能にする認可フレームワー クである. • RFC 6749: The OAuth 2.0 Authorization Framework ⽇本語訳 • http://openid-foundation-japan.github.io/rfc6749.ja.html • OpenIDファウンデーション・ジャパン翻訳・教育WG Copyright Naohiro Fujie, 2021 15
  • 16. #linedc • サードパーティアプリケーション:OAuthクライアント • HTTPサービス:リソースサーバ • 限定的なアクセス:スコープ • 可能にする(サービス):認可サーバ Copyright Naohiro Fujie, 2021 16 OAuthクライアント (Webアプリ、スマホアプリなど) リソースサーバ (API、サービス) 認可サーバ (OAuthサーバ) 利⽤者 (リソースオーナー) スコープに基づき許可 (認可) 認可に基づき アクセストークンを発⾏ アクセストークンを 提⽰してアクセス リソースを所有
  • 17. #linedc 典型的な使われ⽅ • カレンダーアプリとGoogle Calendarの連携 Copyright Naohiro Fujie, 2021 17 カレンダーアプリ Google Calendar API Google Account 利⽤者 (リソースオーナー) カレンダーアプリに対して アイテムの読み出しを許可 認可に基づき アクセストークンを発⾏ アクセストークンを 提⽰してアクセス リソースを所有
  • 18. #linedc 認証/ID連携(OAuth認証)の誤⽤理由① • アクセス許可を⾏う前にログインする為、アクセストークンを 認証の結果得られたものとして扱ってしまう Copyright Naohiro Fujie, 2021 18 カレンダーアプリ Google Calendar API Google Account 利⽤者 (リソースオーナー) カレンダーアプリに対して アイテムの読み出しを許可 認可に基づき アクセストークンを発⾏ アクセストークンを 提⽰してアクセス リソースを所有 ログイン(認証)
  • 19. #linedc 認証/ID連携(OAuth認証)の誤⽤理由② • 殆どのサービスがプロファイル取得APIを⽤意しており、アク セストークンでID情報の取得が可能。アクセストークンの持ち 主=リソースオーナーとみなしてしまう Copyright Naohiro Fujie, 2021 19 カレンダーアプリ Google Account API Google Account 利⽤者 (リソースオーナー) カレンダーアプリに対して アイテムの読み出しを許可 認可に基づき アクセストークンを発⾏ アクセストークンを 提⽰してアクセス リソースを所有 ID情報の取得が可能
  • 20. #linedc よく考えると • アクセストークンは無記名式の切符(誰が持ってきてもOK) • 認可サーバはアクセストークンの有効性検証は出来るが、持参⼈=発⾏者かどうかは検証できない • 何故なら、 • 基本的にアクセストークンは単なる⽂字列(ハンドルトークン) • ※最近はJWT形式のAssertion Tokenもありますがややこしくなるので割愛 • 認可サーバには以下のように保存されている(イメージ) • Authorization HeaderにBearer xxxx(トークン)って書きますよね? • Bearer(ベアラ)=持参⼈。持ってきた⼈に利⽤を許可する、ということ • 参考)https://idmlab.eidentity.jp/2013/09/bearer-token.html Copyright Naohiro Fujie, 2021 20 アクセストークン 発⾏者 有効期限 スコープ nQ6wtY3K#UCWRtE6 Yamada Taro 2019-03-15 18:30:00 Email Profie xU,RRjaa.iZLnNgJ Tanaka Hanako 2019-03-15 19:00:00 Calendar.Read
  • 21. #linedc OAuth2.0とは • OAuth 2.0 は, サードパーティーアプリケーションによるHTTP サービスへの限定的なアクセスを可能にする認可フレームワー クである. • RFC 6749: The OAuth 2.0 Authorization Framework ⽇本語訳 • http://openid-foundation-japan.github.io/rfc6749.ja.html • OpenIDファウンデーション・ジャパン翻訳・教育WG Copyright Naohiro Fujie, 2021 21 認証/ID連携は仕様のスコープ外
  • 22. #linedc 認証/ID連携に使うには? • OAuthクライアントがリソースサーバ側のユーザ情報を取得できること • 認証された結果を把握できること • リソースオーナーのID情報を把握できること • OpenID Connectにおける実現⽅法=アイデンティティレイヤー • ID Token : 認証結果(アサーション)の取得⽅法の標準化 • UserInfoエンドポイント : ID情報の取得⽅法の標準化 ※ID TokenにもID情報を含められるがトークンのサイズの巨⼤化の問題や認証時以外の情報取得に対応す るためUserInfoを使⽤ Copyright Naohiro Fujie, 2021 22
  • 23. #linedc OpenID Connectとは • OpenID Connect 1.0 は, OAuth 2.0 プロトコルの上にシンプル なアイデンティティレイヤーを付与したものである. このプロ トコルは Client が Authorization Server の認証結果に基づいて End-User のアイデンティティを検証可能にする. また同時に End-User の必要最低限のプロフィール情報を, 相互運⽤可能か つ RESTful な形で取得することも可能にする. • OpenID Connect Core 1.0 ⽇本語訳 • http://openid-foundation-japan.github.io/openid-connect-core- 1_0.ja.html • OpenIDファウンデーション・ジャパン翻訳・教育WG Copyright Naohiro Fujie, 2021 23 アイデンティティレイヤー = ID Token、UserInfoエンドポイント
  • 24. #linedc OAuthとOpenID Connectの違いの例 (code flow) 項⽬ OAuth OpenID Connect 認可リクエストの パラメータ scope 任意 必須(openid) redirect_uri 任意 必須 nonce - 任意 セキュリティ対策 (code置き換えへの対策) PKCE (codeとセッション紐づけ) nonce (codeとid_tokenの紐づけ) トークンの種類 access_token (発⾏対象者の情報なし) id_token (発⾏対象者の情報あり) プロファイル取得⽅法 標準化対象外 userInfoエンドポイント Copyright Naohiro Fujie, 2021 24 キモは「scope=openid」と「id_token」と「userInfoエンドポイント」
  • 25. #linedc 具体的なフロー (code flow) LINEの場合のエンドポイント • Authorization Endpoint • https://access.line.me/oauth2/v2.1/authorize • Token Endpoint • https://api.line.me/oauth2/v2.1/token • Profile Endpoint • https://api.line.me/v2/profile Copyright Naohiro Fujie, 2021 25
  • 26. #linedc id_token • JWT(JSON Web Token)形式 • JSON Web Token (JWT) - draft-ietf-oauth-json-web-token-11 ⽇本語訳 • http://openid-foundation-japan.github.io/draft-ietf-oauth-json-web-token- 11.ja.html • OpenIDファウンデーション・ジャパン翻訳・教育WG • 内部構造 • ヘッダ:署名や暗号化形式など • ペイロード:クレーム(属性)セット、暗号化する場合も • シグニチャ:デジタル署名 • Base64Urlエンコードし、”.”で各パートを連結する • eyJhb̶snip--iJ9.eyJpc3̶snip--pwIn0.gC4ub--snip--yBm0 Copyright Naohiro Fujie, 2021 26
  • 28. #linedc id_tokenの中⾝ Claim Type Value Notes iss https://access.line.me JWTの発⾏者(issuer)を表す識別⼦ sub U9f1cac4f164ef3f5c02c92d00 67a11a1 JWTの主体(subject)を表す識別⼦ LINEの場合はuserId aud 1516319320 JWTの発⾏先(audience)を表す識別⼦ LINEの場合はclient_id exp 1552324580 JWTの有効期限(UNIX Time) iat 1552320980 JWTの発⾏時刻(UNIX Time) nonce 51501f6a-9a12-4d42-ad72- 0d36e44df96f リクエスト時に設定したnonceの値 リクエストと発⾏されたid_tokenの中の値がマッチ するかどうかを検査し置き換え攻撃を検知する name Naohiro Fujie 名前。LINEの場合は表⽰名 picture https://profile.line- scdn.net/0m0--snip-- xxx プロファイル写真のURL email [email protected] メールアドレス Copyright Naohiro Fujie, 2021 28
  • 29. #linedc セキュアにつかうには • SDKの利活⽤ > プロトコルの仕様に基づき実装 • ステートレスなプロトコルであるHTTP上でリダイレクトを繰り返 しながらブラウザ、認可サーバ、クライアント、リソースの間でや りとりをする • どこで通信を偽装されても⼤丈夫なようにプロトコルは設計されている (stateとかnonceとか) • が、⼿動で実装するとどうしても「繋がった!万歳!」で終わってしまい、 必要な検証を⾶ばしてしまう⼈が多い • 解はできるだけ信頼できるSDK、ライブラリを使うこと • もちろんプロトコルを深く理解して実装することができれば望ましい Copyright Naohiro Fujie, 2021 29
  • 30. #linedc LINE ログインならではの便利機能 • シームレスにログイン • 「⾃動ログイン」 • https://developers.line.biz/ja/faq/#how-does-auto-login-work • LINE内ブラウザもしくはビルトインブラウザ(iOS/Safari、Android/Chrome) でアクセスするとLINEアプリで⾃動ログイン • UniversalLink、暗黙的インテントを利⽤ • 「シングルサインオン」 • https://developers.line.biz/ja/docs/line-login/integrate-line-login/#line-sso- login • ログイン済みのセッションの保存、ワンタップでログイン可能 Copyright Naohiro Fujie, 2021 30
  • 31. #linedc LINE ログインならではの便利機能 • パスワードを使わないログイン • 「QRコードログイン」 • https://developers.line.biz/ja/docs/line- login/integrate-line-login/#mail-or-qrcode-login • initial_amr_display=lineqrを指定することにより デフォルトログイン⽅法がQRコードになる • switch_amr=falseを指定するとログイン⽅法の切 り替えを無効にできる(QRコードのみにログイン ⽅法を限定する、等が可能) Copyright Naohiro Fujie, 2021 31
  • 32. #linedc LINE ログインならではの便利機能 • ログイン時に公式アカウントと友達になる • bot_prompt設定 • normal : 同意画⾯で友達になるかどうか選択させる • aggressive : 同意画⾯の後に友達になることを促す画⾯を出す Copyright Naohiro Fujie, 2021 32 Normal Aggressive
  • 33. #linedc その他、留意事項 • メールアドレスの取得 • scopeとして指定できるのは、 • openid, email, profileの3種類 • emailを指定しても、あらかじめ許可 設定をしておかないとダメ • Emailはprofileではなくid_tokenのみ に含まれる • そして、tokenレスポンス内のscope にはemailは出てこない(指定していても) Copyright Naohiro Fujie, 2021 33
  • 34. Get Connected with LINE/LINEを介して実現される様々な繋がりや連携 LINE Developers Community REV UP 2021(以下、「REV UP」) はLINEのコミュニティが主催する国内最 大のLINE関連カンファレンスです。各分野のエキスパートがLINE関連の技術や事例、知見について惜しみ なく発信する様々なセッションが今年も数多く行われます。 また、今年のテーマは「Get Connected with LINE」です。ぜひ、本カンファレンスを介して様々な繋がり出会 いを実現していただければ幸いです。