Weitere ähnliche Inhalte
Ähnlich wie Openid technight 20110909_fujie (20)
Mehr von Naohiro Fujie (20)
Openid technight 20110909_fujie
- 2. Microsoft の Identity 関連 Software + Service
• Identity Provider
• Relying Party Library
RESTful Web Service の実装
• WIF + ACS で OAuth
ACS as Consumer with Facebook
ACS as AuthZ Server
• Federation Provider の使い方
• Trust Framework 統合
まとめ
- 6. Security Token Service ( STS )
• セキュリティ・トークン を処理(発行/変換)
• On-Premise
AD FS 2.0 ( Active Directory Federation Service 2.0 )
• Online / Cloud
ACS v2 (Windows Azure Platform AppFabric Access
Control Service v2 )
MFG (Microsoft Federation
Gateway )
6
- 7. クラウド STS / Federation Provider
ws-federation / OAuth 2.0 / OpenID 等の
Federation Protocol対応
各種 Identity Provider から発行されたトークン
を変換
Token要求 Token要求
システム
エンティティ Security Security
Token Token 各種オンライン IdP
ユーザ
Webサーバ等 STS
ACS v2 オンプレミス IdP
( AD FS 2.0 )
カスタム IdP
( OpenID )
- 8. サポートされているプロトコル
• OAuth WRAP 2.0
• WS-Federation
• WS-Trust
• OAuth 2.0 (Draft 13)
• OpenID 2.0
トークンフォーマット
• Simple Web Token(SWT)
• SAML 1.1/2.0
既成の Identity Provider との連携
• Windows Live ID/ Google/ Facebool/ Yahoo!(.com)/
OpenID
• Active Directory Federation Service 2.0
- 9. Windows Azure AppFabric ACS 本体
Identity クレーム変換 Relying
Protocol Protocol
Provider エンジン Party
AD FS 2.0 WS-
SAML/SWT
Federation
WS-Fed対応STS
クレームルール
Google
WS-
Yahoo! OAuth 2.0 SAML/SWT Federation WEBサイト
Facebook
OpenID OpenID 2.0 SAML/SWT
Windows Live ID Live ID SAML/SWT
SOAP Web
WS-Trustアプリ WS-Trust SAML/SWT WS-Trust
サービス
OAuth/ OAuth/ REST Web
SWT対応アプリ WRAP 2.0
SWT
WRAP 2.0 サービス
- 10. Windows Identity Foundation
• ws-federation / ws-trust 対応の token ハンド
リング ライブラリ
• .NET Framework 4.0
• 各種 Extension ( 現状 Community Technology
Preview )
Extension for SAML 2.0 protocols
Extension for OAuth
Extension for U-Prove
- 11. ASP.NET
Web アプリケーション
各種 STS
AD FS 2.0
ACS v2 ASP.NET クレーム取出し
クレーム評価
Windows Identity
Foundation
各種処理
.NET Framework 4
ブラウザ
- 13. as an OAuth Consumer
as an OAuth Authorization Server
- 14. OAuth OAuth
.NET App ACS as
Browser AuthZ Resource
with WIF Consumer
Server Server
Access
Redirect
Redirect
AuthN
Consent
Return AuthZ Code
Request Access Token
Return Access Token
Return Access Token
POST Access Token
Request Resource with Access Token
Return Resource
Return Resource
ws-federation OAuth
- 15. WIF アプリケーション
ACS の Identity Provider として
Facebook を設定
ACS は Facebook からアクセストークン
を取得し、SAML Assertion として WIF
アプリケーションへ渡す
(ws-federation)
WIF アプリケーションは SAML トークン
の中のアクセストークンを使い graph api
で Facebook を操作
- 16. .NET App ACS as OAuth
Browser with WIF AuthZ Resource
Extension Server Server
Access
Redirect
実際は ACS に設定
AuthN された IdP で実施
Consent
Return AuthZ Code
Request Access Token
Return Access Token
Request Resource with Access Token
Return Resource
Return Resource
OAuth
- 17. WIF Extension for OAuth アプリケー
ション
.NET で OAuth Protected Resource ア
プリケーション
ACS を OAuth AuthZ サーバとして設定
- 18. ACS から見た Identity Provider
• Google / Yahoo! … OpenID
• AD FS2.0 … ws-federation
• Facebook … OAuth
「認証の外部化(Externalize AuthN)」として同列で
紹介されていることがほとんど
OAuth 対応のサービスが認証する目的
• プロテクテッド・リソースへのアクセスさせるため
• 認証結果や Claim をRP/SPに渡すためではない
「合鍵モデル」であることの理解が必要
• 詳しくは @_nat さん「非技術者のためのOAuth認証(?)とOpenID
の違い入門」http://www.sakimura.org/2011/05/1087/
• 安易に permission を広げない。user_about_me など
- 19. 合鍵モデル
• ACS が Facebook から取得したアクセストーク
ンを全く別の Windows Form アプリケーション
で使ってみる
- 20. OpenID Connect もあるけど。。
ws-trust との組み合わせも
• AD FS2.0 で認証、発行された SAML2.0 bearer
トークンをOAuth の AuthZ サーバへ渡してアクセ
ス・トークンを受け取る
Recipient : AuthZ Server の Endpoint
grant_type :
http://oauth.net/grant_type/assertion/saml/2.0/be
arer
• AD FS2.0 + WIF の例 by @vibronet
• SFDC + PingFederate の例 by @metadaddy
- 21. STS AuthZ
Server
+Client ID
+Client Secret
RSTR
RST SAML Token Access Token
Resource
Server
Consumer Resource
User / Device
- 23. AppFabricACS と Windows Identity
Foundation を使うと割と簡単に既存の
サービスと連携するサービスを開発するこ
とが出来る
ただし、ACS から見て Identity Provider
として OAuth / OpenID / ws-federation
の区別がないので、よく理解して使うこと
が大切