SlideShare a Scribd company logo
1 of 21
Download to read offline
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
アイデンティティ2.0と
OAuth/OpenID Connect
Mashmatrix, Inc.
www.mashmatrix.com
!
Shinichi Tomita
stomita@mashmatrix.com
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
この資料は、株式会社ウフル (http://uhuru.co.jp/) の
社内セミナーにて使用した資料です。ウフル様のご好意
により、公開の許諾を得ましたので、公開いたします。
!
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
前回のおさらい
• シングルサインオンがなぜ必要か
• 認証・認可
• SAML
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
200X年は
コンシューマWebの時代
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
Weblog(ブログ)の隆盛
• 2000年代前半、ブログによって誰でもカジュアルにWeb
へコンテンツ発信が可能に
• MovableTypeなどのソフトウェア、RSSなどの発展
• 発生した問題
• ブログのコメント記入にスパムが多くなった。
• スパム回避のために、コメントする人の出自を明らかにしたい
• でも数あるブログサイトにコメントする人全員のログインアカ
ウントを作る?無理無理。
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
解決策とOpenIDの誕生
• もうみんなWebのどこかに自分のサイト(ブログ)を
持ってるよね?
• コメント主にはそのサイトの持ち主が自分であることを証
明してもらったらいいんじゃない?
• Webのような分散した環境でも自分のアイデンティティ
を伝達できる仕組み(プロトコル)をつくろう!
• 2005年頃、Six ApartのメンバーがOpenID 1.0を提唱
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OpenIDの特徴
• World Wide Web、分散環境が大前提
• 誰でも自分のサイトでアイデンティティを主張できる
• どのサイトでも自分のアイデンティティを利用できる
• 最初から「シングルサインオン」を求めたわけではない
• コメントするユーザの所有するWebサイトを識別することが最初の動機
• ユーザのアイデンティティはインターネット上にURLでアクセス可能であ
る、という想定
• OpenID 2.0でシングルサインオン用途にも利用できるように拡張
• サイトを事前に登録したりする必要はない
• 動的なディスカバリが仕様に含まれる
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
参考:User-Centric Identity
• サイト中心のアイデンティティ(Identity 1.0)
• ユーザのアイデンティティはサイトが管理する
• アイデンティティのサイロ(Silo)/壁に閉ざされた庭(Walled
Garden)
• ユーザ中心のアイデンティティ(Identity 2.0)
• 利用者本人がアイデンティティ情報をコントロールする
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
Identity 2.0
• 高速プレゼンテーションスタイルで有名
• https://www.youtube.com/watch?
v=RrpajcAgR1E
• ActiveState、SXIP創業者
• Chuck Mort(現SFDC Identity PM)は
元SXIPに在籍していたことも
• SXIPのクローズ後、Microsoftを経て、現在
フリー?
Dick Hardt
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
マッシュアップとOAuth
• WebサービスAPIを利用した「マッシュアップ」の流行
• パブリックなリソースだけでなく、アクセス保護されたリソースも扱いたい
• 代理アクセスの必要性・権限の委譲
• OAuth1.0: Webアプリの認可のためのプロトコルを標準化
• Flickrなどで利用されていた権限委譲の仕組みがヒント
• スコープによって委譲する権限を指定可能
• 例:読み込みのみ/書き込み可/プロフィール情報のみ/コンタクト情報も可、など
• 現在もTwitterのAPIはOAuth1.0aで提供されている
• なお1.0にはプロトコルに脆弱性が見つかっているため、現在は改訂版の1.0aを使う
べき
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
Facebook Connect
• Facebookの独自仕様で展開されたAPI接続の仕組み
• Webサイトから簡単にFacebookのサービスに接続するた
めのウィジット・ボタンを用意
• サーバサイドいらず、Webサイトにファイルを置くだけで導入
できる簡単さ
• JavaScript SDKもあり、複雑なアプリの構築も可能
• Facebookの爆発的な普及により、多数のサイトで使われ
るように
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OAuth 2.0
• OAuth 1.0の反省
• セキュリティ維持のため複雑になってしまったプロトコル
• 電子署名の扱いに苦労する開発者
• OAuth 2.0
• Facebook Connectを参考にして、Dick HardtらがOAuth WRAPを提
唱 OAuth 2.0へ進化
• 署名のような面倒な手間を省き、セキュリティはSSLで保証する
• Facebookも後にOAuth2.0に合わせてAPIを変更
• Secret情報を持つことが難しいJavaScriptやスマホアプリからも利用
できるImplicit Grant Flowも
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OAuth 2.0

(Authorization Code Flow)
http://www.atmarkit.co.jp/ait/articles/1209/10/news105.html
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OAuth 2.0

(Implicit Grant Flow)
http://www.atmarkit.co.jp/ait/articles/1209/10/news105.html
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
ソーシャルログイン?
• 「既に外部のソーシャルサービスに保有しているアイデン
ティティを利用して、ユーザが(サイト|アプリ)にログ
インできる機能」に対する俗称
• 「アイデンティティ連携(Identity Federation)」という語が一
般開発者には直感的でなかったことも原因か
• 実際はOAuthなどでソーシャルAPIへのアクセス権限を取得

ユーザの識別情報を取得して「ログイン」
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OAuthによる

「ソーシャルログイン」の課題
1. 標準化されていない
• ユーザ情報はサービス独自のAPIを利用して取ってくる
• 接続するサービスごとにクライアントの開発が必須
2.『認可』を『認証』に利用
• APIに対するアクセスの認可を与えられたとしても、そのAPIから得たユーザ情報をユー
ザの認証に利用してほんとにいいのか?
3. API権限を悪用したスパム
• そもそもログインしたいだけなのに、なぜアクセス権限が必要なの?
4.(原理主義的には)ユーザー・セントリックでない
• 外部のアイデンティティを選択できるという意味ではユーザー・セントリックだが、
ユーザが任意のアイデンティティを持ち運べるわけではない
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OpenID Connect
• 広く普及したOAuth2.0をベースにした、分散環境でユー
ザのシングルサインオンを実現するためのプロトコル
• 売り文句:
• OAuth2を使った認証よりも標準化されており安心
• SAMLより簡単なので実装は容易
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OpenID Connect の特徴
• アイデンティティ情報を取得するためのスコープ openid を定義
• UserInfo Endpoint というユーザ情報を取得するAPIのスキー
マを定義し、インターフェースを統一
• 従来のaccess_tokenの他に id_token というトークンを定義
• ユーザのアイデンティティを証明する(アサーション)トークン
• JWT(JSON Web Token)を利用し、電子署名で改ざんを防止
• UserInfo EndpointがFirewall内にある場合や、複数アプリをまたがって
トークンが伝達される場合などに活用可能
• OpenID 2.0と同様に動的にサイト間の連携を行う仕組みもあり
(関連仕様)
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
OpenID Connectのフロー
http://www.atmarkit.co.jp/ait/articles/1209/27/news138.html
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
まとめ
• 企業システムを中心としたシングルサインオンの発展とは別
に、コンシューマWebにおける要求からOpenIDおよび
OAuthが生まれた
• OAuthは、成功したFacebook Connectを参考に、より簡潔
さを重視したOAuth2.0へと発展した
• Facebook/Twitterの台頭により、外部アイデンティティを利
用したログインという体験は一般化したが、一方でさまざま
な問題を孕んだ
• OpenID Connect による標準化で連携はもっと楽になるかも
©Copyright 2014 Mashmatrix, Inc. All rights reserved.
演習(OpenID Connect)
• OpenID Connect を利用して、SalesforceをGoogleアカウ
ントでログインできるようにする
• 参考URL:
• http://blog.flect.co.jp/salesforce/2014/06/openid-connect-affa.html
• <発展演習>:上記の連携で取得したTokenを利用して、Apex
からGoogleのAPIを叩いてみる
• 参考URL:
• http://www.tquila.com/blog/2014/02/13/accessing-google-apis-
apex-minimal-effort

More Related Content

What's hot

ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編Takashi Yahata
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向Tatsuo Kudo
 
OAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveOAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveNov Matake
 
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17Tatsuo Kudo
 
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...Tatsuo Kudo
 
OpenID TechNight Vol. 11 - Call to Action
OpenID TechNight Vol. 11 - Call to ActionOpenID TechNight Vol. 11 - Call to Action
OpenID TechNight Vol. 11 - Call to ActionTatsuo Kudo
 
エンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドラインエンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドラインTatsuo Kudo
 
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #apiTatsuo Kudo
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜Masaru Kurahayashi
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014Takashi Yahata
 
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドラインOpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドラインTakashi Yahata
 
OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7OpenID Foundation Japan
 
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説Takashi Yahata
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problemsNat Sakimura
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルMasaru Kurahayashi
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからTatsuo Kudo
 
ID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-onID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-onNov Matake
 
JWT Translation #technight
JWT Translation #technightJWT Translation #technight
JWT Translation #technightNov Matake
 
API提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijpAPI提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijpTatsuo Kudo
 

What's hot (20)

ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編ID連携のあるとき~、ないとき~ #エンプラ編
ID連携のあるとき~、ないとき~ #エンプラ編
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
 
OAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devloveOAuth認証再考からのOpenID Connect #devlove
OAuth認証再考からのOpenID Connect #devlove
 
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17
 
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...
 
OCHaCafe#5 - 避けては通れない!認証・認可
OCHaCafe#5 - 避けては通れない!認証・認可OCHaCafe#5 - 避けては通れない!認証・認可
OCHaCafe#5 - 避けては通れない!認証・認可
 
OpenID TechNight Vol. 11 - Call to Action
OpenID TechNight Vol. 11 - Call to ActionOpenID TechNight Vol. 11 - Call to Action
OpenID TechNight Vol. 11 - Call to Action
 
エンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドラインエンタープライズITでのOpenID Connect利用ガイドライン
エンタープライズITでのOpenID Connect利用ガイドライン
 
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
 
認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜認証の課題とID連携の実装 〜ハンズオン〜
認証の課題とID連携の実装 〜ハンズオン〜
 
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
エンタープライズIT環境での OpenID Connect / SCIM の具体的実装方法 idit2014
 
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドラインOpenID ConnectとSCIMのエンタープライズ利用ガイドライン
OpenID ConnectとSCIMのエンタープライズ利用ガイドライン
 
OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7OpenID Connect - Nat Sakimura at OpenID TechNight #7
OpenID Connect - Nat Sakimura at OpenID TechNight #7
 
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
『OpenID ConnectとSCIMのエンタープライズ実装ガイドライン』解説
 
Oidc how it solves your problems
Oidc how it solves your problemsOidc how it solves your problems
Oidc how it solves your problems
 
OpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれから
 
ID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-onID & IT 2013 - OpenID Connect Hands-on
ID & IT 2013 - OpenID Connect Hands-on
 
JWT Translation #technight
JWT Translation #technightJWT Translation #technight
JWT Translation #technight
 
API提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijpAPI提供におけるOAuthの役割 #apijp
API提供におけるOAuthの役割 #apijp
 

Similar to アイデンティティ2.0とOAuth/OpenID Connect

情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦Sho Yoshida
 
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideTatsuo Kudo
 
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向Tatsuo Kudo
 
チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正Yutaka Fujisaki
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
IETF96 Update oauth tokbind
IETF96 Update oauth tokbindIETF96 Update oauth tokbind
IETF96 Update oauth tokbindKaoru Maeda
 
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumiYahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumiYahoo!デベロッパーネットワーク
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するHitachi, Ltd. OSS Solution Center.
 
Azure App Service Overview LT
Azure App Service Overview LTAzure App Service Overview LT
Azure App Service Overview LTKeiji Kamebuchi
 
[網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI [網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI Hiromichi Koga
 
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』Futomi Hatano
 
HTTP関連Lightning Talk
HTTP関連Lightning TalkHTTP関連Lightning Talk
HTTP関連Lightning TalkKatsumi INOUE
 
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMakoto Kakuta
 
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんかクラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんかTakeshi Yoshida
 

Similar to アイデンティティ2.0とOAuth/OpenID Connect (20)

Ietf95 http2
Ietf95 http2Ietf95 http2
Ietf95 http2
 
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
情熱Smalltalker SmalltalkとAWSでクラウドサービスを実現するための挑戦
 
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
 
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
IETF96 Update oauth tokbind
IETF96 Update oauth tokbindIETF96 Update oauth tokbind
IETF96 Update oauth tokbind
 
O Auth
O AuthO Auth
O Auth
 
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumiYahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi
Yahoo! JAPANが考えるテクノロジーとITエンジニアの未来 #devsumi
 
Spring social の基礎
Spring social の基礎Spring social の基礎
Spring social の基礎
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
Jaws-warrantee
Jaws-warranteeJaws-warrantee
Jaws-warrantee
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
 
Azure App Service Overview LT
Azure App Service Overview LTAzure App Service Overview LT
Azure App Service Overview LT
 
[網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI [網元] WordPress 高速化チューニング AMI
[網元] WordPress 高速化チューニング AMI
 
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
Leading the way to W3C TPAC 2015 『HTML5 関連の API の現状とこれから』
 
HTTP関連Lightning Talk
HTTP関連Lightning TalkHTTP関連Lightning Talk
HTTP関連Lightning Talk
 
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuth
 
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんかクラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
 

More from Shinichi Tomita

SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)Shinichi Tomita
 
SalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLSalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLShinichi Tomita
 
Developing SLDS Apps with React.js
Developing SLDS Apps with React.jsDeveloping SLDS Apps with React.js
Developing SLDS Apps with React.jsShinichi Tomita
 
Spring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutSpring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutShinichi Tomita
 
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~Shinichi Tomita
 
Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Shinichi Tomita
 
モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)Shinichi Tomita
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)Shinichi Tomita
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile ApplicationsShinichi Tomita
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用Shinichi Tomita
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告Shinichi Tomita
 
Cloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APICloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APIShinichi Tomita
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Shinichi Tomita
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバShinichi Tomita
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭りShinichi Tomita
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Shinichi Tomita
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuShinichi Tomita
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuShinichi Tomita
 

More from Shinichi Tomita (20)

SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
SalesforceでのモダンSPA開発(Mashmatrix ”Sheet"の場合)
 
SalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAMLSalesforceからAWSへの接続 using OIDC/SAML
SalesforceからAWSへの接続 using OIDC/SAML
 
Developing SLDS Apps with React.js
Developing SLDS Apps with React.jsDeveloping SLDS Apps with React.js
Developing SLDS Apps with React.js
 
Spring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running CalloutSpring'15 Update - Named Credential & Long Running Callout
Spring'15 Update - Named Credential & Long Running Callout
 
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
スマートデバイス×HTML5で
 企業情報システムはどう変わる? ~最新動向から考えるエンタープライズWebの現在と未来~
 
Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -Summer'14 Update - What's new in Force.com Canvas -
Summer'14 Update - What's new in Force.com Canvas -
 
モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)モバイルBaaSの概観と最新動向(2014版)
モバイルBaaSの概観と最新動向(2014版)
 
Salesforce1最速経路
Salesforce1最速経路Salesforce1最速経路
Salesforce1最速経路
 
モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)モバイルBaaSの概観と最新動向 (2013/6/7)
モバイルBaaSの概観と最新動向 (2013/6/7)
 
(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications(M)BaaS and Enterprise Mobile Applications
(M)BaaS and Enterprise Mobile Applications
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
 
クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告クラウド・スマートデバイス事例調査報告
クラウド・スマートデバイス事例調査報告
 
Cloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming APICloud-to-Intranet messaging by Force.com Streaming API
Cloud-to-Intranet messaging by Force.com Streaming API
 
Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~Sales Force Episode VI ~ Return of Ajax Toolkit ~
Sales Force Episode VI ~ Return of Ajax Toolkit ~
 
Intro to JFDG
Intro to JFDGIntro to JFDG
Intro to JFDG
 
Herokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバHerokuで動かす スクリーンショットサーバ
Herokuで動かす スクリーンショットサーバ
 
Force.com とか @ PaaS祭り
Force.com とか @ PaaS祭りForce.com とか @ PaaS祭り
Force.com とか @ PaaS祭り
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
 
Phantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on HerokuPhantomjs Screenshot Server on Heroku
Phantomjs Screenshot Server on Heroku
 
Collecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on HerokuCollecting Photo Stream in Node.js on Heroku
Collecting Photo Stream in Node.js on Heroku
 

アイデンティティ2.0とOAuth/OpenID Connect

  • 1. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. アイデンティティ2.0と OAuth/OpenID Connect Mashmatrix, Inc. www.mashmatrix.com ! Shinichi Tomita stomita@mashmatrix.com
  • 2. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. この資料は、株式会社ウフル (http://uhuru.co.jp/) の 社内セミナーにて使用した資料です。ウフル様のご好意 により、公開の許諾を得ましたので、公開いたします。 !
  • 3. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 前回のおさらい • シングルサインオンがなぜ必要か • 認証・認可 • SAML
  • 4. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 200X年は コンシューマWebの時代
  • 5. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. Weblog(ブログ)の隆盛 • 2000年代前半、ブログによって誰でもカジュアルにWeb へコンテンツ発信が可能に • MovableTypeなどのソフトウェア、RSSなどの発展 • 発生した問題 • ブログのコメント記入にスパムが多くなった。 • スパム回避のために、コメントする人の出自を明らかにしたい • でも数あるブログサイトにコメントする人全員のログインアカ ウントを作る?無理無理。
  • 6. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 解決策とOpenIDの誕生 • もうみんなWebのどこかに自分のサイト(ブログ)を 持ってるよね? • コメント主にはそのサイトの持ち主が自分であることを証 明してもらったらいいんじゃない? • Webのような分散した環境でも自分のアイデンティティ を伝達できる仕組み(プロトコル)をつくろう! • 2005年頃、Six ApartのメンバーがOpenID 1.0を提唱
  • 7. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OpenIDの特徴 • World Wide Web、分散環境が大前提 • 誰でも自分のサイトでアイデンティティを主張できる • どのサイトでも自分のアイデンティティを利用できる • 最初から「シングルサインオン」を求めたわけではない • コメントするユーザの所有するWebサイトを識別することが最初の動機 • ユーザのアイデンティティはインターネット上にURLでアクセス可能であ る、という想定 • OpenID 2.0でシングルサインオン用途にも利用できるように拡張 • サイトを事前に登録したりする必要はない • 動的なディスカバリが仕様に含まれる
  • 8. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 参考:User-Centric Identity • サイト中心のアイデンティティ(Identity 1.0) • ユーザのアイデンティティはサイトが管理する • アイデンティティのサイロ(Silo)/壁に閉ざされた庭(Walled Garden) • ユーザ中心のアイデンティティ(Identity 2.0) • 利用者本人がアイデンティティ情報をコントロールする
  • 9. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. Identity 2.0 • 高速プレゼンテーションスタイルで有名 • https://www.youtube.com/watch? v=RrpajcAgR1E • ActiveState、SXIP創業者 • Chuck Mort(現SFDC Identity PM)は 元SXIPに在籍していたことも • SXIPのクローズ後、Microsoftを経て、現在 フリー? Dick Hardt
  • 10. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. マッシュアップとOAuth • WebサービスAPIを利用した「マッシュアップ」の流行 • パブリックなリソースだけでなく、アクセス保護されたリソースも扱いたい • 代理アクセスの必要性・権限の委譲 • OAuth1.0: Webアプリの認可のためのプロトコルを標準化 • Flickrなどで利用されていた権限委譲の仕組みがヒント • スコープによって委譲する権限を指定可能 • 例:読み込みのみ/書き込み可/プロフィール情報のみ/コンタクト情報も可、など • 現在もTwitterのAPIはOAuth1.0aで提供されている • なお1.0にはプロトコルに脆弱性が見つかっているため、現在は改訂版の1.0aを使う べき
  • 11. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. Facebook Connect • Facebookの独自仕様で展開されたAPI接続の仕組み • Webサイトから簡単にFacebookのサービスに接続するた めのウィジット・ボタンを用意 • サーバサイドいらず、Webサイトにファイルを置くだけで導入 できる簡単さ • JavaScript SDKもあり、複雑なアプリの構築も可能 • Facebookの爆発的な普及により、多数のサイトで使われ るように
  • 12. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OAuth 2.0 • OAuth 1.0の反省 • セキュリティ維持のため複雑になってしまったプロトコル • 電子署名の扱いに苦労する開発者 • OAuth 2.0 • Facebook Connectを参考にして、Dick HardtらがOAuth WRAPを提 唱 OAuth 2.0へ進化 • 署名のような面倒な手間を省き、セキュリティはSSLで保証する • Facebookも後にOAuth2.0に合わせてAPIを変更 • Secret情報を持つことが難しいJavaScriptやスマホアプリからも利用 できるImplicit Grant Flowも
  • 13. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OAuth 2.0
 (Authorization Code Flow) http://www.atmarkit.co.jp/ait/articles/1209/10/news105.html
  • 14. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OAuth 2.0
 (Implicit Grant Flow) http://www.atmarkit.co.jp/ait/articles/1209/10/news105.html
  • 15. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. ソーシャルログイン? • 「既に外部のソーシャルサービスに保有しているアイデン ティティを利用して、ユーザが(サイト|アプリ)にログ インできる機能」に対する俗称 • 「アイデンティティ連携(Identity Federation)」という語が一 般開発者には直感的でなかったことも原因か • 実際はOAuthなどでソーシャルAPIへのアクセス権限を取得
 ユーザの識別情報を取得して「ログイン」
  • 16. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OAuthによる
 「ソーシャルログイン」の課題 1. 標準化されていない • ユーザ情報はサービス独自のAPIを利用して取ってくる • 接続するサービスごとにクライアントの開発が必須 2.『認可』を『認証』に利用 • APIに対するアクセスの認可を与えられたとしても、そのAPIから得たユーザ情報をユー ザの認証に利用してほんとにいいのか? 3. API権限を悪用したスパム • そもそもログインしたいだけなのに、なぜアクセス権限が必要なの? 4.(原理主義的には)ユーザー・セントリックでない • 外部のアイデンティティを選択できるという意味ではユーザー・セントリックだが、 ユーザが任意のアイデンティティを持ち運べるわけではない
  • 17. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OpenID Connect • 広く普及したOAuth2.0をベースにした、分散環境でユー ザのシングルサインオンを実現するためのプロトコル • 売り文句: • OAuth2を使った認証よりも標準化されており安心 • SAMLより簡単なので実装は容易
  • 18. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OpenID Connect の特徴 • アイデンティティ情報を取得するためのスコープ openid を定義 • UserInfo Endpoint というユーザ情報を取得するAPIのスキー マを定義し、インターフェースを統一 • 従来のaccess_tokenの他に id_token というトークンを定義 • ユーザのアイデンティティを証明する(アサーション)トークン • JWT(JSON Web Token)を利用し、電子署名で改ざんを防止 • UserInfo EndpointがFirewall内にある場合や、複数アプリをまたがって トークンが伝達される場合などに活用可能 • OpenID 2.0と同様に動的にサイト間の連携を行う仕組みもあり (関連仕様)
  • 19. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. OpenID Connectのフロー http://www.atmarkit.co.jp/ait/articles/1209/27/news138.html
  • 20. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. まとめ • 企業システムを中心としたシングルサインオンの発展とは別 に、コンシューマWebにおける要求からOpenIDおよび OAuthが生まれた • OAuthは、成功したFacebook Connectを参考に、より簡潔 さを重視したOAuth2.0へと発展した • Facebook/Twitterの台頭により、外部アイデンティティを利 用したログインという体験は一般化したが、一方でさまざま な問題を孕んだ • OpenID Connect による標準化で連携はもっと楽になるかも
  • 21. ©Copyright 2014 Mashmatrix, Inc. All rights reserved. 演習(OpenID Connect) • OpenID Connect を利用して、SalesforceをGoogleアカウ ントでログインできるようにする • 参考URL: • http://blog.flect.co.jp/salesforce/2014/06/openid-connect-affa.html • <発展演習>:上記の連携で取得したTokenを利用して、Apex からGoogleのAPIを叩いてみる • 参考URL: • http://www.tquila.com/blog/2014/02/13/accessing-google-apis- apex-minimal-effort