openid technight 20110909_fujie

23
@phr_eidentity MS MVP for Identity Lifecycle Manager http://idmlab.eidentity.jp

Upload: naohiro-fujie

Post on 28-May-2015

2.815 views

Category:

Technology


3 download

DESCRIPTION

OpenID Technight vol.8 session slide titled 'Microsoft's RESTful Identity'.

TRANSCRIPT

Page 1: Openid technight 20110909_fujie

@phr_eidentity MS MVP for Identity Lifecycle Manager

http://idmlab.eidentity.jp

Page 2: Openid technight 20110909_fujie

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 統合

まとめ

Page 3: Openid technight 20110909_fujie
Page 4: Openid technight 20110909_fujie
Page 5: Openid technight 20110909_fujie

Identity Provider Relying Party Library

Page 6: Openid technight 20110909_fujie

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

Page 7: Openid technight 20110909_fujie

クラウド STS / Federation Provider ws-federation / OAuth 2.0 / OpenID 等の

Federation Protocol対応 各種 Identity Provider から発行されたトークン

を変換

システム エンティティ

ユーザ Webサーバ等

各種オンライン IdP

オンプレミス IdP ( AD FS 2.0 )

カスタム IdP ( OpenID )

STS ACS v2

Token要求

Security Token

Token要求

Security Token

Page 8: Openid technight 20110909_fujie

サポートされているプロトコル • 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

Page 9: Openid technight 20110909_fujie

Windows Azure AppFabric ACS 本体 クレーム変換 エンジン

OAuth 2.0

WS-Federation

Live ID

クレームルール

Protocol Protocol

WS-Trust

AD FS 2.0

Google

Yahoo!

Facebook

OpenID

WS-Trustアプリ

OpenID 2.0

WS-Fed対応STS

Windows Live ID

WS-Trust

WS-Federation

Identity Provider

Relying Party

SWT対応アプリ

WEBサイト

SOAP Web サービス

REST Web サービス

OAuth/ WRAP 2.0

SAML/SWT

SWT

SAML/SWT

OAuth/ WRAP 2.0

SAML/SWT

SAML/SWT

SAML/SWT

Page 10: Openid technight 20110909_fujie

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

Page 11: Openid technight 20110909_fujie

ASP.NET

Windows Identity Foundation

.NET Framework 4

クレーム取出し

クレーム評価

各種処理

各種 STS AD FS 2.0

ACS v2

ブラウザ

ASP.NET Web アプリケーション

Page 12: Openid technight 20110909_fujie
Page 13: Openid technight 20110909_fujie

as an OAuth Consumer as an OAuth Authorization Server

Page 14: Openid technight 20110909_fujie

ACS as Consumer

Browser .NET App with WIF

OAuth AuthZ Server

OAuth Resource Server

Access

Redirect

Redirect

AuthN

Consent

Request Access Token

Return Access Token

Return Access Token POST Access Token

Request Resource with Access Token

Return Resource

ws-federation OAuth Return Resource

Return AuthZ Code

Page 15: Openid technight 20110909_fujie

WIF アプリケーション ACS の Identity Provider として

Facebook を設定 ACS は Facebook からアクセストークン

を取得し、SAML Assertion として WIF アプリケーションへ渡す

(ws-federation) WIF アプリケーションは SAML トークン

の中のアクセストークンを使い graph api で Facebook を操作

Page 16: Openid technight 20110909_fujie

ACS as AuthZ Server

.NET App with WIF Extension

Browser OAuth

Resource Server

Access

Redirect

Consent

Request Access Token

Return Access Token

Request Resource with Access Token

Return Resource

Return Resource

OAuth

Return AuthZ Code

AuthN

実際は ACS に設定された IdP で実施

Page 17: Openid technight 20110909_fujie

WIF Extension for OAuth アプリケーション

.NET で OAuth Protected Resource アプリケーション

ACS を OAuth AuthZ サーバとして設定

Page 18: Openid technight 20110909_fujie

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 など

Page 19: Openid technight 20110909_fujie

合鍵モデル • ACS が Facebook から取得したアクセストーク

ンを全く別の Windows Form アプリケーションで使ってみる

Page 20: Openid technight 20110909_fujie

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/bearer

• AD FS2.0 + WIF の例 by @vibronet • SFDC + PingFederate の例 by @metadaddy

Page 21: Openid technight 20110909_fujie

STS

Consumer

AuthZ Server

Resource Server

RST RSTR SAML Token

+Client ID +Client Secret

Access Token

Resource

User / Device

Page 22: Openid technight 20110909_fujie
Page 23: Openid technight 20110909_fujie

AppFabric ACS と Windows Identity Foundation を使うと割と簡単に既存のサービスと連携するサービスを開発することが出来る

ただし、ACS から見て Identity Provider として OAuth / OpenID / ws-federation の区別がないので、よく理解して使うことが大切