bof-09 silverlight and wif /teched japan 2010

43

Upload: naohiro-fujie

Post on 28-May-2015

2.816 views

Category:

Technology


0 download

DESCRIPTION

TechEd Japan 2010 の BoF-09 で使用したスライドです。 Sliverlight+WIF+ADFS2.0で外部認証環境を構築します。

TRANSCRIPT

Page 1: BoF-09 Silverlight and WIF /TechEd Japan 2010
Page 2: BoF-09 Silverlight and WIF /TechEd Japan 2010

伊藤忠テクノソリューションズ株式会社 情報通信技術第 4 部    山之内 安甲子 西日本システム技術第 1 部 富士榮 尚寛

Silverlight と WIF によるアプリケーション連携

セッション ID : BoF-09

Page 3: BoF-09 Silverlight and WIF /TechEd Japan 2010

3

セッションの目的とゴール

セッションの目的アイデンティティ連携の利用用途(一部)を理解していただくAD FSv2 、 WIF 、 Silverlight を利用したアプリケーション/アイデンティティ連携のデモ

AD FSv2 : Active Directory Federation Services 2.0WIF : Windows Identity Foundation

セッションのゴールアイデンティティ連携の用途をイメージするAD FSv2 によるアイデンティティ連携の実装を理解するSilverlight + WIF による実装を理解する

Page 4: BoF-09 Silverlight and WIF /TechEd Japan 2010

4

アジェンダ基本用語アイデンティティ連携とは

アイデンティティ連携は何をもたらすのかシングルサインオンアクセス権限管理

Silverlight における認証Silverlight からの WIF 呼び出しAD FSv2 の設定

デモアイデンティティ連携によるアクセス権限管理

まとめ

Page 5: BoF-09 Silverlight and WIF /TechEd Japan 2010

5

基本用語本スライド内では下記の用語が出てきますアイデンティティ( Identity )IdP ( Identity Provider)STS ( Security Token Service )クレーム( Claim )トークン( Token )AD FSv2 ( Active Directory Federation Services 2.0 )WIF ( Windows Identity Foundation )RP ( Relying Party )

Page 6: BoF-09 Silverlight and WIF /TechEd Japan 2010

6

基本用語関連用語の解説アイデンティティ( Identity )

デジタル・アイデンティティサブジェクト(ユーザ等)そのものを表すもの

特徴:身長、髪型性質:気が短い属性:所属、性別、名前

識別子( Identifier )ではない

Page 7: BoF-09 Silverlight and WIF /TechEd Japan 2010

7

基本用語関連用語の解説IdP 、 STS 、トークン、クレーム

IdP ( Identity Provider )アイデンティティ情報を提供するサービス通常認証に基づき情報を提供する(トークンの発行)

STS ( Security Token Service )トークンを発行するサービス

トークンアイデンティティ情報そのもの(認証結果、アイデンティティ情報の集合体)クレームをカプセル化しデジタル署名したもの

クレームアイデンティティ情報(属性情報)

Page 8: BoF-09 Silverlight and WIF /TechEd Japan 2010

8

基本用語関連用語の解説AD FSv2

マイクロソフトの IdP の実装Windows Server 2008 / R2 の更新モジュールAD FSv1.1 までは STS が提供されていなかった

WIFマイクロソフトによって提供される RP 実装用のライブラリRP ( Relying Party )

アイデンティティ情報を利用するアプリケーション等トークンの解釈(クレームの取出し)を行う

Page 9: BoF-09 Silverlight and WIF /TechEd Japan 2010

9

アイデンティティ連携とはアイデンティティ連携は何をもたらすのかアイデンティティ連携とは

アイデンティティフェデレーションと同義元々はアイデンティティを提供する側( IdP )と利用する側( RP )の間でアイデンティティ情報の紐付けをすることアイデンティティ連携がもたらすモノ

シングルサインオンアプリケーションからの認証機能の切り出し

アクセス権限管理認証元( Realm )による付与権限の区分け

Page 10: BoF-09 Silverlight and WIF /TechEd Japan 2010

10

アイデンティティ連携とはシングル・サインオン( SSO )認証機能の切り出し

利用者

IdP (認証システム)

3. 認証

RP (アプリケーション)

1.RP へアクセス

2.IdP へリダイレクト

4. 認証結果をPOST

認証

同じ IdP で認証される RP群ならセッション維持中は認証は不要= SSO の実現

Page 11: BoF-09 Silverlight and WIF /TechEd Japan 2010

11

アイデンティティ連携とはアクセス権限管理認証元による付与権限の区分け

利用者

RP (アプリケーション)

IdP (認証システム)

IdP Bトークン変換

IdP A認証

3. 認証

1.RP へアクセス

2.IdP B→A へリダイレクト

4.IdP B で変換された認証結果を POST

認証トークンの変換を行うことにより認証元により

RP へ渡す権限情報を変える

Page 12: BoF-09 Silverlight and WIF /TechEd Japan 2010

12

アイデンティティ連携とはアクセス権限管理トークン変換による権限管理

IdP A で認証された場合

IdP B で認証された場合

RPIdP BIdP A属性名:役割

Domain UsersAD グループ名

属性名:役割Entry として取

属性名:役割Domain Users

→ Entry へ

RPIdP B属性名:役割

Staff として取得

属性名:役割Domain UsersAD グループ名

認証元 IdP によって役割を変える(もしくは固定する)ことで RP にわたる属性を制御し権限を管理

Page 13: BoF-09 Silverlight and WIF /TechEd Japan 2010

13

Silverlight における認証Silverlight からの WIF 呼び出しホストしている ASP.NET の認証状態を利用

ASP.NET の認証は WIF で外部へ切り離しクライアントにダウンロードされて動くので動作可能なライブラリの種類が限定的

Silverlight から直接 WIF を参照できないSilverlight 対応の WCF サービスを経由してWIF を呼び出す

Identity Developer Training Kit に含まれる SL.IdentityModel ライブラリを利用ASP.NET 側は SL.IdentityModel.Server を参照

Page 14: BoF-09 Silverlight and WIF /TechEd Japan 2010

14

Silverlight における認証Silverlight からの WIF 呼び出しソリューション構成

SL.InBrowser.Web ( ASP.NET )FedUtil.exe で外部 STS ( AD FS )を参照SL.IdentityModel.Server をプロジェクト参照Auth.svc ( Silverlight 対応 WCF サービス)がSL.Identity.Model.Server を使用

SL.InBrowser.Client ( Silverlight アプリ)SL.IdentityModel をプロジェクト参照

SL.IdentityModelWIF をラップしたライブラリ( Proxy )

SL.IdentityModel.ServerWIF をラップしたライブラリ(サーバ)

Page 15: BoF-09 Silverlight and WIF /TechEd Japan 2010

15

Silverlight における認証Silverlight からの WIF 呼び出し各モジュール間の関連

SL.InBrowser.Client SL.InBrowser.WebSL.IdentityModel(WCFサービスProxy / Silverlight

APL)

Auth.svc(WCFサービス)

SL.IdentityModel.Server(クラスライブラリ)

IdP( STS)

Microsoft.IdentityModel(WIF)

Silverlight アプリケーション

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

Page 16: BoF-09 Silverlight and WIF /TechEd Japan 2010

16

Silverlight における認証Silverlight からの WIF 呼び出し

SL クライアントからの呼び出し設定App.xaml

ネームスペース設定サービス用オブジェクト設定( ClaimsIdentitySessionManager )

Main.xaml認証が完了したらユーザ情報(クレーム)を表示するメソッドの実装

GetClaimsIdentityComplete イベントハンドラの設定取得したクレームを表示するメソッド

Page 17: BoF-09 Silverlight and WIF /TechEd Japan 2010

17

App.xaml への記述

■Application タグへの属性追加xmlns:id="clr-namespace:SL.IdentityModel.Services;assembly=SL.IdentityModel“

■ClaimSessionIdentitySessionManager オブジェクト設定<Application.ApplicationLifetimeObjects> <id:ClaimsIdentitySessionManager> <id:ClaimsIdentitySessionManager.IdentityProvider> <id:WSFederationSecurityTokenService/> </id:ClaimsIdentitySessionManager.IdentityProvider> </id:ClaimsIdentitySessionManager></Application.ApplicationLifetimeObjects>

Page 18: BoF-09 Silverlight and WIF /TechEd Japan 2010

18

Main.xaml.cs への記述

■SL.IdentityModel への参照using SL.IdentityModel.Claims;using SL.IdentityModel.Services;

■ イベントハンドラの設定ClaimsIdentitySessionManager.Current.GetClaimsIdentityComplete += new EventHandler<ClaimsIdentityEventArgs>(this.Current_GetClaimsIdentityComplete);

■ クレームの表示( name 属性)string userName = ClaimsIdentitySessionManager.Current.User.Identity.Name;this.userNameLabel.Content = string.Format("Hi {0}!", userName);

Page 19: BoF-09 Silverlight and WIF /TechEd Japan 2010

19

Silverlight における認証Silverlight からの WIF 呼び出し

SL をホストする ASP.NET Web ページ側設定STS 参照の設定

Fedutil.exe の実行(管理者として VS 起動が必要)STS として AD FSv2 を指定Web.config の自動設定

Silverlight 対応 WCF サービスの設定Auth.svc の作成Auth.svc.cs は削除Auth.svc の中身は全面書き換え( SL.IdentityModel.Server の呼び出し)こちらは web.config に一部記述が必要

Page 20: BoF-09 Silverlight and WIF /TechEd Japan 2010

20

Web.config への記述

■system.webserver セクション<validation validateIntegratedModeConfiguration="false" />

■configuration セクション<location path="auth.svc"> <system.web> <authorization> <allow users="*"/> </authorization> </system.web></location>

Page 21: BoF-09 Silverlight and WIF /TechEd Japan 2010

21

Auth.svc への記述

■既存をすべてクリアして以下を記述<%@ ServiceHost Language="C#" Debug="true" Factory="SL.IdentityModel.Server.AuthenticationServiceServiceHostFactory" Service="SL.IdentityModel.Server.SL.IdentityModel.Server" %>

※ちなみに、 SL.IdentityModel 内で AuthenticationService.svc という名前でモジュール名がハードコーディングされているので、 auth.svc という名称に変更した場合は、 ClaimIdentitySessionManager.cs 内のモジュール名を変更する必要がある。

Page 22: BoF-09 Silverlight and WIF /TechEd Japan 2010

22

Silverlight における認証AD FSv2 の設定/ IdP への RP の登録

RP からの呼び出しに対応するためにあらかじめRP を登録しておく

RP の登録(証明書利用者信頼)FederationMetadata.xml を利用

識別子や使用するプロトコルの設定クレームマッピングルールの設定

この RP からの呼び出しの場合、認証されたユーザのどの属性(クレーム)をどのような形で渡すのか?の設定

Page 23: BoF-09 Silverlight and WIF /TechEd Japan 2010

23

Silverlight における認証AD FSv2 の設定/外部 IdP の登録

外部のシステムによる認証結果を受け付けるためにフェデレーション先の IdP の登録を行う※IdP が複数存在する場合

IdP の登録(要求プロバイダー信頼)プロトコルの指定( AD FS 同士の場合は WS-Federation を利用)トークン署名証明書のインポートクレームマッピングルールの設定

この IdP から渡されるトークンの中のクレームをどのように処理するかの設定

外部 IdP 側には本 IdP を RP として登録外部 IdP → 本 IdP ( RP ) → RP というチェーン

Page 24: BoF-09 Silverlight and WIF /TechEd Japan 2010

コールセンタ代行業者のオペレータが通販事業者のアプリケーションを利用する際、アイデンティティ連携によりアクセス権限管理を行います

アイデンティティ連携によるアクセス権限管理

DEMO

Page 25: BoF-09 Silverlight and WIF /TechEd Japan 2010

25

想定ケース登場人物通販事業者 :  A 社

TV ショッピング業界大手深夜の健康器具販売がブームに乗り急成長社長のパフォーマンスがヒットの決め手?

コールセンタ代行業者 :  B 社地方自治体のコールセンタ誘致の波に乗り山陰地方に巨大なコールセンタを設立自治体側の思惑もありある程度の雇用は確保したが、オペレータ教育が悩みの種

Page 26: BoF-09 Silverlight and WIF /TechEd Japan 2010

26

想定ケースA 社が直面している状況コールセンタ席数不足による機会損失

A 社は急成長のため、現在のコールセンタ席数ではすべての注文コールに対応できなくなりつつあり、機会損失が発生している

コールセンタ業務のアウトソーシングしかし、自社でセンタを作るには時間・コストともに余裕がなく、 B 社へコールセンタ業務を委託することに決定した

Page 27: BoF-09 Silverlight and WIF /TechEd Japan 2010

27

想定ケースアウトソーシングに関する課題A 社の悩み受注システムへの登録業務なのでオペレータのID は共有ではなく個人別にしたいと思っているしかし、 A 社側でオペレータ個人の情報の管理をしたくない重要なシステムなのでオペレータのアクセス権限制御は A 社側で行いたい

B 社の悩みオペレータの IT リテラシーにばらつきがあるが教育コストは掛けたくない

Page 28: BoF-09 Silverlight and WIF /TechEd Japan 2010

28

チャレンジ課題と解決策委託先アイデンティティ管理委託先での個人 ID 管理の実施委託元でのアクセス制御の実施

使いやすいアプリケーションブラウザ特有のオペレーションからの解放

AD FSv2 を使ったアイデンティティ連携(フェデレーション)環境の構築

Silverlight / WIF による RIA によるアプリケーション構築

Page 29: BoF-09 Silverlight and WIF /TechEd Japan 2010

29

デモ環境アイデンティティ連携によるアクセス権限管理

注文

オペレータ

コールセンタ代行業者 B 社

通販業者 A 社

受注管理システム( SP )

発送担当

注文登録

注文参照発送処理

管理者

管理

IdP B IdP A

Page 30: BoF-09 Silverlight and WIF /TechEd Japan 2010

30

デモ環境アイデンティティ連携によるアクセス権限管理IdP

各 IdP は AD FSv2 + AD DS で構築IdP B で認証されたユーザの役割属性を IdP Aで文字列 Operators に変換

RPSliverlight + WIF で構築ユーザの役割属性によってアクセス権限を変更

Operators : 注文登録処理Staff : 注文参照処理、発送処理SPAdmins : 管理系処理

Page 31: BoF-09 Silverlight and WIF /TechEd Japan 2010

31

デモ環境IdP の設定内容コールセンタ代行業者の IdP ( IdP B )

AD DSユーザの所属グループ: Domain Users

AD FSv2証明書利用者信頼( RP ) : 通販事業者の IdP要求規則

LDAP 属性を要求として送信AD DS の displayName → 名前

グループメンバシップを要求として送信Domain Users を「 Operators」として役割(クレーム)へ

Page 32: BoF-09 Silverlight and WIF /TechEd Japan 2010

32

デモ環境IdP の設定内容通販事業者の IdP ( IdP A )

AD DSユーザの所属グループ

発送担当 : Domain Users管理者 : Domain Admins

AD FSv2証明書利用者信頼( RP ) : 受注管理システム

Page 33: BoF-09 Silverlight and WIF /TechEd Japan 2010

33

デモ環境IdP の設定内容

AD FSv2要求規則( IdP B で認証されたユーザ用)入力方向の要求をパススルー

名前、役割要求規則( IdP A で認証されたユーザ用)

LDAP 属性を要求として送信AD DS の displayName → 名前

グループメンバシップを要求として送信Domain Users を「 Staff」として役割へDomain Admins を「 SPAdmins」として役割へ

Page 34: BoF-09 Silverlight and WIF /TechEd Japan 2010

34

デモ環境IdP の設定内容

要求プロバイダー信頼コールセンタ代行業者の IdP ( IdP B )要求規則入力方向の要求をパス スルー

名前役割(要求値: Operators のみ)

Page 35: BoF-09 Silverlight and WIF /TechEd Japan 2010

35

アクセスフロー通販業者ユーザ以下のフローでアプリケーションへログイン

トークンの発行

ブラウザ IdP A アプリケーション

認証サービス

アプリケーションへアクセス

IdP A へリダイレクト( web.config 設定)

ユーザ認証

トークンの発行

変換されたトークンを POST

Page 36: BoF-09 Silverlight and WIF /TechEd Japan 2010

36

アクセスフローコールセンターユーザ以下のフローでアプリケーションへログイン

認証レルム の選択

トークンの変換

ブラウザ IdP B IdP A アプリケーション

認証サービス

認証サービス

のトークン発行

アプリケーションへアクセス

IdP A へリダイレクト( web.config 設定)

認証レルムの選択

IdP B へリダイレクトユーザ認証

トークンの発行

トークンを POST

変換されたトークンの発行

変換されたトークンを POST

Page 37: BoF-09 Silverlight and WIF /TechEd Japan 2010

37

環境構築方法 (1)必要な環境

IIS ServerASP.NETIIS 管理コンソールIIS メタベースおよび IIS 6 構成との互換性静的コンテンツ

Windows7Visual Studio 2010Silverlight4 tools for Visual Studio 2010Windows Identity FoundationWindows Identity Foundation SDKIdentity Training Kit June 2010

Page 38: BoF-09 Silverlight and WIF /TechEd Japan 2010

38

環境構築方法 (2)SilverlightAndIdentity セットアップ注意点

Silverlight4 tools for Visual Studio 2010英語版かつバージョン 10.0.30319.155以降が必要日本語版を使う場合C:\IdentityTrainingKit2010\Assets\DependencyChecker\scripts\dependencies\check\CheckSilverlight4ToolsForVS.ps1 を編集

SearchUninstall –SearchFor の中の‘Microsoft Silverlight 4 Tools …’ を‘Microsoft Silverlight Tools …’ に変更する

C:\IdentityTrainingKit2010\Labs\SilverlightAndIdentity\Source\Setup\Scripts\SetupCertificates.cmd を編集

“Cert Hash(sha1)”→“Cert ハッシュ (sha1)” に

Page 39: BoF-09 Silverlight and WIF /TechEd Japan 2010

39

まとめ

アイデンティティ連携企業間でのアプリケーション連携やクラウド・サービスの利用で威力を発揮

Silverlight から WIF を使う際は一工夫必要

とりあえず Identity Developer Training Kit を試すべし

次回は Out-of-Browser でも・・・WS-Federation ではなく、 WS-Trust を利用

Page 40: BoF-09 Silverlight and WIF /TechEd Japan 2010

40

リファレンスシステム管理者のためのフェデレーション講座http://www.microsoft.com/japan/powerpro/TF/column/nf_01_1.mspx

Windows で構築する、クラウド・サービスと社内システムの SSO環境http://www.atmarkit.co.jp/fwin2k/operation/adsf2sso01/adsf2sso01_01.html

A Guide to Claims-based Identity and Access Controlhttp://msdn.microsoft.com/en-us/library/ff423674.aspx

IdM 実験室(スピーカー blog )http://idmlab.eidentity.jp/

Page 42: BoF-09 Silverlight and WIF /TechEd Japan 2010

42

リファレンス

Security for Azure, WCF, Windows Phone 7, and SilverlightPart1http://blogs.msdn.com/b/brunoterkaly/archive/2010/08/14/security-for-azure-wcf-windows-phone-7-and-silverlight-part-1-of-many.aspxPart2http://blogs.msdn.com/b/brunoterkaly/archive/2010/08/15/security-for-azure-wcf-windows-phone-7-and-silverlight-part-2-of-many-single-sign-on-claims-driven-experience-and-service-authorization-for-in-browser-silverlight-applications.aspx

MSDN フォーラム(英語版) Claims based access platform (CBA)code-named Geneva http://social.msdn.microsoft.com/Forums/en-US/Geneva/threads/

Page 43: BoF-09 Silverlight and WIF /TechEd Japan 2010

ご清聴ありがとうございました。

BoF-09アンケートにご協力ください。