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

Tatsuo Kudo
Tatsuo KudoDigital Identity Professional at Authlete
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
1 de 39

Recomendados

Azure AD B2CにIdPを色々と繋いでみる por
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるNaohiro Fujie
1.3K vistas47 diapositivas
今なら間に合う分散型IDとEntra Verified ID por
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
11.5K vistas71 diapositivas
KeycloakでAPI認可に入門する por
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するHitachi, Ltd. OSS Solution Center.
3.6K vistas49 diapositivas
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D... por
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...
S13_レガシー ID 管理者でも分かる Verifiable Credentials のセッション [Microsoft Japan Digital D...日本マイクロソフト株式会社
740 vistas23 diapositivas
アイデンティティ (ID) 技術の最新動向とこれから por
アイデンティティ (ID) 技術の最新動向とこれからアイデンティティ (ID) 技術の最新動向とこれから
アイデンティティ (ID) 技術の最新動向とこれからTatsuo Kudo
8.5K vistas36 diapositivas
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~ por
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~
パスワード氾濫時代のID管理とは? ~最新のOpenIDが目指すユーザー認証の効率的な強化~Tatsuo Kudo
19.4K vistas48 diapositivas

Más contenido relacionado

La actualidad más candente

OpenID ConnectとAndroidアプリのログインサイクル por
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクルMasaru Kurahayashi
14.9K vistas99 diapositivas
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014 por
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
98.8K vistas66 diapositivas
OAuth 2.0のResource Serverの作り方 por
OAuth 2.0のResource Serverの作り方OAuth 2.0のResource Serverの作り方
OAuth 2.0のResource Serverの作り方Hitachi, Ltd. OSS Solution Center.
1.4K vistas18 diapositivas
TLS, HTTP/2演習 por
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習shigeki_ohtsu
13.1K vistas129 diapositivas
Id基盤構築101 por
Id基盤構築101Id基盤構築101
Id基盤構築101Naohiro Fujie
3.9K vistas33 diapositivas
ざっくり解説 LINE ログイン por
ざっくり解説 LINE ログインざっくり解説 LINE ログイン
ざっくり解説 LINE ログインNaohiro Fujie
1.1K vistas34 diapositivas

La actualidad más candente(20)

OpenID ConnectとAndroidアプリのログインサイクル por Masaru Kurahayashi
OpenID ConnectとAndroidアプリのログインサイクルOpenID ConnectとAndroidアプリのログインサイクル
OpenID ConnectとAndroidアプリのログインサイクル
Masaru Kurahayashi14.9K vistas
SAML / OpenID Connect / OAuth / SCIM 技術解説 - ID&IT 2014 #idit2014 por Nov Matake
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
Nov Matake98.8K vistas
TLS, HTTP/2演習 por shigeki_ohtsu
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu13.1K vistas
ざっくり解説 LINE ログイン por Naohiro Fujie
ざっくり解説 LINE ログインざっくり解説 LINE ログイン
ざっくり解説 LINE ログイン
Naohiro Fujie1.1K vistas
SSIとDIDで何を解決したいのか?(β版) por Naohiro Fujie
SSIとDIDで何を解決したいのか?(β版)SSIとDIDで何を解決したいのか?(β版)
SSIとDIDで何を解決したいのか?(β版)
Naohiro Fujie25.4K vistas
Keycloak拡張入門 por Hiroyuki Wada
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada10.4K vistas
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete por Tatsuo Kudo
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authleteいまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
いまどきの OAuth / OpenID Connect (OIDC) 一挙おさらい (2020 年 2 月) #authlete
Tatsuo Kudo1.9K vistas
マルチテナントのアプリケーション実装〜実践編〜 por Yoshiki Nakagawa
マルチテナントのアプリケーション実装〜実践編〜マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa4.2K vistas
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど) por Tatsuo Kudo
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
PDSを実現するにあたっての技術動向の紹介 (OAuth, OpenID Connect, UMAなど)
Tatsuo Kudo7.3K vistas
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside por Tatsuo Kudo
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_insideAuthlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Authlete: セキュアな金融 API 基盤の実現と Google Cloud の活用 #gc_inside
Tatsuo Kudo1.9K vistas
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜 por Masaru Kurahayashi
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
Masaru Kurahayashi146.9K vistas
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話 por wind06106
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
SCUGJ第27回勉強会:ものすごくざっくりなAzure Filesの話
wind06106657 vistas
これからのネイティブアプリにおけるOpenID Connectの活用 por Masaru Kurahayashi
これからのネイティブアプリにおけるOpenID Connectの活用これからのネイティブアプリにおけるOpenID Connectの活用
これからのネイティブアプリにおけるOpenID Connectの活用
Masaru Kurahayashi25.8K vistas
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日) por Masanori KAMAYAMA
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
IDaaS を利用すべき理由とエンジニアがおさえておくべきポイント (2021年1月14日)
Masanori KAMAYAMA994 vistas

Destacado

認証技術、デジタルアイデンティティ技術の最新動向 por
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向Tatsuo Kudo
10.8K vistas36 diapositivas
今更聞けないOAuth2.0 por
今更聞けないOAuth2.0今更聞けないOAuth2.0
今更聞けないOAuth2.0Takahiro Sato
68.9K vistas83 diapositivas
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向 por
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向Tatsuo Kudo
2.4K vistas28 diapositivas
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現 por
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現Tatsuo Kudo
3K vistas16 diapositivas
なぜOpenID Connectが必要となったのか、その歴史的背景 por
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景Tatsuo Kudo
49.4K vistas36 diapositivas
ID連携概要 - OpenID TechNight vol.13 por
ID連携概要 - OpenID TechNight vol.13ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13Nov Matake
37.1K vistas29 diapositivas

Destacado(20)

認証技術、デジタルアイデンティティ技術の最新動向 por Tatsuo Kudo
認証技術、デジタルアイデンティティ技術の最新動向認証技術、デジタルアイデンティティ技術の最新動向
認証技術、デジタルアイデンティティ技術の最新動向
Tatsuo Kudo10.8K vistas
今更聞けないOAuth2.0 por Takahiro Sato
今更聞けないOAuth2.0今更聞けないOAuth2.0
今更聞けないOAuth2.0
Takahiro Sato68.9K vistas
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向 por Tatsuo Kudo
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
利用者本位のAPI提供に向けたアイデンティティ (ID) 標準仕様の動向
Tatsuo Kudo2.4K vistas
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現 por Tatsuo Kudo
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
NRIセキュアが考える持続可能なID&アクセス管理基盤の実現
Tatsuo Kudo3K vistas
なぜOpenID Connectが必要となったのか、その歴史的背景 por Tatsuo Kudo
なぜOpenID Connectが必要となったのか、その歴史的背景なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
Tatsuo Kudo49.4K vistas
ID連携概要 - OpenID TechNight vol.13 por Nov Matake
ID連携概要 - OpenID TechNight vol.13ID連携概要 - OpenID TechNight vol.13
ID連携概要 - OpenID TechNight vol.13
Nov Matake37.1K vistas
OpenID TechNight Vol. 11 - Call to Action por Tatsuo Kudo
OpenID TechNight Vol. 11 - Call to ActionOpenID TechNight Vol. 11 - Call to Action
OpenID TechNight Vol. 11 - Call to Action
Tatsuo Kudo3K vistas
Random Thoughts on Digital Identity Professional #openid_eiwg por Tatsuo Kudo
Random Thoughts on Digital Identity Professional #openid_eiwgRandom Thoughts on Digital Identity Professional #openid_eiwg
Random Thoughts on Digital Identity Professional #openid_eiwg
Tatsuo Kudo1K vistas
Oauth2.0とか(認証と認可)_201403 por Shunsuke Mihara
Oauth2.0とか(認証と認可)_201403Oauth2.0とか(認証と認可)_201403
Oauth2.0とか(認証と認可)_201403
Shunsuke Mihara3.5K vistas
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ... por Tatsuo Kudo
#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...#jics2014 そろそろ「社員IDでログインできます」始めてみませんか? サービス・プロバイダーの立場から考える「エンタープライズ・アイデンテ...
#jics2014 そろそろ「社員IDでログインできます」 始めてみませんか? サービス・プロバイダーの立場から考える 「エンタープライズ・アイデンテ...
Tatsuo Kudo4.5K vistas
Apigee+OASでらくらくAPI開発(予定) por Kazuchika Sekiya
Apigee+OASでらくらくAPI開発(予定)Apigee+OASでらくらくAPI開発(予定)
Apigee+OASでらくらくAPI開発(予定)
Kazuchika Sekiya1.3K vistas
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016 por Nov Matake
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016
OPTiM StoreにおけるSCIM & OIDC活用事例 - ID&IT 2016
Nov Matake1.3K vistas
知って欲しいPaaSの話 por Kazuto Kusama
知って欲しいPaaSの話知って欲しいPaaSの話
知って欲しいPaaSの話
Kazuto Kusama4.1K vistas
Office365のIdentity管理 por Naohiro Fujie
Office365のIdentity管理Office365のIdentity管理
Office365のIdentity管理
Naohiro Fujie36.4K vistas
シングルサインオンの歴史とSAMLへの道のり por Shinichi Tomita
シングルサインオンの歴史とSAMLへの道のりシングルサインオンの歴史とSAMLへの道のり
シングルサインオンの歴史とSAMLへの道のり
Shinichi Tomita36.9K vistas
Cloud Identity Summit 2012 TOI por Tatsuo Kudo
Cloud Identity Summit 2012 TOICloud Identity Summit 2012 TOI
Cloud Identity Summit 2012 TOI
Tatsuo Kudo4.2K vistas
OpenID Connect, December 2011 por Tatsuo Kudo
OpenID Connect, December 2011OpenID Connect, December 2011
OpenID Connect, December 2011
Tatsuo Kudo2.1K vistas

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

CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth... por
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
6.6K vistas39 diapositivas
Authlete overview por
Authlete overviewAuthlete overview
Authlete overviewmtisol
4.6K vistas7 diapositivas
O Auth por
O AuthO Auth
O AuthTaizo Matsuoka
1.8K vistas19 diapositivas
Keycloakの最近のトピック por
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピックHitachi, Ltd. OSS Solution Center.
1.5K vistas23 diapositivas
Microservices /w Spring Security OAuth por
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuthMakoto Kakuta
2.3K vistas48 diapositivas
NGINXをBFF (Backend for Frontend)として利用した話 por
NGINXをBFF (Backend for Frontend)として利用した話NGINXをBFF (Backend for Frontend)として利用した話
NGINXをBFF (Backend for Frontend)として利用した話Hitachi, Ltd. OSS Solution Center.
1.2K vistas23 diapositivas

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

CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth... por Tatsuo Kudo
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 Kudo6.6K vistas
Authlete overview por mtisol
Authlete overviewAuthlete overview
Authlete overview
mtisol4.6K vistas
Microservices /w Spring Security OAuth por Makoto Kakuta
Microservices /w Spring Security OAuthMicroservices /w Spring Security OAuth
Microservices /w Spring Security OAuth
Makoto Kakuta2.3K vistas
OAuth 2.0による認可の流れ por Takeshi Mikami
OAuth 2.0による認可の流れOAuth 2.0による認可の流れ
OAuth 2.0による認可の流れ
Takeshi Mikami277 vistas
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat... por Tatsuo Kudo
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 Kudo8.6K vistas
React(TypeScript) + Go + Auth0 で実現する管理画面 por KentaEndoh
React(TypeScript) + Go + Auth0 で実現する管理画面React(TypeScript) + Go + Auth0 で実現する管理画面
React(TypeScript) + Go + Auth0 で実現する管理画面
KentaEndoh1.4K vistas
技術選択とアーキテクトの役割 por Toru Yamaguchi
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi42K vistas
Financial-grade API Hands-on with Authlete por Tatsuo Kudo
Financial-grade API Hands-on with AuthleteFinancial-grade API Hands-on with Authlete
Financial-grade API Hands-on with Authlete
Tatsuo Kudo499 vistas
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws por Tatsuo Kudo
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawawsOAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
OAuth / OpenID Connectを中心とするAPIセキュリティについて #yuzawaws
Tatsuo Kudo13.4K vistas
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015 por Toru Yamaguchi
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Toru Yamaguchi3.8K vistas
Azure ADとIdentity管理 por Naohiro Fujie
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理
Naohiro Fujie25K vistas
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」 por Tatsuo Kudo
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Apigee の FAPI & CIBA 対応を実現する「Authlete (オースリート)」
Tatsuo Kudo258 vistas
Azure Container Services and Microservices design pattern por Yoshio Terada
Azure Container Services and Microservices design patternAzure Container Services and Microservices design pattern
Azure Container Services and Microservices design pattern
Yoshio Terada301 vistas
Azure IoT 最新アップデート!_IoTビジネス共創ラボ 第7回勉強会 por IoTビジネス共創ラボ
Azure IoT 最新アップデート!_IoTビジネス共創ラボ 第7回勉強会Azure IoT 最新アップデート!_IoTビジネス共創ラボ 第7回勉強会
Azure IoT 最新アップデート!_IoTビジネス共創ラボ 第7回勉強会

Más de Tatsuo Kudo

金融APIセキュリティの動向・事例と今後の方向性 por
金融APIセキュリティの動向・事例と今後の方向性金融APIセキュリティの動向・事例と今後の方向性
金融APIセキュリティの動向・事例と今後の方向性Tatsuo Kudo
481 vistas44 diapositivas
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach por
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
238 vistas11 diapositivas
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021 por
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
650 vistas13 diapositivas
Authlete: API Authorization Enabler for API Economy por
Authlete: API Authorization Enabler for API EconomyAuthlete: API Authorization Enabler for API Economy
Authlete: API Authorization Enabler for API EconomyTatsuo Kudo
516 vistas11 diapositivas
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday por
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizdayTatsuo Kudo
803 vistas33 diapositivas
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ... por
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
5.1K vistas35 diapositivas

Más de Tatsuo Kudo(16)

金融APIセキュリティの動向・事例と今後の方向性 por Tatsuo Kudo
金融APIセキュリティの動向・事例と今後の方向性金融APIセキュリティの動向・事例と今後の方向性
金融APIセキュリティの動向・事例と今後の方向性
Tatsuo Kudo481 vistas
Client Initiated Backchannel Authentication (CIBA) and Authlete’s Approach por Tatsuo Kudo
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
Tatsuo Kudo238 vistas
In-house OAuth/OIDC Infrastructure as a Competitive Advantage #eic2021 por Tatsuo Kudo
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
Tatsuo Kudo650 vistas
Authlete: API Authorization Enabler for API Economy por Tatsuo Kudo
Authlete: API Authorization Enabler for API EconomyAuthlete: API Authorization Enabler for API Economy
Authlete: API Authorization Enabler for API Economy
Tatsuo Kudo516 vistas
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday por Tatsuo Kudo
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
銀行 API における OAuth 2.0 / FAPI の動向 #openid #bizday
Tatsuo Kudo803 vistas
Authorization Architecture Patterns: How to Avoid Pitfalls in #OAuth / #OIDC ... por Tatsuo 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 ...
Tatsuo Kudo5.1K vistas
オープン API と Authlete のソリューション por Tatsuo Kudo
オープン API と Authlete のソリューションオープン API と Authlete のソリューション
オープン API と Authlete のソリューション
Tatsuo Kudo1.6K vistas
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション por Tatsuo Kudo
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューションOAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
OAuth / OpenID Connect (OIDC) の最新動向と Authlete のソリューション
Tatsuo Kudo3.6K vistas
#OAuth Security Workshop 2019 Recap @ #Authlete Partner Meetup Spring 2019 por 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
Tatsuo Kudo2.6K vistas
APIエコノミー時代の認証・認可 por Tatsuo Kudo
APIエコノミー時代の認証・認可APIエコノミー時代の認証・認可
APIエコノミー時代の認証・認可
Tatsuo Kudo2.6K vistas
Japan/UK Open Banking and APIs Summit 2018 TOI por Tatsuo Kudo
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
Tatsuo Kudo1.1K vistas
Trends in Banking APIs por Tatsuo Kudo
Trends in Banking APIsTrends in Banking APIs
Trends in Banking APIs
Tatsuo Kudo1.1K vistas
銀行APIのトレンド #fapisum por Tatsuo Kudo
銀行APIのトレンド #fapisum銀行APIのトレンド #fapisum
銀行APIのトレンド #fapisum
Tatsuo Kudo3.6K vistas
OAuth Security Workshop 2017 #osw17 por Tatsuo Kudo
OAuth Security Workshop 2017 #osw17OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17
Tatsuo Kudo2.1K vistas
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api por Tatsuo Kudo
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo3.1K vistas
APIdays Australia 2017 TOI #APIdaysAU por Tatsuo Kudo
APIdays Australia 2017 TOI #APIdaysAUAPIdays Australia 2017 TOI #APIdaysAU
APIdays Australia 2017 TOI #APIdaysAU
Tatsuo Kudo972 vistas

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