SlideShare a Scribd company logo
1 of 39
Download to read offline
API Meetup Tokyo #13
API提供におけるOAuthの役割
2016年4月8日
NRIセキュアテクノロジーズ株式会社
工藤達雄
〒100-0004
東京都千代田区大手町1-7-2 東京サンケイビル
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 1
昨今、APIアクセス認可のフレームワークとして
"OAuth" 仕様を使うケースが一般的になっています。
本セッションでは OAuth 適用のトレンドと今後について
紹介します。
はじめに
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 2
工藤達雄 http://www.linkedin.com/in/tatsuokudo/ @tkudos
サン・マイクロシステムズ (1998~2008)
野村総合研究所 (2008~)
OpenIDファウンデーション・ジャパン (2013~2014)
NRIセキュアテクノロジーズ (2014~)
自己紹介
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 3
なぜOAuth?
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 4
ダイレクトチャネルはID/パスワードでログイン
コンテンツ/
機能
Webサイト
モバイルAPI
サービス事業者
ID/パスワード
エンドユーザー
ID/パスワード
APP
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 5
サードパーティにAPIを公開する場合はどうするか
コンテンツ/
機能
Webサイト
モバイルAPIID/パスワード
エンドユーザー
ID/パスワード
外部向け
API
サービス事業者
サードパーティ
Webサイト
サードパーティ
モバイルAPI
サードパーティ
APP
APP
APP
ID/パスワード…!?
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 6
ユーザーはID/パスワードをサードパーティに預けることになる → 認証リスク
サードパーティからの情報漏えいやサードパーティ自身による不正利用の懸念が残る
ユーザーはサードパーティに全権委任することになる → 認可リスク
サードパーティは本来サービスに不要な(過剰な)APIアクセスを行うこともできてしまう
使い勝手が悪い
サードパーティのアクセス有効期間を制御できない
サードパーティにユーザーのID/パスワードを渡す?
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 7
ID/パスワードではなく「トークン」を渡す
コンテンツ/
機能
Webサイト
モバイルAPIID/パスワード
エンドユーザー
ID/パスワード
外部向け
API
サービス事業者
サードパーティ
APIクライアント
APP
トークン
管理
ID/パスワード +
権限委譲
トークン
発行
トークン
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 8
ユーザーのID/パスワードがサードパーティに漏れない
サードパーティからのID/パスワード流出や不正利用が発生しなくなる
サードパーティに委譲する権限をユーザーが限定できるようになる
ユーザーが指定した範囲・機能のみをサードパーティに許可できる
使い勝手が良くなる
サードパーティごとにAPIアクセスの可否をコントロールできる
トークンを使うと
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 9
オープン標準への道のり
 2005年前後、各社はそれぞれ独自のAPIアクセス認可のしくみを策定していた
 Flickr Auth, Google AuthSub, Yahoo! BBAuth, …
 2006年11月、TwitterのエンジニアやOpenIDコミュニティを中心に、API代理認証に
OpenIDを適用できないか議論が始まった
 結果的にOpenIDは適用できなかった
 また当時API代理認証のオープン標準と呼べるものはまだ存在しないことが明らかになった
 2007年4月、少人数にてプロトコル検討が始まった
 同7月には仕様草案の初版をもとに公開の場にて議論されるようになった
 そして同10月、OAuth 1.0の最終ドラフトが公開された
Source: http://oauth.net/about/
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 10
Source: I CAN HAD OPEN: OAuth First Summit a Hit! « hueniverse
http://hueniverse.com/2008/07/i-can-had-open-oauth-first-summit-a-hit/
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 11
「トークンによる API アクセス認可」の標準仕様
現在のバージョンはOAuth 2.0 (1.0はobsolete)
▪ RFC 6749 The OAuth 2.0 Authorization Framework
▪ RFC 6750 同 Bearer Token Usage
「RESTful API」との親和性が高い
スコープによるアクセス権限指定、Authorizationヘッダの利用など
モダンなクライアント環境を考慮している
Webブラウザだけではなく、モバイルネイティブやJavaScriptなど
OAuth
Source: http://oauth.net/2/
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 12
OAuthの基本
登場人物と処理の流れ
リソースオーナー
リソース
サーバー
APP
認可
サーバー
クライアント
HTML5
WEBSITE
0
0. リソースへのアクセスを
リクエスト
1
1. 認可
リクエスト
2
2. ユーザー認証 &
クライアントへの権限委譲の確認
3
3. OK!
4 4. アクセストークン
提供
5
5. アクセストークンを
使ってAPIアクセス
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 13
リソースオーナー
OAuthの基本
クライアントがユーザー(リソースオーナー)の同意に基づき「アクセストークン」を入手するための
一連のフローの起点
レスポンスタイプ: フローは「認可コード」か「インプリシット」か
クライアントID: リクエスト元はどのクライアントか
スコープ(オプション): どのようなアクセス権限を持つアクセストークンか
OAuth認可リクエスト
クライアント
WEBSITE
認可
サーバー
認可リクエスト
GET /authorize?response_type=code&client_id=s6BhdRkqt3&scope=message.readonly&state=xyz
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1
Host: server.example.com
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 14
OAuthの基本
認可サーバーはユーザーエージェントを介して間接的に
クライアントに「認可コード」を返す (C)
 HTTP/1.1 302 Found
Location:
https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz
クライアントは認可サーバーに認可コードを送信する (D)
 POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA
&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb
認可サーバーはクライアントにアクセストークンを返却する (E)
 HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value“
}
認可コード・グラント・フロー
+----------+
| Resource |
| Owner |
| |
+----------+
^
|
(B)
+----|-----+ Client Identifier +---------------+
| -+----(A)-- & Redirection URI ---->| |
| User- | | Authorization |
| Agent -+----(B)-- User authenticates --->| Server |
| | | |
| -+----(C)-- Authorization Code ---<| |
+-|----|---+ +---------------+
| | ^ v
(A) (C) | |
| | | |
^ v | |
+---------+ | |
| |>---(D)-- Authorization Code ---------' |
| Client | & Redirection URI |
| | |
| |<---(E)----- Access Token -------------------'
+---------+ (w/ Optional Refresh Token)
Source: https://tools.ietf.org/html/rfc6749
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 15
OAuthの基本
認可サーバーはアクセストークン
をフラグメントとしてユーザーエー
ジェントに返す (C)
 HTTP/1.1 302 Found
Location:
http://example.com/cb#access_token=2YotnFZFEjr1zCs
icMWpAA
&state=xyz&token_type=example&expires_in=3600
ユーザーエージェントはフラグメ
ントからアクセストークンを取り出し
クライアントに提供する (F, G)
インプリシット・グラント・フロー
+----------+
| Resource |
| Owner |
| |
+----------+
^
|
(B)
+----|-----+ Client Identifier +---------------+
| -+----(A)-- & Redirection URI --->| |
| User- | | Authorization |
| Agent -|----(B)-- User authenticates -->| Server |
| | | |
| |<---(C)--- Redirection URI ----<| |
| | with Access Token +---------------+
| | in Fragment
| | +---------------+
| |----(D)--- Redirection URI ---->| Web-Hosted |
| | without Fragment | Client |
| | | Resource |
| (F) |<---(E)------- Script ---------<| |
| | +---------------+
+-|--------+
| |
(A) (G) Access Token
| |
^ v
+---------+
| |
| Client |
| |
+---------+
Source: https://tools.ietf.org/html/rfc6749
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 16
OAuthの基本
Authorizationヘッダに入れる
GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer mF_9.B5f-4.1JqM
ボディに入れる
POST /resource HTTP/1.1
Host: server.example.com
Content-Type: application/x-www-form-
urlencoded
access_token=mF_9.B5f-4.1JqM
クエリパラメーターに入れる
https://server.example.com/resource?
access_token=mF_9.B5f-4.1JqM&p=q
アクセストークンの利用(Bearerトークン)
リソース
サーバー
APP
クライアント
HTML5
WEBSITE
アクセストークンを
使ってAPIアクセス
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 17
OAuth 2.0は「プロトコル」ではなく「フレームワーク」
要件に合わせた「プロファイリング」が必要
権限付与ポリシー
パラメーターの動的指定・事前指定
クライアントに提供するフロー
アクセストークンのリフレッシュ、失効ポリシー
…
OAuth 2.0をどうAPIに適用するか
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 18
プロファイリング
フローは認可コード・グラントのみ
認可リクエストのパラメーター
にscopeが必須
Slackの例
Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 19
プロファイリング
スコープは object:action:entity の形式
Slackの例 (cont.)
Source: OAuth Scopes | Slack https://api.slack.com/docs/oauth-scopes
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 20
プロファイリング
アクセストークンは失効しない
Slackの例 (cont.)
Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 21
プロファイリング
「Bot Userアクセス
トークン」という特別な
アクセストークンがある
Slackの例 (cont.)
Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 22
プロファイリング
ひとつのトークンにスコープ
が追加されていく
APIレスポンスヘッダに現在
トークンに追加されているス
コープ一覧が返ってくる
Slackの例 (cont.)
Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 23
Google
Google Identity Platform
Microsoft
Azure AD “v2.0 エンドポイント”
B2C, B2B, B2B2EすべてのAPIアクセス認可をOAuth 2.0に統一
Source: Google, Microsoft
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 24
RFC 7009 OAuth 2.0 Token Revocation
RFC 7519 JSON Web Token (JWT)
RFC 7521 Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants
RFC 7522 Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and
Authorization Grants
RFC 7523 JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants
RFC 7591 OAuth 2.0 Dynamic Client Registration Protocol
RFC 7636 Proof Key for Code Exchange by OAuth Public Clients
RFC 7662 OAuth 2.0 Token Introspection
RFC 7800 Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs)
“OAuth 2.0” 以後にProposed Standard RFCとなった仕様
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 25
OAuthはユーザー認証にも
使えるか?
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 26
アクセストークンは「権限が移譲されたことを示す情報」
であり、認証結果や属性情報ではない
実運用ではアクセストークンに加えてID情報も扱うよう
独自拡張を行なうケースが多い
認可リクエストに要求属性を指定
「アクセストークンレスポンス」にID情報を示すキー/値を追加
アクセストークン自体を構造化し、ID情報を包含
アクセストークンを受け取ってID情報を返却するAPIを提供
→ 標準化できるのでは!?
OAuth仕様には「ID情報」の扱い方は書かれていない
{
"access_token":"mF_9.B5f-4.1JqM",
"token_type":"Bearer",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
}
アクセストークン(レスポンス)の例
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 27
OAuth 2.0仕様をベースに「アイデンティティ層」を拡張し、認証結果や属性情報の連携、
セッション管理などのAPIを標準化
OpenID Connect
リライング・パーティ
(RP: ID情報要求側)
Webアプリ
ケーション
モバイル
アプリケーション
ライブラリや
パッケージの導
入が不要
ネイティブ
(non-Web)
アプリでも
利用可能
認証結果/属性情報提供
JWT * によって
セキュアにID情報を提供
* JSON Web Token
アイデンティティ・プロバイダ
(IdP: ID情報提供側)
SSO / アクセス
管理システム
“Self-issued IdP”
OpenID
Connect
対応製品が
続々登場
携帯端末が
IdPに!
認可リクエスト/APIアクセス
OAuth 2.0による
API認可と統合
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 28
主要ID/API連携仕様がすべてOpenID Connectに収斂
Source: http://civics.com/OpenID-connect-webinar/
セキュリティ・
アサーション
JSON形式の
「IDトークン」
サービス発見
シンプル、APIとの親和性、
モバイル対応
動的なクライント
登録
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 29
ユーザーの認証イベント
(認証結果)を「IDトークン」として定
義
OAuth 2.0と同一のフローにて、「ア
クセストークン」に加え、新たに「ID
トークン」の要求・提供を定義
また、属性情報を提供する
「ユーザー情報(UserInfo)API」を
定義
OpenID ConnectによるID連携のしくみ
2
2. 認可
リクエスト
ID情報提供側
(アイデンティティ・
プロバイダ)
ID情報要求側
(リライング・
パーティ)
ユーザー
1
1. アクセス
試行
7
7. サービス
提供
3
3. 認証・
同意
4’
4’. 「認可
コード」を
送信
4’’
4’’. 「アクセス
トークン」
「IDトークン」
4
4. 認可レスポンス
(「認可コード」 or
「アクセストークン」
「IDトークン」)
5
5. UserInfo
アクセス
w/ アクセス
トークン
6
6. 属性
情報
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 30
ID情報提供側におけるユーザ認証イベントの情報を含む、署名付き
JWT(Signed JSON Web Token)
 「このエンドユーザーは○○で、何時何分に、こういう方法で認証を受け、認
証レベルは○で、…」
ID情報要求側は主に、IDトークンに含まれる以下のクレーム(ID情報提
供側がユーザーに関して表明する情報)を用いて、エンドユーザーのア
クセス認可を行う
 エンドユーザーを識別する値(識別子)
 IDトークンの有効期限
 ユーザ認証を実施した日時
 認証コンテクスト・クラス・リファレンス
 認証手段リファレンス
 その他(ユーザー属性など)
IDトークン
{
"iss": "http://server.example.com",
"sub": "248289761001",
"aud": "s6BhdRkqt3",
"nonce": "n-0S6_WzA2Mj",
"exp": 1311281970,
"iat": 1311280970,
"name": "Jane Doe",
"given_name": "Jane",
"family_name": "Doe",
"gender": "female",
"birthdate": "0000-10-31",
"email": "janedoe@example.com",
"picture": "http://example.com/janedoe/me.jpg"
}
IDトークンの中身の例
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 31
Beyond OAuth
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 32
ユーザーの立場から見ると、ユーザーは
APIクライアントに対して
定められた範囲内で
自分がオーナーであるリソースへ
自分の代理としてアクセス
を認可している
→ 「他人の代理としてアクセス」するAPIクライアントの認可は!?
そもそもOAuthはなにを「認可」しているのか
リソースオーナー
リソース
サーバー
APP
認可
サーバー
クライアント
HTML5
W EBS ITE
0
0. リソースへのアクセス
をリクエスト
1
1. 認可
リクエスト
2
2. ユーザー認証 &
クライアントへの権限委譲の確認
3
3. OK!
4 4. アクセス
トークン提供
5
5. アクセストークンを
使ってAPIアクセス
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 33
OAuth 2.0をベースに策定された
「他人からのアクセスの認可」
http://tinyurl.com/umawg
UMA (User Managed Access)
Resource
owner
Resource
server
Authorization
server
Client
Authorization
API
UI
UI
UI
Requesting
party
Protection
API
Authorization
client
Protection
client
RS-specific
API
RS-specific
client
1
5
RPT
6
7
8
3
4
PAT
9
AAT
PAT
PAT
RPT
choose resources to
protect – out of band
set policies –
out of band
AAT
2
1. Resource Server (RS) がリソースセットとスコープをAuthorization Server (AS) に登録 (ongoing)
2. ClientがRSにリソースをリクエスト
3. RSがパーミッションをASに登録
4. ASが「パーミッション・チケット」をRSに返却
5. RSがClientにエラーレスポンスのかたちで「パーミッション・チケット」を返却
6. ClientがASにチケットを送信し、認可データとRPTをリクエスト
7. ASがClientに RPTと認可データを返却 (after optional claim flows)
8. ClientがRSにリソースをリクエスト(RPTを送信)
9. RSがClientにリソース表現を返却
Source: https://kantarainitiative.org/confluence/download/attachments/17760302/UMA-flow.pptx?api=v2
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 34
まとめ
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 35
OAuth 2.0仕様はAPI公開におけるトークンベースのアクセス認可
の実現に有用
自社のAPIに適用するには「OAuth 2.0認可フレームワーク」の
「プロファイリング」が必要
OAuth 2.0を補完する仕様の策定、OpenID ConnectやUMAなどの
派生がいまも進行中
まとめ
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 36
OAuth as a Business Enabler
 さまざまなAPIを提供し、他社サービス経由でユーザーの利用状況を把握
 例: ユーザーのターゲティングを強化し本業である広告収益を最大化
エンド
ユーザー
サービス事業者アカウントでログイン
サービス提供
アカウントを
ひもづけ
(ID連携)
アカウントの
ユーザーと
してAPI利用
サービス提供サービス提供
サードパーティ
(API利用事業者)
ダ
イ
レ
ク
ト
チ
ャ
ネ
ル
API
広告
システム
利用
履歴
広告配信
広告
出稿者
広告+
掲載料
さまざまなサービスやアプリケーションに
自社サービスの機能が埋め込まれることにより
ユーザーの行動把握が強化できる
Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 37
「API インタラクションの軸としてアイデンティティを考えない人
→ ゲーム終了」 (クレイグ・バートン)
Source: http://www.slideshare.net/tkudo/cis2011toi/21
API提供におけるOAuthの役割 #apijp

More Related Content

What's hot

Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるNaohiro Fujie
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsTatsuo Kudo
 
MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要Naohiro Fujie
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方Amazon Web Services Japan
 
Monitoring - 入門監視
Monitoring - 入門監視Monitoring - 入門監視
Monitoring - 入門監視Eiji KOMINAMI
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
 
パスワードのいらない世界へ  FIDO認証の最新状況
パスワードのいらない世界へ  FIDO認証の最新状況パスワードのいらない世界へ  FIDO認証の最新状況
パスワードのいらない世界へ  FIDO認証の最新状況FIDO Alliance
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail Amazon Web Services Japan
 
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15OpenID Foundation Japan
 
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authleteいまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authleteTatsuo Kudo
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Yoichi Kawasaki
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)Akihiro Kuwano
 
自己主権型IDと分散型ID
自己主権型IDと分散型ID自己主権型IDと分散型ID
自己主権型IDと分散型IDNaohiro Fujie
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014Nov Matake
 
次世代KYCと自己主権型アイデンティティの動向
次世代KYCと自己主権型アイデンティティの動向次世代KYCと自己主権型アイデンティティの動向
次世代KYCと自己主権型アイデンティティの動向Naohiro Fujie
 

What's hot (20)

Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要MicrosoftのDID/VC実装概要
MicrosoftのDID/VC実装概要
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
 
Monitoring - 入門監視
Monitoring - 入門監視Monitoring - 入門監視
Monitoring - 入門監視
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
パスワードのいらない世界へ  FIDO認証の最新状況
パスワードのいらない世界へ  FIDO認証の最新状況パスワードのいらない世界へ  FIDO認証の最新状況
パスワードのいらない世界へ  FIDO認証の最新状況
 
IDガバナンス&管理の基礎
IDガバナンス&管理の基礎IDガバナンス&管理の基礎
IDガバナンス&管理の基礎
 
AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail AWS Black Belt Online Seminar - Amazon Lightsail
AWS Black Belt Online Seminar - Amazon Lightsail
 
Keycloak入門
Keycloak入門Keycloak入門
Keycloak入門
 
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
IDA,VC,DID関連仕様 最新情報 - OpenID BizDay #15
 
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authleteいまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
自己主権型IDと分散型ID
自己主権型IDと分散型ID自己主権型IDと分散型ID
自己主権型IDと分散型ID
 
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014SAML / OpenID Connect / OAuth / SCIM 技術解説  - ID&IT 2014 #idit2014
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014
 
次世代KYCと自己主権型アイデンティティの動向
次世代KYCと自己主権型アイデンティティの動向次世代KYCと自己主権型アイデンティティの動向
次世代KYCと自己主権型アイデンティティの動向
 

Viewers also liked

認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向Tatsuo Kudo
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向Tatsuo Kudo
 
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現Tatsuo Kudo
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景Tatsuo Kudo
 
ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13Nov Matake
 
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
 
Random Thoughts on Digital Identity Professional #openid_eiwg
Random Thoughts on Digital Identity Professional #openid_eiwgRandom Thoughts on Digital Identity Professional #openid_eiwg
Random Thoughts on Digital Identity Professional #openid_eiwgTatsuo Kudo
 
Oauth2.0とか(認証と認可)_201403
Oauth2.0とか(認証と認可)_201403Oauth2.0とか(認証と認可)_201403
Oauth2.0とか(認証と認可)_201403Shunsuke Mihara
 
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...Tatsuo Kudo
 
Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)Kazuchika Sekiya
 
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016Nov Matake
 
知って欲しいPaaSの話
知って欲しいPaaSの話知って欲しいPaaSの話
知って欲しいPaaSの話Kazuto Kusama
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用Masaru Kurahayashi
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理Naohiro Fujie
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりShinichi Tomita
 
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)Tatsuo Kudo
 

Viewers also liked (20)

認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
 
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
 
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
 
ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13
 
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
 
Random Thoughts on Digital Identity Professional #openid_eiwg
Random Thoughts on Digital Identity Professional #openid_eiwgRandom Thoughts on Digital Identity Professional #openid_eiwg
Random Thoughts on Digital Identity Professional #openid_eiwg
 
Oauth2.0とか(認証と認可)_201403
Oauth2.0とか(認証と認可)_201403Oauth2.0とか(認証と認可)_201403
Oauth2.0とか(認証と認可)_201403
 
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...
 
Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)
 
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016
 
知って欲しいPaaSの話
知って欲しいPaaSの話知って欲しいPaaSの話
知って欲しいPaaSの話
 
これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
 
Office365のIdentity管理
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理
 
シングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
 
Api gatewayの話
Api gatewayの話Api gatewayの話
Api gatewayの話
 
Microservices on pairs
Microservices on pairsMicroservices on pairs
Microservices on pairs
 
OAuth2 and LinkedIn
OAuth2 and LinkedInOAuth2 and LinkedIn
OAuth2 and LinkedIn
 
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
 

Similar to API提供におけるOAuthの役割 #apijp

CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...Tatsuo Kudo
 
Authlete overview
Authlete overviewAuthlete overview
Authlete overviewmtisol
 
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMakoto Kakuta
 
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideTatsuo Kudo
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れTakeshi Mikami
 
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...Tatsuo Kudo
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面KentaEndoh
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Financial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteFinancial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteTatsuo Kudo
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するHitachi, Ltd. OSS Solution Center.
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Toru Yamaguchi
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理Naohiro Fujie
 
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」Tatsuo Kudo
 
Azure Container Services and Microservices design pattern
Azure Container Services and Microservices design patternAzure Container Services and Microservices design pattern
Azure Container Services and Microservices design patternYoshio Terada
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
 

Similar to API提供におけるOAuthの役割 #apijp (20)

CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
Authlete overview
Authlete overviewAuthlete overview
Authlete overview
 
O Auth
O AuthO Auth
O Auth
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
Microservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuth
 
NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話
 
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
 
OAuth 2.0による認可の流れ
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れ
 
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
 
React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Financial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteFinancial-grade API Hands-on with Authlete
Financial-grade API Hands-on with Authlete
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理
 
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
 
Azure Container Services and Microservices design pattern
Azure Container Services and Microservices design patternAzure Container Services and Microservices design pattern
Azure Container Services and Microservices design pattern
 
OpenStack API
OpenStack APIOpenStack API
OpenStack API
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 

More from Tatsuo Kudo

金融APIセキュリティの動向・事例と今後の方向性
金融APIセキュリティの動向・事例と今後の方向性金融APIセキュリティの動向・事例と今後の方向性
金融APIセキュリティの動向・事例と今後の方向性Tatsuo Kudo
 
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s ApproachClient Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s ApproachTatsuo Kudo
 
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021Tatsuo Kudo
 
Authlete: API Authorization Enabler for API Economy
Authlete: API Authorization Enabler for API EconomyAuthlete: API Authorization Enabler for API Economy
Authlete: API Authorization Enabler for API EconomyTatsuo Kudo
 
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizdayTatsuo Kudo
 
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...Tatsuo Kudo
 
英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要Tatsuo Kudo
 
オープン API と Authlete のソリューション
オープン API と Authlete のソリューションオープン API と Authlete のソリューション
オープン API と Authlete のソリューションTatsuo Kudo
 
#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019
#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019
#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019Tatsuo Kudo
 
APIエコノミー時代の認証・認可
APIエコノミー時代の認証・認可APIエコノミー時代の認証・認可
APIエコノミー時代の認証・認可Tatsuo Kudo
 
Japan/UK Open Banking and APIs Summit 2018 TOI
Japan/UK Open Banking and APIs Summit 2018 TOIJapan/UK Open Banking and APIs Summit 2018 TOI
Japan/UK Open Banking and APIs Summit 2018 TOITatsuo Kudo
 
Trends in Banking APIs
Trends in Banking APIsTrends in Banking APIs
Trends in Banking APIsTatsuo Kudo
 
銀行APIのトレンド #fapisum
銀行APIのトレンド #fapisum銀行APIのトレンド #fapisum
銀行APIのトレンド #fapisumTatsuo Kudo
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからTatsuo Kudo
 
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17Tatsuo 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
 
APIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUAPIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUTatsuo Kudo
 

More from Tatsuo Kudo (17)

金融APIセキュリティの動向・事例と今後の方向性
金融APIセキュリティの動向・事例と今後の方向性金融APIセキュリティの動向・事例と今後の方向性
金融APIセキュリティの動向・事例と今後の方向性
 
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s ApproachClient Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach
 
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021
 
Authlete: API Authorization Enabler for API Economy
Authlete: API Authorization Enabler for API EconomyAuthlete: API Authorization Enabler for API Economy
Authlete: API Authorization Enabler for API Economy
 
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
 
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ...
 
英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要英国オープンバンキング技術仕様の概要
英国オープンバンキング技術仕様の概要
 
オープン API と Authlete のソリューション
オープン API と Authlete のソリューションオープン API と Authlete のソリューション
オープン API と Authlete のソリューション
 
#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019
#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019
#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019
 
APIエコノミー時代の認証・認可
APIエコノミー時代の認証・認可APIエコノミー時代の認証・認可
APIエコノミー時代の認証・認可
 
Japan/UK Open Banking and APIs Summit 2018 TOI
Japan/UK Open Banking and APIs Summit 2018 TOIJapan/UK Open Banking and APIs Summit 2018 TOI
Japan/UK Open Banking and APIs Summit 2018 TOI
 
Trends in Banking APIs
Trends in Banking APIsTrends in Banking APIs
Trends in Banking APIs
 
銀行APIのトレンド #fapisum
銀行APIのトレンド #fapisum銀行APIのトレンド #fapisum
銀行APIのトレンド #fapisum
 
アイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれから
 
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17
 
「金融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
 
APIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAUAPIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAU
 

API提供におけるOAuthの役割 #apijp

  • 1. API Meetup Tokyo #13 API提供におけるOAuthの役割 2016年4月8日 NRIセキュアテクノロジーズ株式会社 工藤達雄 〒100-0004 東京都千代田区大手町1-7-2 東京サンケイビル
  • 2. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 1 昨今、APIアクセス認可のフレームワークとして "OAuth" 仕様を使うケースが一般的になっています。 本セッションでは OAuth 適用のトレンドと今後について 紹介します。 はじめに
  • 3. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 2 工藤達雄 http://www.linkedin.com/in/tatsuokudo/ @tkudos サン・マイクロシステムズ (1998~2008) 野村総合研究所 (2008~) OpenIDファウンデーション・ジャパン (2013~2014) NRIセキュアテクノロジーズ (2014~) 自己紹介
  • 4. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 3 なぜOAuth?
  • 5. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 4 ダイレクトチャネルはID/パスワードでログイン コンテンツ/ 機能 Webサイト モバイルAPI サービス事業者 ID/パスワード エンドユーザー ID/パスワード APP
  • 6. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 5 サードパーティにAPIを公開する場合はどうするか コンテンツ/ 機能 Webサイト モバイルAPIID/パスワード エンドユーザー ID/パスワード 外部向け API サービス事業者 サードパーティ Webサイト サードパーティ モバイルAPI サードパーティ APP APP APP ID/パスワード…!?
  • 7. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 6 ユーザーはID/パスワードをサードパーティに預けることになる → 認証リスク サードパーティからの情報漏えいやサードパーティ自身による不正利用の懸念が残る ユーザーはサードパーティに全権委任することになる → 認可リスク サードパーティは本来サービスに不要な(過剰な)APIアクセスを行うこともできてしまう 使い勝手が悪い サードパーティのアクセス有効期間を制御できない サードパーティにユーザーのID/パスワードを渡す?
  • 8. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 7 ID/パスワードではなく「トークン」を渡す コンテンツ/ 機能 Webサイト モバイルAPIID/パスワード エンドユーザー ID/パスワード 外部向け API サービス事業者 サードパーティ APIクライアント APP トークン 管理 ID/パスワード + 権限委譲 トークン 発行 トークン
  • 9. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 8 ユーザーのID/パスワードがサードパーティに漏れない サードパーティからのID/パスワード流出や不正利用が発生しなくなる サードパーティに委譲する権限をユーザーが限定できるようになる ユーザーが指定した範囲・機能のみをサードパーティに許可できる 使い勝手が良くなる サードパーティごとにAPIアクセスの可否をコントロールできる トークンを使うと
  • 10. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 9 オープン標準への道のり  2005年前後、各社はそれぞれ独自のAPIアクセス認可のしくみを策定していた  Flickr Auth, Google AuthSub, Yahoo! BBAuth, …  2006年11月、TwitterのエンジニアやOpenIDコミュニティを中心に、API代理認証に OpenIDを適用できないか議論が始まった  結果的にOpenIDは適用できなかった  また当時API代理認証のオープン標準と呼べるものはまだ存在しないことが明らかになった  2007年4月、少人数にてプロトコル検討が始まった  同7月には仕様草案の初版をもとに公開の場にて議論されるようになった  そして同10月、OAuth 1.0の最終ドラフトが公開された Source: http://oauth.net/about/
  • 11. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 10 Source: I CAN HAD OPEN: OAuth First Summit a Hit! « hueniverse http://hueniverse.com/2008/07/i-can-had-open-oauth-first-summit-a-hit/
  • 12. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 11 「トークンによる API アクセス認可」の標準仕様 現在のバージョンはOAuth 2.0 (1.0はobsolete) ▪ RFC 6749 The OAuth 2.0 Authorization Framework ▪ RFC 6750 同 Bearer Token Usage 「RESTful API」との親和性が高い スコープによるアクセス権限指定、Authorizationヘッダの利用など モダンなクライアント環境を考慮している Webブラウザだけではなく、モバイルネイティブやJavaScriptなど OAuth Source: http://oauth.net/2/
  • 13. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 12 OAuthの基本 登場人物と処理の流れ リソースオーナー リソース サーバー APP 認可 サーバー クライアント HTML5 WEBSITE 0 0. リソースへのアクセスを リクエスト 1 1. 認可 リクエスト 2 2. ユーザー認証 & クライアントへの権限委譲の確認 3 3. OK! 4 4. アクセストークン 提供 5 5. アクセストークンを 使ってAPIアクセス
  • 14. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 13 リソースオーナー OAuthの基本 クライアントがユーザー(リソースオーナー)の同意に基づき「アクセストークン」を入手するための 一連のフローの起点 レスポンスタイプ: フローは「認可コード」か「インプリシット」か クライアントID: リクエスト元はどのクライアントか スコープ(オプション): どのようなアクセス権限を持つアクセストークンか OAuth認可リクエスト クライアント WEBSITE 認可 サーバー 認可リクエスト GET /authorize?response_type=code&client_id=s6BhdRkqt3&scope=message.readonly&state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1 Host: server.example.com
  • 15. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 14 OAuthの基本 認可サーバーはユーザーエージェントを介して間接的に クライアントに「認可コード」を返す (C)  HTTP/1.1 302 Found Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA&state=xyz クライアントは認可サーバーに認可コードを送信する (D)  POST /token HTTP/1.1 Host: server.example.com Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW Content-Type: application/x-www-form-urlencoded grant_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb 認可サーバーはクライアントにアクセストークンを返却する (E)  HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 Cache-Control: no-store Pragma: no-cache { "access_token":"2YotnFZFEjr1zCsicMWpAA", "token_type":"example", "expires_in":3600, "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", "example_parameter":"example_value“ } 認可コード・グラント・フロー +----------+ | Resource | | Owner | | | +----------+ ^ | (B) +----|-----+ Client Identifier +---------------+ | -+----(A)-- & Redirection URI ---->| | | User- | | Authorization | | Agent -+----(B)-- User authenticates --->| Server | | | | | | -+----(C)-- Authorization Code ---<| | +-|----|---+ +---------------+ | | ^ v (A) (C) | | | | | | ^ v | | +---------+ | | | |>---(D)-- Authorization Code ---------' | | Client | & Redirection URI | | | | | |<---(E)----- Access Token -------------------' +---------+ (w/ Optional Refresh Token) Source: https://tools.ietf.org/html/rfc6749
  • 16. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 15 OAuthの基本 認可サーバーはアクセストークン をフラグメントとしてユーザーエー ジェントに返す (C)  HTTP/1.1 302 Found Location: http://example.com/cb#access_token=2YotnFZFEjr1zCs icMWpAA &state=xyz&token_type=example&expires_in=3600 ユーザーエージェントはフラグメ ントからアクセストークンを取り出し クライアントに提供する (F, G) インプリシット・グラント・フロー +----------+ | Resource | | Owner | | | +----------+ ^ | (B) +----|-----+ Client Identifier +---------------+ | -+----(A)-- & Redirection URI --->| | | User- | | Authorization | | Agent -|----(B)-- User authenticates -->| Server | | | | | | |<---(C)--- Redirection URI ----<| | | | with Access Token +---------------+ | | in Fragment | | +---------------+ | |----(D)--- Redirection URI ---->| Web-Hosted | | | without Fragment | Client | | | | Resource | | (F) |<---(E)------- Script ---------<| | | | +---------------+ +-|--------+ | | (A) (G) Access Token | | ^ v +---------+ | | | Client | | | +---------+ Source: https://tools.ietf.org/html/rfc6749
  • 17. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 16 OAuthの基本 Authorizationヘッダに入れる GET /resource HTTP/1.1 Host: server.example.com Authorization: Bearer mF_9.B5f-4.1JqM ボディに入れる POST /resource HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form- urlencoded access_token=mF_9.B5f-4.1JqM クエリパラメーターに入れる https://server.example.com/resource? access_token=mF_9.B5f-4.1JqM&p=q アクセストークンの利用(Bearerトークン) リソース サーバー APP クライアント HTML5 WEBSITE アクセストークンを 使ってAPIアクセス
  • 18. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 17 OAuth 2.0は「プロトコル」ではなく「フレームワーク」 要件に合わせた「プロファイリング」が必要 権限付与ポリシー パラメーターの動的指定・事前指定 クライアントに提供するフロー アクセストークンのリフレッシュ、失効ポリシー … OAuth 2.0をどうAPIに適用するか
  • 19. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 18 プロファイリング フローは認可コード・グラントのみ 認可リクエストのパラメーター にscopeが必須 Slackの例 Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
  • 20. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 19 プロファイリング スコープは object:action:entity の形式 Slackの例 (cont.) Source: OAuth Scopes | Slack https://api.slack.com/docs/oauth-scopes
  • 21. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 20 プロファイリング アクセストークンは失効しない Slackの例 (cont.) Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
  • 22. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 21 プロファイリング 「Bot Userアクセス トークン」という特別な アクセストークンがある Slackの例 (cont.) Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
  • 23. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 22 プロファイリング ひとつのトークンにスコープ が追加されていく APIレスポンスヘッダに現在 トークンに追加されているス コープ一覧が返ってくる Slackの例 (cont.) Source: Using OAuth 2.0 | Slack https://api.slack.com/docs/oauth
  • 24. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 23 Google Google Identity Platform Microsoft Azure AD “v2.0 エンドポイント” B2C, B2B, B2B2EすべてのAPIアクセス認可をOAuth 2.0に統一 Source: Google, Microsoft
  • 25. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 24 RFC 7009 OAuth 2.0 Token Revocation RFC 7519 JSON Web Token (JWT) RFC 7521 Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants RFC 7522 Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants RFC 7523 JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants RFC 7591 OAuth 2.0 Dynamic Client Registration Protocol RFC 7636 Proof Key for Code Exchange by OAuth Public Clients RFC 7662 OAuth 2.0 Token Introspection RFC 7800 Proof-of-Possession Key Semantics for JSON Web Tokens (JWTs) “OAuth 2.0” 以後にProposed Standard RFCとなった仕様
  • 26. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 25 OAuthはユーザー認証にも 使えるか?
  • 27. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 26 アクセストークンは「権限が移譲されたことを示す情報」 であり、認証結果や属性情報ではない 実運用ではアクセストークンに加えてID情報も扱うよう 独自拡張を行なうケースが多い 認可リクエストに要求属性を指定 「アクセストークンレスポンス」にID情報を示すキー/値を追加 アクセストークン自体を構造化し、ID情報を包含 アクセストークンを受け取ってID情報を返却するAPIを提供 → 標準化できるのでは!? OAuth仕様には「ID情報」の扱い方は書かれていない { "access_token":"mF_9.B5f-4.1JqM", "token_type":"Bearer", "expires_in":3600, "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA" } アクセストークン(レスポンス)の例
  • 28. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 27 OAuth 2.0仕様をベースに「アイデンティティ層」を拡張し、認証結果や属性情報の連携、 セッション管理などのAPIを標準化 OpenID Connect リライング・パーティ (RP: ID情報要求側) Webアプリ ケーション モバイル アプリケーション ライブラリや パッケージの導 入が不要 ネイティブ (non-Web) アプリでも 利用可能 認証結果/属性情報提供 JWT * によって セキュアにID情報を提供 * JSON Web Token アイデンティティ・プロバイダ (IdP: ID情報提供側) SSO / アクセス 管理システム “Self-issued IdP” OpenID Connect 対応製品が 続々登場 携帯端末が IdPに! 認可リクエスト/APIアクセス OAuth 2.0による API認可と統合
  • 29. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 28 主要ID/API連携仕様がすべてOpenID Connectに収斂 Source: http://civics.com/OpenID-connect-webinar/ セキュリティ・ アサーション JSON形式の 「IDトークン」 サービス発見 シンプル、APIとの親和性、 モバイル対応 動的なクライント 登録
  • 30. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 29 ユーザーの認証イベント (認証結果)を「IDトークン」として定 義 OAuth 2.0と同一のフローにて、「ア クセストークン」に加え、新たに「ID トークン」の要求・提供を定義 また、属性情報を提供する 「ユーザー情報(UserInfo)API」を 定義 OpenID ConnectによるID連携のしくみ 2 2. 認可 リクエスト ID情報提供側 (アイデンティティ・ プロバイダ) ID情報要求側 (リライング・ パーティ) ユーザー 1 1. アクセス 試行 7 7. サービス 提供 3 3. 認証・ 同意 4’ 4’. 「認可 コード」を 送信 4’’ 4’’. 「アクセス トークン」 「IDトークン」 4 4. 認可レスポンス (「認可コード」 or 「アクセストークン」 「IDトークン」) 5 5. UserInfo アクセス w/ アクセス トークン 6 6. 属性 情報
  • 31. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 30 ID情報提供側におけるユーザ認証イベントの情報を含む、署名付き JWT(Signed JSON Web Token)  「このエンドユーザーは○○で、何時何分に、こういう方法で認証を受け、認 証レベルは○で、…」 ID情報要求側は主に、IDトークンに含まれる以下のクレーム(ID情報提 供側がユーザーに関して表明する情報)を用いて、エンドユーザーのア クセス認可を行う  エンドユーザーを識別する値(識別子)  IDトークンの有効期限  ユーザ認証を実施した日時  認証コンテクスト・クラス・リファレンス  認証手段リファレンス  その他(ユーザー属性など) IDトークン { "iss": "http://server.example.com", "sub": "248289761001", "aud": "s6BhdRkqt3", "nonce": "n-0S6_WzA2Mj", "exp": 1311281970, "iat": 1311280970, "name": "Jane Doe", "given_name": "Jane", "family_name": "Doe", "gender": "female", "birthdate": "0000-10-31", "email": "janedoe@example.com", "picture": "http://example.com/janedoe/me.jpg" } IDトークンの中身の例
  • 32. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 31 Beyond OAuth
  • 33. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 32 ユーザーの立場から見ると、ユーザーは APIクライアントに対して 定められた範囲内で 自分がオーナーであるリソースへ 自分の代理としてアクセス を認可している → 「他人の代理としてアクセス」するAPIクライアントの認可は!? そもそもOAuthはなにを「認可」しているのか リソースオーナー リソース サーバー APP 認可 サーバー クライアント HTML5 W EBS ITE 0 0. リソースへのアクセス をリクエスト 1 1. 認可 リクエスト 2 2. ユーザー認証 & クライアントへの権限委譲の確認 3 3. OK! 4 4. アクセス トークン提供 5 5. アクセストークンを 使ってAPIアクセス
  • 34. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 33 OAuth 2.0をベースに策定された 「他人からのアクセスの認可」 http://tinyurl.com/umawg UMA (User Managed Access) Resource owner Resource server Authorization server Client Authorization API UI UI UI Requesting party Protection API Authorization client Protection client RS-specific API RS-specific client 1 5 RPT 6 7 8 3 4 PAT 9 AAT PAT PAT RPT choose resources to protect – out of band set policies – out of band AAT 2 1. Resource Server (RS) がリソースセットとスコープをAuthorization Server (AS) に登録 (ongoing) 2. ClientがRSにリソースをリクエスト 3. RSがパーミッションをASに登録 4. ASが「パーミッション・チケット」をRSに返却 5. RSがClientにエラーレスポンスのかたちで「パーミッション・チケット」を返却 6. ClientがASにチケットを送信し、認可データとRPTをリクエスト 7. ASがClientに RPTと認可データを返却 (after optional claim flows) 8. ClientがRSにリソースをリクエスト(RPTを送信) 9. RSがClientにリソース表現を返却 Source: https://kantarainitiative.org/confluence/download/attachments/17760302/UMA-flow.pptx?api=v2
  • 35. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 34 まとめ
  • 36. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 35 OAuth 2.0仕様はAPI公開におけるトークンベースのアクセス認可 の実現に有用 自社のAPIに適用するには「OAuth 2.0認可フレームワーク」の 「プロファイリング」が必要 OAuth 2.0を補完する仕様の策定、OpenID ConnectやUMAなどの 派生がいまも進行中 まとめ
  • 37. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 36 OAuth as a Business Enabler  さまざまなAPIを提供し、他社サービス経由でユーザーの利用状況を把握  例: ユーザーのターゲティングを強化し本業である広告収益を最大化 エンド ユーザー サービス事業者アカウントでログイン サービス提供 アカウントを ひもづけ (ID連携) アカウントの ユーザーと してAPI利用 サービス提供サービス提供 サードパーティ (API利用事業者) ダ イ レ ク ト チ ャ ネ ル API 広告 システム 利用 履歴 広告配信 広告 出稿者 広告+ 掲載料 さまざまなサービスやアプリケーションに 自社サービスの機能が埋め込まれることにより ユーザーの行動把握が強化できる
  • 38. Copyright © NRI SecureTechnologies, Ltd. All rights reserved. 37 「API インタラクションの軸としてアイデンティティを考えない人 → ゲーム終了」 (クレイグ・バートン) Source: http://www.slideshare.net/tkudo/cis2011toi/21