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 API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル貴志 上坂
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Takeshi Fukuhara
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本Amazon Web Services Japan
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndureAmazon Web Services Japan
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向Tatsuo Kudo
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティスAkihiro Kuwano
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発Amazon Web Services Japan
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAmazon Web Services Japan
 
AWSのセキュリティについて
AWSのセキュリティについてAWSのセキュリティについて
AWSのセキュリティについてYasuhiro Horiuchi
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現junichi anno
 

What's hot (20)

Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアルAzure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure20200811 AWS Black Belt Online Seminar CloudEndure
20200811 AWS Black Belt Online Seminar CloudEndure
 
OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向OpenID ConnectとSCIMの標準化動向
OpenID ConnectとSCIMの標準化動向
 
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 
IDガバナンス&管理の基礎
IDガバナンス&管理の基礎IDガバナンス&管理の基礎
IDガバナンス&管理の基礎
 
GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)GraphQL入門 (AWS AppSync)
GraphQL入門 (AWS AppSync)
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
Amazon SageMaker 推論エンドポイントを利用したアプリケーション開発
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
AWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct ConnectAWS Black Belt Techシリーズ AWS Direct Connect
AWS Black Belt Techシリーズ AWS Direct Connect
 
AWSのセキュリティについて
AWSのセキュリティについてAWSのセキュリティについて
AWSのセキュリティについて
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
最新Active DirectoryによるIDMaaSとハイブリッド認証基盤の実現
 

Viewers also liked

認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向Tatsuo Kudo
 
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~Tatsuo Kudo
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
今更聞けないOAuth2.0
今更聞けないOAuth2.0今更聞けないOAuth2.0
今更聞けないOAuth2.0Takahiro Sato
 
利用者本位の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
 
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
 
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
 

Viewers also liked (20)

認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
 
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
今更聞けないOAuth2.0
今更聞けないOAuth2.0今更聞けないOAuth2.0
今更聞けないOAuth2.0
 
利用者本位の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
 
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
 
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の話
 

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
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
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
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsTatsuo 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
 

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)として利用した話
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
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
 
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
 
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管理
 
Keycloak入門
Keycloak入門Keycloak入門
Keycloak入門
 
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
 

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
 
いまどきの 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
 
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 / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションOAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と 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 (19)

金融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
 
いまどきの 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
 
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 / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションOAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と 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