Accueil
Explorer
Soumettre la recherche
Mettre en ligne
S’identifier
S’inscrire
Publicité
実装して理解するLINE LoginとOpenID Connect入門
Signaler
Naohiro Fujie
Suivre
Deputy General Manager à CTC
13 Mar 2019
•
0 j'aime
20 j'aime
×
Soyez le premier à aimer ceci
afficher plus
•
21,048 vues
vues
×
Nombre de vues
0
Sur Slideshare
0
À partir des intégrations
0
Nombre d'intégrations
0
Check these out next
マイクロにしすぎた結果がこれだよ!
mosa siru
今なら間に合う分散型IDとEntra Verified ID
Naohiro Fujie
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
マイクロサービス 4つの分割アプローチ
増田 亨
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
REST API のコツ
pospome
人生がときめくAPIテスト自動化 with Karate
Takanori Suzuki
AWSのログ管理ベストプラクティス
Akihiro Kuwano
1
sur
28
Top clipped slide
実装して理解するLINE LoginとOpenID Connect入門
13 Mar 2019
•
0 j'aime
20 j'aime
×
Soyez le premier à aimer ceci
afficher plus
•
21,048 vues
vues
×
Nombre de vues
0
Sur Slideshare
0
À partir des intégrations
0
Nombre d'intégrations
0
Télécharger maintenant
Télécharger pour lire hors ligne
Signaler
Technologie
2019/3/15のLINE Login勉強会資料
Naohiro Fujie
Suivre
Deputy General Manager à CTC
Publicité
Publicité
Publicité
Recommandé
LINE Login総復習
Naohiro Fujie
767 vues
•
42 diapositives
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
Naoki Nagazumi
22.4K vues
•
131 diapositives
ざっくり解説 LINE ログイン
Naohiro Fujie
947 vues
•
34 diapositives
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
22.3K vues
•
40 diapositives
認証の課題とID連携の実装 〜ハンズオン〜
Masaru Kurahayashi
8.7K vues
•
170 diapositives
RESTful Web アプリの設計レビューの話
Takuto Wada
71.9K vues
•
29 diapositives
Contenu connexe
Présentations pour vous
(20)
マイクロにしすぎた結果がこれだよ!
mosa siru
•
131.3K vues
今なら間に合う分散型IDとEntra Verified ID
Naohiro Fujie
•
9.6K vues
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi
•
144.9K vues
マイクロサービス 4つの分割アプローチ
増田 亨
•
40.2K vues
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
•
1.7K vues
REST API のコツ
pospome
•
52K vues
人生がときめくAPIテスト自動化 with Karate
Takanori Suzuki
•
9K vues
AWSのログ管理ベストプラクティス
Akihiro Kuwano
•
75.1K vues
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
•
55.4K vues
アイデンティティ (ID) 技術の最新動向とこれから
Tatsuo Kudo
•
8.4K vues
俺が考えた最強のID連携デザインパターン
Masaru Kurahayashi
•
9.4K vues
なぜOpenID Connectが必要となったのか、その歴史的背景
Tatsuo Kudo
•
48.1K vues
例外設計における大罪
Takuto Wada
•
66.3K vues
世界一わかりやすいClean Architecture
Atsushi Nakamura
•
45.1K vues
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
•
86.1K vues
Kongの概要と導入事例
briscola-tokyo
•
2.7K vues
OpenID Connect のビジネスチャンス
OpenID Foundation Japan
•
6.4K vues
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
•
12.8K vues
Azure Api Management 俺的マニュアル 2020年3月版
貴志 上坂
•
5.6K vues
Dockerからcontainerdへの移行
Kohei Tokunaga
•
15.3K vues
Similaire à 実装して理解するLINE LoginとOpenID Connect入門
(20)
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
Takashi Yahata
•
2.7K vues
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
Takashi Yahata
•
2.2K vues
Keycloakの紹介と最新開発動向
Yuichi Nakamura
•
2.8K vues
認証技術、デジタルアイデンティティ技術の最新動向
Tatsuo Kudo
•
10.6K vues
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
Takashi Yahata
•
1.3K vues
OpenID Connect入門
土岐 孝平
•
1.7K vues
Spring Social でソーシャルログインを実装する
Rakuten Group, Inc.
•
10.7K vues
OpenIDファウンデーション・ジャパンKYC WGの活動報告 - OpenID Summit 2020
OpenID Foundation Japan
•
1.6K vues
IDaaSにSign in with Appleをつないでみた
Naohiro Fujie
•
5.1K vues
クラウドにおける Windows Azure Active Directory の役割
junichi anno
•
5.2K vues
Yahoo! JAPANのOpenID Certified Mark取得について
Masaru Kurahayashi
•
2.7K vues
Azure AD B2CにIdPを色々と繋いでみる
Naohiro Fujie
•
965 vues
Azure ADとIdentity管理
Naohiro Fujie
•
24.8K vues
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
Tatsuo Kudo
•
19.2K vues
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
WESEEKWESEEK
•
207 vues
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Tatsuo Kudo
•
1.8K vues
OpenID TechNight - Ping Identity 製品紹介
Daisuke Fuke
•
2.6K vues
OCHaCafe#5 - 避けては通れない!認証・認可
オラクルエンジニア通信
•
3.2K vues
YAPC::Tokyo 2013 ritou OpenID Connect
Ryo Ito
•
16.8K vues
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
•
890 vues
Publicité
Plus de Naohiro Fujie
(20)
分散型IDと検証可能なアイデンティティ技術概要
Naohiro Fujie
•
2.7K vues
LINEログインの最新アップデートとアプリ連携ウォークスルー
Naohiro Fujie
•
838 vues
Azure AD x LINE x Auth0
Naohiro Fujie
•
551 vues
LINE Payも取り組んでいるKYCってなんだろう?KYCの基本と最近の動向
Naohiro Fujie
•
694 vues
MicrosoftのDID/VC実装概要
Naohiro Fujie
•
3.7K vues
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
Naohiro Fujie
•
2K vues
自己主権型IDと分散型ID
Naohiro Fujie
•
4.8K vues
Azure ADの外部コラボレーションとBYOID
Naohiro Fujie
•
1.7K vues
祝!公式サポート Auth0 + LINE Login
Naohiro Fujie
•
4.6K vues
次世代KYCと自己主権型アイデンティティの動向
Naohiro Fujie
•
3.7K vues
これからの KYC と Identity on Blockchain の動向
Naohiro Fujie
•
10.4K vues
SSIとDIDで何を解決したいのか?(β版)
Naohiro Fujie
•
23.8K vues
教育機関におけるBYOIDとKYC
Naohiro Fujie
•
1.2K vues
組織におけるアイデンティティ管理の基本的な考え方
Naohiro Fujie
•
5K vues
コンシューマIDのエンタープライズ領域での活用
Naohiro Fujie
•
2.6K vues
大学等におけるAzure AD B2Cを使用したSNS認証の活用
Naohiro Fujie
•
2K vues
Azure AD B2C + LINE 学校や企業における次世代 ID/ メッセージ基盤
Naohiro Fujie
•
1.9K vues
Azure ADとLINE連携により実現する学校や企業における次世代ID/メッセージ基盤
Naohiro Fujie
•
1.3K vues
認証/メッセージング領域へのモバイル/ソーシャルネットワークIDの活用
Naohiro Fujie
•
694 vues
大学等におけるAzure AD B2Cを使用したSNS認証の活用
Naohiro Fujie
•
6.5K vues
Dernier
(20)
【DL輪読会】Visual Classification via Description from Large Language Models (ICLR...
Deep Learning JP
•
1K vues
TestSIP (1).pdf
DeependraSingh712859
•
0 vue
☀️【中央兰开夏大学毕业证成绩单留学生首选】
25mjhd12
•
4 vues
本科/硕士《加拿大戴尔豪斯大学毕业证成绩单》
1523dsa
•
2 vues
①【汤普森河大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 vues
突如登場したAzure Developer CLIでなにができるのか?検証してみる
Kazumi IWANAGA
•
27 vues
Omnis
DaisukeFujita10
•
10 vues
留信网认证可查【皇家霍洛威学院文凭证书毕业证购买】
32lkhng
•
2 vues
ペンタエリスリトール市場.pdf
HinaMiyazu
•
3 vues
留信网认证可查【拜欧拉大学文凭证书毕业证购买】
1lkjhg
•
3 vues
MT,STautomation
ssuserf8ea02
•
105 vues
①【戴尔豪斯大学毕业证文凭学位证书|工艺完美复刻】
love445ds
•
2 vues
本科/硕士《德国雷根斯堡大学毕业证成绩单》
nxj1dsa
•
3 vues
本科/硕士《卡毕兰诺大学毕业证成绩单》
1523dsa
•
2 vues
beyoben38.pdf
beyond Co., Ltd.
•
59 vues
初学者のためのプロンプトエンジニアリング実践.pptx
Akifumi Niida
•
196 vues
☀️【卡尔顿大学毕业证成绩单留学生首选】
15sad
•
2 vues
第2回Matlantis User Conference_20230421_久間薫先生
Matlantis
•
280 vues
SoftwareControl.pdf
ssusercd9928
•
15 vues
Üslup ve tercüme.pdf
1Hmmtks
•
2 vues
Publicité
実装して理解するLINE LoginとOpenID Connect入門
実装して理解する LINE Login と
OpenID Connect 入門 Naohiro Fujie 2019/03/15
自己紹介 • 役割 • OpenIDファウンデーション・ジャパン理事、KYC
WGリーダー • IDをコアとしたビジネス開発担当。大阪から全国をカバー • 書き物など • 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, 2019 2
Agenda • OpenID Connectとは •
OpenID Connectとは • OAuth2.0とは • 認証/ID連携(OAuth認証)の誤用理由 • 認証/ID連携に使うには? • OAuthとOpenID Connectの違いの例 • 具体的なフロー • id_token • LINE LoginとOpenID Connect • LINE LoginとOpenID Connect • LINE Login(v2.1)の特徴(クセ) • その他のトピックス • 実習 Copyright Naohiro Fujie, 2019 3
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, 2019 4
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, 2019 5
• サードパーティアプリケーション:OAuthクライアント • HTTPサービス:リソースサーバ •
限定的なアクセス:スコープ • 可能にする(サービス):認可サーバ Copyright Naohiro Fujie, 2019 6 OAuthクライアント (Webアプリ、スマホアプリなど) リソースサーバ (API、サービス) 認可サーバ (OAuthサーバ) 利用者 (リソースオーナー) スコープに基づき許可 (認可) 認可に基づき アクセストークンを発行 アクセストークンを 提示してアクセス リソースを所有
典型的な使われ方 • カレンダーアプリとGoogle Calendarの連携 Copyright
Naohiro Fujie, 2019 7 カレンダーアプリ Google Calendar API Google Account 利用者 (リソースオーナー) カレンダーアプリに対して アイテムの読み出しを許可 認可に基づき アクセストークンを発行 アクセストークンを 提示してアクセス リソースを所有
認証/ID連携(OAuth認証)の誤用理由① • アクセス許可を行う前にログインする為、アクセストークンを 認証の結果得られたものとして扱ってしまう Copyright Naohiro
Fujie, 2019 8 カレンダーアプリ Google Calendar API Google Account 利用者 (リソースオーナー) カレンダーアプリに対して アイテムの読み出しを許可 認可に基づき アクセストークンを発行 アクセストークンを 提示してアクセス リソースを所有 ログイン(認証)
認証/ID連携(OAuth認証)の誤用理由② • 殆どのサービスがプロファイル取得APIを用意しており、アク セストークンでID情報の取得が可能。アクセストークンの持ち 主=リソースオーナーとみなしてしまう Copyright Naohiro
Fujie, 2019 9 カレンダーアプリ Google Account API Google Account 利用者 (リソースオーナー) カレンダーアプリに対して アイテムの読み出しを許可 認可に基づき アクセストークンを発行 アクセストークンを 提示してアクセス リソースを所有 ID情報の取得が可能
よく考えると • アクセストークンは無記名式の切符(誰が持ってきてもOK) • 認可サーバはアクセストークンの有効性検証は出来るが、持参人=発行者 かどうかは検証できない •
何故なら、 • 基本的にアクセストークンは単なる文字列(ハンドルトークン) • ※最近はJWT形式のAssertion Tokenもありますがややこしくなるので割愛 • 認可サーバには以下のように保存されている(イメージ) • Authorization HeaderにBearer xxxx(トークン)って書きますよね? • Bearer(ベアラ)=持参人。持ってきた人に利用を許可する、ということ • 参考)https://idmlab.eidentity.jp/2013/09/bearer-token.html Copyright Naohiro Fujie, 2019 10 アクセストークン 発行者 有効期限 スコープ 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
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, 2019 11 認証/ID連携は仕様のスコープ外
認証/ID連携に使うには? • OAuthクライアントがリソースサーバ側のユーザ情報を取得でき ること • 認証された結果を把握できること •
リソースオーナーのID情報を把握できること • OpenID Connectにおける実現方法=アイデンティティレイヤー • ID Token : 認証結果(アサーション)の取得方法の標準化 • UserInfoエンドポイント : ID情報の取得方法の標準化 ※ID TokenにもID情報を含められるがトークンのサイズの巨大化の問題や認証時以外の情報取得に対 応するためUserInfoを使用 Copyright Naohiro Fujie, 2019 12
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, 2019 13 アイデンティティレイヤー = ID Token、UserInfoエンドポイント
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, 2019 14 キモは「scope=openid」と「id_token」と「userInfoエンドポイント」
具体的なフロー (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, 2019 15
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, 2019 16
id_tokenの中身 • jwt.io(by Auth0)とかjwt.ms(by
MS) Copyright Naohiro Fujie, 2019 17
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@eidentity.jp メールアドレス Copyright Naohiro Fujie, 2019 18
LINE LoginとOpenID Connect •
2017年9月 • LINE Login v2.1でOpenID Connectに対応(v2.0まではOAuth2.0) • 2018年3月 • eメールアドレス属性の提供(id_token)に対応 • 2018年6月 • OpenID Certificationにより認定(Basic OP) • https://openid.net/certification/ • 2019年2月 • ブラウザシナリオでのQRコードログインに対応 Copyright Naohiro Fujie, 2019 19
LINE Login(v2.1)の特徴(クセ) • OpenID
Provider Configuration Documentから探る • https://access.line.me/.well-known/openid-configuration Copyright Naohiro Fujie, 2019 20 { "issuer": "https://access.line.me", "authorization_endpoint": "https://access.line.me/oauth2/v2.1/authorize", "token_endpoint": "https://api.line.me/oauth2/v2.1/token", "jwks_uri": "https://api.line.me/oauth2/v2.1/certs", "response_types_supported": [ "code" ], "subject_types_supported": [ "pairwise" ], "id_token_signing_alg_values_supported": [ "ES256" ] }
LINE Login(v2.1)の特徴(クセ) パラメータ 値
説明 response_types_supported code Code flowのみサポート subject_types_supported pairwise 同一ユーザでもアプリケーション毎にユニークな subが発行される LINEの場合はアプリ単位というよりプロバイダ単 位なんですが・・・ id_token_signing_alg_values_s upported ES256 ES256(ECDSA using P-256 curve and SHA-256 hash)をサポートとありますが、id_tokenのヘッ ダを見ると、HS256・・・ スペック上はRS256は必須で含まれないとダメな はずなんですが・・・ token_endpoint_auth_methods _supported なし tokenエンドポイントのクライアント認証の方法の 指定がない(OPTIONALなので間違いではない) ので、ドキュメントを見るとclient_secret_post (client_idとclient_secretをPOSTする)が使われ ている。が、実際はclient_secret_basic(BASIC認 証)でも動く Copyright Naohiro Fujie, 2019 21
LINE Login(v2.1)の特徴(クセ) • メールアドレスの取得 •
scopeとして指定できるのは、 • openid, email, profileの3種類 • emailを指定しても、あらかじめ許可 設定をしておかないとダメ • Emailはprofileではなくid_tokenのみ に含まれる • そして、tokenレスポンス内のscope にはemailは出てこない(指定していても) Copyright Naohiro Fujie, 2019 22
LINE Login(v2.1)の特徴(クセ) • その他特殊パラメータ •
bot_prompt(ボットの友だち追加の方法) • Normal: 同意画面の中でボットと友達になるチェックを入れる • Aggressive: 別画面でボットと友達になる Copyright Naohiro Fujie, 2019 23 Normal Aggressive
LINE Login(v2.1)の特徴(クセ) Copyright Naohiro
Fujie, 2019 24 クライアント 自動ログイン *1 メールアドレス+ パスワード QRコード 電話番号 *2 モバイル (標準ブラウザ) ○ モバイル (標準外ブラウザ) ○ PCブラウザ ○ ○ PC版アプリ ○ ○ ○ *1. 自動ログインの動作条件:https://developers.line.biz/ja/faq/#-2017-11-08 *2. 電話番号ログインの条件:PC版LINEでユーザ登録をした場合のみ
Copyright Naohiro Fujie,
2019 25
その他のトピックス • FIDO対応(2019年春予定) • https://engineering.linecorp.com/ja/blog/fido-at-line/ Copyright
Naohiro Fujie, 2019 26
実習 • コードを見ながら解説します Copyright Naohiro
Fujie, 2019 27
実習 • 以下に手順とコードを置いてあります • https://github.com/fujie/line_login •
各自手順に従い作業を進めてください • 不明点はスタッフへお問い合わせください Copyright Naohiro Fujie, 2019 28
Publicité