SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
安全な"○○でログイン“の作り方
@ritou
NDS in Niigata #1 2014/7/13
1
自己紹介
 @ritou “秋田の猫”
 新潟市在住、渋谷区の会社にリモート勤務
 Evangelist at OpenID Foundation Japan
 #idcon 運営
 CPAN Author
 OAuth::Lite2,OIDC::Lite
NDS in Niigata #1 2014/7/13
2
今日の内容
 “○○でログイン”とは
 実装するときに考えること
 気をつけてほしいこと
NDS in Niigata #1 2014/7/13
3
“○○でログイン”とは
 ソーシャルログイン
 ID連携, Identity Federation
 Twitter, Facebookなどの外部サービスのア
カウントを自サービスのアカウントに連携
する
 ログイン、新規登録のハードルを下げる
 OpenIDとかOAuthとか
NDS in Niigata #1 2014/7/13
4
NDS in Niigata #1 2014/7/13
5
ID連携を支える技術
 独自仕様
 OpenID 2.0
 OAuth 1.0 : Twitter
 OAuth 2.0 : Facebook, Github, …
 署名なし、モバイルアプリからの利用も想定
 OpenID Connect : Google, Salesforce
 OAuth 2.0のIdentity層を拡張
各サービスは、これらの標準仕様に独自拡張を
入れたりしてなかりカオスな状態
NDS in Niigata #1 2014/7/13
6
NDS in Niigata #1 2014/7/13
7
引用 :
http://www.atmarkit.co.jp/fsecurity/rensai/digid01/02.html
NDS in Niigata #1 2014/7/13
8 Webサービスの場合
 Client Secretを安全に管理できる
NDS in Niigata #1 2014/7/13
9
引用: http://www.slideshare.net/matake/ayaka
NDS in Niigata #1 2014/7/13
10 モバイルアプリ、JSで動作するア
プリケーションの場合
 Client Secretを安全に管理できない
NDS in Niigata #1 2014/7/13
11
引用: http://www.slideshare.net/matake/ayaka
NDS in Niigata #1 2014/7/13
12
引用: http://www.slideshare.net/matake/ayaka
実装方法
 各SNSのSDK
 ライブラリ
 フレームワークのプラグイン
 OAuth 2.0用
 もっと汎用的なやつ
 mBaaSを利用
 Parse.com
NDS in Niigata #1 2014/7/13
13
実装するときに考えること
 ユーザーの識別子は普遍のものを利用する
 user_id, idとかで提供されるもので良い
 メールアドレスは変わるので注意
 新規登録時は属性情報を活用する
 プロフィール情報 APIを利用
デフォルト値に利用 or フォーム補完
 メールアドレスを有効活用する
 登録時の確認機能スキップ
 定期的に変更をチェックしても良いかも
NDS in Niigata #1 2014/7/13
14
気をつけてほしいこと
 CSRFへの対策
 Webサービス
 Token置換攻撃への対策
 モバイルアプリ + バックエンドサービス
NDS in Niigata #1 2014/7/13
15
OAuth 2.0とCSRF
 参考
 OAuthのセキュリティ強化を目的とする拡張仕様
を導入しました
http://alpha.mixi.co.jp/2013/12020/
NDS in Niigata #1 2014/7/13
16
認可フロー
NDS in Niigata #1 2014/7/13
17
引用: http://alpha.mixi.co.jp/2013/12020/
OAuth 2.0の認可要求
 response_type(REQUIRED)
 client_id(REQUIRED)
 redirect_uri(OPTIONAL)
 scope(OPTIONAL)
 state(RECOMMENDED)
NDS in Niigata #1 2014/7/13
18
CSRFが可能なケース
NDS in Niigata #1 2014/7/13
19
引用: http://alpha.mixi.co.jp/2013/12020/
stateパラメータを利用しよう
 response_type(REQUIRED)
 client_id(REQUIRED)
 redirect_uri(OPTIONAL)
 scope(OPTIONAL)
 state(RECOMMENDED)
NDS in Niigata #1 2014/7/13
20
CSRF対策トークンとして検証
NDS in Niigata #1 2014/7/13
21
引用: http://alpha.mixi.co.jp/2013/12020/
NDS in Niigata #1 2014/7/13
22 CSRF対策トークンとして検証
引用: http://alpha.mixi.co.jp/2013/12020/
Token置換攻撃
 参考
 "なんちゃら iOS SDK" でありそうな被害例
http://oauth.jp/blog/2012/02/08/ios-sdk/
NDS in Niigata #1 2014/7/13
23
NDS in Niigata #1 2014/7/13
24
引用: http://www.slideshare.net/matake/ayaka
攻撃方法
 攻撃者
 他のOAuth Client向けに発行されたAccess
Tokenを所持している
○○占いとか
 攻撃手法
 バックエンドサーバーへのリクエストを把握
 Access Tokenを自らが所持している第3者の
Access Tokenに置き換える
 得られるもの
 第3者のログインセッションなど
NDS in Niigata #1 2014/7/13
25
NDS in Niigata #1 2014/7/13
26
参照 : http://www.slideshare.net/kura_lab/devsumi201413c5
NDS in Niigata #1 2014/7/13
27
参照 : http://www.slideshare.net/kura_lab/devsumi201413c5
対策
 バックエンドサーバーは受け取ったAccess
Tokenを検証
 正しいClient向けに発行されたものであることを
確認
 検証用のAPIはサービスごとに異なる…
 Access Tokenを送信しないしくみを利用
 Android + Googleではいろいろなしくみが用意
されている
NDS in Niigata #1 2014/7/13
28
NDS in Niigata #1 2014/7/13
29
このあたりで検証!
引用: http://www.slideshare.net/matake/ayaka
おまけ : 連携キャンセル時の挙動
 エラー画面にすべき?
 正常系とみなす?
 パラメータを判断しよう
 error, error_description, error_reasonなど
ユーザーにそのまま見せるのは良くない感
NDS in Niigata #1 2014/7/13
30
キャンセル時の挙動例:timeticket.jp
NDS in Niigata #1 2014/7/13
31
パラメータをいじると…
NDS in Niigata #1 2014/7/13
32
まとめ
 “○○でログイン”で最近流行っているのは
OAuth 2.0ベースのもの
 Webサービス、モバイルアプリのそれぞれ
で気をつける点がある
NDS in Niigata #1 2014/7/13
33
ありがとうございました
NDS in Niigata #1 2014/7/13
34
宣伝: http://yapcasia.org/2014/talk/show/cc57f3ca-01b8-11e4-
b7e8-e4a96aeab6a4

Weitere ähnliche Inhalte

Was ist angesagt?

OAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveOAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devlove
Nov Matake
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problems
Nat Sakimura
 

Was ist angesagt? (20)

OpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンスOpenID Connect のビジネスチャンス
OpenID Connect のビジネスチャンス
 
20150723 最近の興味動向 fido編
20150723 最近の興味動向 fido編20150723 最近の興味動向 fido編
20150723 最近の興味動向 fido編
 
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
 
FIDO認証によるパスワードレスログイン実装入門
FIDO認証によるパスワードレスログイン実装入門FIDO認証によるパスワードレスログイン実装入門
FIDO認証によるパスワードレスログイン実装入門
 
実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門実装して理解するLINE LoginとOpenID Connect入門
実装して理解するLINE LoginとOpenID Connect入門
 
Advancement of FIDO Technology
Advancement of FIDO TechnologyAdvancement of FIDO Technology
Advancement of FIDO Technology
 
OpenID Connect Summit Transfer of Information
OpenID Connect Summit Transfer of InformationOpenID Connect Summit Transfer of Information
OpenID Connect Summit Transfer of Information
 
OAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveOAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devlove
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜
 
数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート数々の実績:迅速なFIDO認証の展開をサポート
数々の実績:迅速なFIDO認証の展開をサポート
 
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドラインOpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
 
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problems
 
新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向新しい認証技術FIDOの最新動向
新しい認証技術FIDOの最新動向
 
俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン俺が考えた最強のID連携デザインパターン
俺が考えた最強のID連携デザインパターン
 
テレワーク本格導入におけるID認証考察
テレワーク本格導入におけるID認証考察テレワーク本格導入におけるID認証考察
テレワーク本格導入におけるID認証考察
 
認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016
 
Commmentary on FIDO Specifications (Japanese) 仕様に関する日本語での補足解説
Commmentary on FIDO Specifications (Japanese) 仕様に関する日本語での補足解説Commmentary on FIDO Specifications (Japanese) 仕様に関する日本語での補足解説
Commmentary on FIDO Specifications (Japanese) 仕様に関する日本語での補足解説
 
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
サバフェス 2016 Yahoo! ID連携のご紹介 〜OpenID Connect入門〜
 

Ähnlich wie 安全な"○○でログイン"の作り方 @ NDS in Niigata #1

OpenID TechNight - Ping Identity 製品紹介
OpenID TechNight - Ping Identity 製品紹介OpenID TechNight - Ping Identity 製品紹介
OpenID TechNight - Ping Identity 製品紹介
Daisuke Fuke
 

Ähnlich wie 安全な"○○でログイン"の作り方 @ NDS in Niigata #1 (20)

Spring Social でソーシャルログインを実装する
Spring Social でソーシャルログインを実装するSpring Social でソーシャルログインを実装する
Spring Social でソーシャルログインを実装する
 
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
 
Azure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もうAzure の ID 管理サービスに LINE ログインを組み込もう
Azure の ID 管理サービスに LINE ログインを組み込もう
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けてOpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
OpenID ConnectとSCIMによるエンタープライズでのID連携活用に向けて
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
 
OpenID TechNight - Ping Identity 製品紹介
OpenID TechNight - Ping Identity 製品紹介OpenID TechNight - Ping Identity 製品紹介
OpenID TechNight - Ping Identity 製品紹介
 
20140307 tech nightvol11_lt_v1.0_public
20140307 tech nightvol11_lt_v1.0_public20140307 tech nightvol11_lt_v1.0_public
20140307 tech nightvol11_lt_v1.0_public
 
Interrop ctrix netscaler on Softlayer 2015
Interrop ctrix netscaler on Softlayer 2015Interrop ctrix netscaler on Softlayer 2015
Interrop ctrix netscaler on Softlayer 2015
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
指紋認証と「FIDO」について
指紋認証と「FIDO」について指紋認証と「FIDO」について
指紋認証と「FIDO」について
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 
社外発表 Rancher2.0night
社外発表 Rancher2.0night社外発表 Rancher2.0night
社外発表 Rancher2.0night
 
Introduction of Bridging IMS and Internet Identity
Introduction of Bridging IMS and Internet IdentityIntroduction of Bridging IMS and Internet Identity
Introduction of Bridging IMS and Internet Identity
 
富士市役所におけるCitrix仮想化ソリューション導入成功のポイント ~ノート型ゼロクライアントとICカードログオンの採用~
富士市役所におけるCitrix仮想化ソリューション導入成功のポイント ~ノート型ゼロクライアントとICカードログオンの採用~富士市役所におけるCitrix仮想化ソリューション導入成功のポイント ~ノート型ゼロクライアントとICカードログオンの採用~
富士市役所におけるCitrix仮想化ソリューション導入成功のポイント ~ノート型ゼロクライアントとICカードログオンの採用~
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
Interop tokyo 2013 nc 04
Interop tokyo 2013 nc 04Interop tokyo 2013 nc 04
Interop tokyo 2013 nc 04
 
Fido self issued
Fido self issuedFido self issued
Fido self issued
 

Mehr von Ryo Ito

なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来いなんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
Ryo Ito
 
UserManagedAccess_idcon13
UserManagedAccess_idcon13UserManagedAccess_idcon13
UserManagedAccess_idcon13
Ryo Ito
 
WebIntents × SNS
WebIntents × SNSWebIntents × SNS
WebIntents × SNS
Ryo Ito
 
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_DemoOpenID_Connect_Spec_Demo
OpenID_Connect_Spec_Demo
Ryo Ito
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
 
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationOAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
Ryo Ito
 
Ritou idcon7
Ritou idcon7Ritou idcon7
Ritou idcon7
Ryo Ito
 

Mehr von Ryo Ito (20)

idcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirectidcon mini vol3 CovertRedirect
idcon mini vol3 CovertRedirect
 
Idcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF ProtectionIdcon 17th ritou OAuth 2.0 CSRF Protection
Idcon 17th ritou OAuth 2.0 CSRF Protection
 
なんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来いなんとなくOAuth怖いって思ってるやつちょっと来い
なんとなくOAuth怖いって思ってるやつちょっと来い
 
#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth#idcon 15th ritou 2factor auth
#idcon 15th ritou 2factor auth
 
Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1Open id connect claims idcon mini vol1
Open id connect claims idcon mini vol1
 
OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1OID to OIDC idcon mini vol1
OID to OIDC idcon mini vol1
 
Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1Account Chooser idcon mini Vol.1
Account Chooser idcon mini Vol.1
 
BackplaneProtocol超入門
BackplaneProtocol超入門BackplaneProtocol超入門
BackplaneProtocol超入門
 
UserManagedAccess_idcon13
UserManagedAccess_idcon13UserManagedAccess_idcon13
UserManagedAccess_idcon13
 
WebIntents × SNS
WebIntents × SNSWebIntents × SNS
WebIntents × SNS
 
Idcon11 implicit demo
Idcon11 implicit demoIdcon11 implicit demo
Idcon11 implicit demo
 
OpenID_Connect_Spec_Demo
OpenID_Connect_Spec_DemoOpenID_Connect_Spec_Demo
OpenID_Connect_Spec_Demo
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
 
OAuth 2.0 MAC Authentication
OAuth 2.0 MAC AuthenticationOAuth 2.0 MAC Authentication
OAuth 2.0 MAC Authentication
 
OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj OAuth 2.0 Dance School #swj
OAuth 2.0 Dance School #swj
 
Ritou idcon7
Ritou idcon7Ritou idcon7
Ritou idcon7
 
Summary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memoSummary of OAuth 2.0 draft 8 memo
Summary of OAuth 2.0 draft 8 memo
 
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1
 
0905xx Hybrid Memo
0905xx Hybrid Memo0905xx Hybrid Memo
0905xx Hybrid Memo
 
Anonymous OAuth Test
Anonymous OAuth TestAnonymous OAuth Test
Anonymous OAuth Test
 

Kürzlich hochgeladen

Kürzlich hochgeladen (7)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

安全な"○○でログイン"の作り方 @ NDS in Niigata #1