1/5 adfs 2.0 を使用してwindows azure との sso を実現しよう v1.1

48
1 SEMINAR COLUMNS INTERVIEW LIGHTNING TALK

Upload: junichi-anno

Post on 07-Jul-2015

4.173 views

Category:

Technology


17 download

DESCRIPTION

2010/11/2 に開催した TechFieldersセミナーで使用した資料 1/5 です。 [構築作業 前篇] インフラ編 1.AD FS 2.0 の基礎知識 2.これから作成する環境について 3.AD FS 2.0 のセットアップ -WinSv 2008 R2 のセットアップ -Active Directory のセットアップ -SQL Server のセットアップ -IIS のインストールと構成 -NLB のインストールと設定

TRANSCRIPT

Page 1: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

1

SEMINAR

COLUMNS

INTERVIEW

LIGHTNING TALK

Page 2: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

2

Cloud TechCenterインフラ担当者のためのクラウド情報サイト

http://technet.microsoft.com/ja-jp/cloud/default.aspx

Page 3: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

3

「クラウドの素朴な疑問」にお答えします

bing で検索!「クラウドの素朴な疑問」

Page 4: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

4

本日の予定

• 13:30 - 17:00 「 ADFS 2.0 を使用して  Windows Azure との SSO を実現しよう」安納

• 17:00 - 17:30「クラウド時代の「 ID管理」と「認証セキュリティ」」 野村総合研究所 基盤ソリューション事業本部 勝原氏

• 17:30 - 18:00 ライトニングトーク

• 18:00 - 19:00 懇親会

Page 5: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

5

AD FS 2.0 AD FS 2.0 を使用してを使用してWindows Azure Windows Azure との との SSO SSO を実現しようを実現しよう

マイクロソフト株式会社エバンジェリスト

安納 順一(あんのう じゅんいち)http://blogs.technet.com/junichia/

twitter @junichia

第 第 1.1 1.1 版版2010.11.052010.11.05

Page 6: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

6

本日のテーマと内容

AD FS 2.0 を使用して、 Windows Azure 上に展開した アプリケーショ ン への シングルサインオン を構成します。

1.AD FS 2.0 のインストールおよび環境設定2.Windows Azure の環境設定3.クレームを認識するアプリケーションの作成4.アプリケーションを Windows Azure 上に展開

途中、操作をお手伝いいただくこともあります。

3 .5時間~4時間を要しますが、根性でのりきりましょう!

何かと難解な AD FS 2.0 の概念と操作方法を、実際の構築手順を体験しながら理解しましょう

Page 7: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

7

Agenda[ 構築作業 前篇 ] インフラ編1.AD FS 2.0 の基礎知識2.これから作成する環境について3.AD FS 2.0 のセットアップ

a. WinSv 2008 R2 のセットアップb. Active Directory のセットアップc. SQL Server のセットアップd. IIS のインストールと構成e. NLB のインストールと設定f. AD FS 2.0 用証明書の準備g. IIS の SSL を有効化h. AD FS 2.0 のインストールi. AD FS 2.0 初期構成の準備j. AD FS 2.0 の初期構成

4.AD FS 2.0 管理コンソールについて

[ 構築作業 中編 ] アプリケーション編5.クレーム対応アプリとは ?6.クレーム対応アプリの作成と展開

~ オンプレミス編a. 展開先 IIS の準備b. 開発環境の準備c. アプリケーションの開発d. IIS にアプリを展開

5.クレーム対応アプリの作成と展開~クラウド編

a. Windows Azure の準備b. アプリケーションの開発c. Windows Azure にアプリケーションを

展開[ 構築作業 後編 ] AD FS Deep Dive8.クレームパイプラインとクレームルール9.カスタムルールの設定10.AD FS 2.0 の監査

Page 8: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

8

AD FS 2.0 AD FS 2.0 の基礎知識の基礎知識AD FS 2.0 AD FS 2.0 の役割と目的について復習しておきましょうの役割と目的について復習しておきましょう

Page 9: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

9

クラウド

ID を使用する環境

企業間

アプリケーション在るところ「 ID」在り

組織間

Page 10: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

10

予測される ID 管理の問題点

• 見えない利用者の ID 管理 /認証 /承認• 異なる認証方式の相互運用• ディレクトリサービスの設置が困難

クレームベース セキュリティフェデレーション セキュリティ モデル

Page 11: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

11

健保番号/免許証番号/住民票 入入

国国

日本国政府

クレームベースセキュリティの例~入国審査

出出国国

発行

パスポート•発行国•氏名•有効期限•旅券番号•写真•出国印

米国政府本人•顔•指紋

入国申請書•滞在期間•滞在先

パスポート・・

空港

信頼

ビザ•滞在可能期間

信頼

Page 12: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

12

入入国国

日本国政府

クレームベース セキュリティ モデル

出出国国

発行

パスポート•発行国•氏名•有効期限•旅券番号•写真•出国印

米国政府本人•顔•指紋

入国申請書•滞在期間•滞在先

パスポート・・

健保番号/免許証番号/住民票

信頼

ビザ•滞在期間

クレームプロバイダー

クレームクレームクレームクレームクレームクレーム

資格情報

セキュリティトークン

オーソリティ

リライングパーティ

クレームクレーム

クレーム

クレームクレーム

クレーム署名

サブジェクト

空港

信頼

リソー

Page 13: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

13

クレーム(主張)とは• アプリケーションに渡すユーザー自身の属性• アクセス承認に使用される

Page 14: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

14

セキュリティ トークン

• パッケージ化されたクレーム• 発行者の署名によって信頼性を担保• STS ( Security Token Service ) が生成する

セキュリティトークン

Page 15: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

15

認証機関

UsersUsers

サービスプロバイダー

クレームベース セキュリティを使用した ID 連携 (フェデレーション)と SSO の実現

• 利用者は事前に 「認証機関」で認証を済ませている• 「サービスプロバイダー」側のアプリケーションは 「認証機関」が発行したトークンをベースにアクセス権を決定する(再認証は行わない)

②本人証明 ③Token提示SecuritySecurityTokenToken

UsersUsers

④ID と ID を対応付ける

利用者

サービスプロバイダー は 認証機関を信頼している

④ トークン解析 /アクセス権決

④ トークン解析 /アクセス権決

Page 16: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

16

IdP/CP RP/SP

ID連携(フェデレーション)の基本構成

利用者

RP/SP は CP/IdP を信頼している

セキュリティトークンサービス

セキュリティトークンサービス

• 認証機関( IdP/CP)とサービスプロバイダー( RP/SP )は トークンを処理するためのサービスを持っている(セキュリティトークンサービス)

• トークンは「セキュリティ トークン サービス( STS)」によって発行される• トークンに格納するクレームは「クレームストア」に格納されている

クレームストア

SecuritySecurityTokenToken

IdP: Identity ProviderCP: Claim Provider

RP: Relying PartySP: Service Provider

Page 17: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

17

SSO を実現するための構成要素

認証サーバー•ユーザーを認証する•AD FS 2.0 サービスを認証する

STS( セキュリティトークンサービス )•AD認証されたユーザーに対してセキュリティトークンを発行する•アプリケーションにセキュリティトークンを渡す

クレームストア•セキュリティトークンに組み込むユーザー属性が格納されている

AD DS

AD FS 2.0

AD DS/ldapSQL Server

WS-Federation/WS-Trust に対応したアプリケーション※ WIF は(現時点では) SAML 2.0 に対応していない

WIF

Page 18: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

18

基本的な構成

IdP/CP

AD DS

クレームストア

AD FS 2.0

RP/SP

Application

信頼

AD FS 2.0

IdP: Identity ProviderCP: Claims ProviderRP : Relying PartySP : Service Provider

企業 A 企業 B

• それぞれの企業に STSを設置• STS 間でフェデレーション信頼を構築

②Token

発行 ③Token

発行①認証

WIF

AD DS

④アクセス

クレームストア

Page 19: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

19

基本的な構成~簡易版

IdP/CP

AD DS

クレームストア

RP/SP

Application

信頼

企業 A

• 同一企業内であれば STS は 1台で構築可能

②Token

発行

③アクセス

①認証

WIF

AD FS 2.0

1台のサーバーで構築

Page 20: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

20

RP/SP

…アプリケーションがクラウドだったら

IdP/CP

AD DS

クレームストア

AD FS 2.0

企業 A

• クラウドアプリでも考え方は変わらない

ApplicationApplication

②Token

発行

③アクセス①認証

WIF

1台のサーバーで構築

Page 21: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

21

AD FS 2.0 関連コンポーネントの配置と役割

intranet DMZ

AD FS

load balance

AD DS

認証

STS

構成 DB

構成 DB

AD FS PROXY

load balance

R-PROXY

STS : Security Token ServicesR-PROXY : Reverse Proxy

Internet

クレームストア

clusterAD DS orSQL Server orldap services

Page 22: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

22

これから作成する環境これから作成する環境

Page 23: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

23

システム構成図

AD DS

AD FS 2.0

SQL 2008 R2

Azure SDK

AD FS 2.0

DNS

Application

VS 2010

WIF SDK

Azure Tools

NLB

システムの特徴•AD FS 2台構成( NLB を使用)•構成 DB として SQL Server を使用

基本構成情報•ドメイン名 : tf.com•管理者 : administrator•管理者パスワード: P@ssw0rd

tf20101102-01 tf20101102-02 tf20101102-03 tf20101102-VS

IIS IIS

IIS

tfadfs

ApplicationApplication

Page 24: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

24

手順概要

1. Windows Server 2008 R2 のインストールと構成2. Active Directory のインストールと構成3. SQL Server のインストール4. IIS のインストール5. Windows Azure サブスクライブ6. NLB のインストールと構成7. AD FS 2.0 展開の準備8. AD FS 2.0 のインストールと初期構成9. アプリケーションの開発10. Windows Azure 上にアプリケーションを展開11. クレームルールのカスタマイズ

済済

済済

解説 構

Page 25: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

25

AD FS 2.0 AD FS 2.0 のセットアップのセットアップa. WinSv 2008 R2 のセットアップb. Active Directory のセットアップc. SQL Server のセットアップd. IIS のインストールと構成

f. NLB のインストールと設定g. AD FS 2.0 用 証明書の準備h. IIS の SSL を有効化i. AD FS 2.0 のインストールj. AD FS 2.0 初期構成の準備

⑪ AD FS 2.0 の初期構成

Page 26: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

26

⑤NLB のインストールと設定AD FS 2.0 AD FS 2.0 のセットアップのセットアップ

Page 27: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

27

NLB の仕組み

NLB

NLBheartbeat

heartbeat

NLBクラスター

名前解決

名前解決

応答

host1

host2

NLB : Network Load Balance

• OS 標準機能として提供• 全てのポートをロードバランス対象にすることができる• マルチホームの場合、対象となるアダプターを選択可能• アダプターが持っている元のアドレスは保持される

NICNIC

NICNIC

NICNIC

NICNIC

Page 28: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

28

NLB 機能の追加[機能 ]-[ネットワーク負荷分散 ]※NLB を使用するすべてのホストで実施する

Page 29: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

29

NLBの設定( 1台目のホスト)①[管理ツール ] ー [ネットワーク負荷分散マネージャー ]

負荷分散クラスターに追加したいネットワークアダプターを選択

負荷分散クラスターに追加したいネットワークアダプターを選択

Page 30: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

30

NLBの設定( 1台目のホスト)②

共有するアドレスを追加

共有するアドレスを追加

Page 31: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

31

NLBの設定( 1台目のホスト)③

クライアントはこの情報を使用してアクセスす

クライアントはこの情報を使用してアクセスす

再起動しましょう

Page 32: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

32

NLBの設定( 2台目のホスト)

以降、 1台目と同じ

追加したいホストを指定

追加したいホストを指定

Page 33: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

33

DNS に NLBクラスターのホスト名を追加

tfadfs.tf.com 192.168.200.10

Page 34: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

34

完成形

Page 35: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

35

完成後のネットワーク構成

tf20101102-01 (192.168.100.1)

NLB

NLB

heartbeat

heartbeat

tfadfs.tf.co m

名前解決

名前解決

tf20101102-02 (192.168.100.2)

tfadfs.tf.com(192.168.200.10)

Page 36: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

36

⑥ AD FS 2.0 用 証明書の準備AD FS 2.0 のセットアップ

Page 37: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

37

AD FS 2.0 に必要な証明書

• サービス通信証明書( SSL に使用)• AD FS の通信を暗号化するために使用• 既定では IIS の SSL 用証明書が使われる• サブジェクトがフェデレーションサービス名と一致していること※サーバーファーム構成では注意が必要

• トークン署名証明書• AD FS が発行するトークンの署名• 公開メタデータの署名• RPから送信されるアーティファクト解決要求の署名• 初期構成時に SHA1を使用して自動生成される

• トークン暗号化解除証明書• AD FS が受け取ったトークンの暗号化を解除するために使用• IIS の SSL 証明書が既定の暗号化解除証明書として使用される

今回は自己署名証明書を使用します

Page 38: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

38

IIS を使用した自己署名証明書の作成

サブジェクト(主体)がホスト名サブジェクト(主体)がホスト名

Page 39: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

39

NLB 環境で ユーザーから見えるサーバーは

tf20101102-01 (192.168.100.1)

NLB

NLB

heartbeat

heartbeat

tfadfs.tf.co m

名前解決

名前解決

tf20101102-02 (192.168.100.2)

tfadfs.tf.com(192.168.200.10) こいつ

Page 40: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

40

自己署名証明書を作成するツール

.NET Framework SDK •makecert.exe ← サブジェクトを指定できる•pvk2pfx.exe

makecer t

.CER

.PVKpvk2pfx .PFX

Page 41: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

41

自己署名証明書の作成1. Visual Studio をインストールしたマシンにログオン2. [スタート ]-[すべてのプログラム ]-[Microsoft Visual Studio 2010]-[Visual Studio

Tools]-[Visual Studio コマンドプロンプト ] を起動3. 証明書( .cer )ファイルとプライベートキーファイル( .pvk)ファイルを作成

4. .pvk と .cer から .pfx ファイルを作成する

makecert -r -pe -n "CN=tfadfs.tf.com" -sky exchange “tfadfs.tf.com.cer" -sv “tfadfs.tf.com.pvk"

makecert -r -pe -n "CN=tfadfs.tf.com" -sky exchange “tfadfs.tf.com.cer" -sv “tfadfs.tf.com.pvk"

pvk2pfx -pvk “tfadfs.tf.com.pvk“ -spc “tfadfs.tf.com.cer“ -pfx “tfadfs.tf.com.pfx“ -pi <パスワード >

pvk2pfx -pvk “tfadfs.tf.com.pvk“ -spc “tfadfs.tf.com.cer“ -pfx “tfadfs.tf.com.pfx“ -pi <パスワード >

Page 42: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

42

⑧ IIS の SSL を有効化AD FS 2.0 のセットアップ

Page 43: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

43

NLBクラスタ用証明書はすべてのサーバーに

tfadfs.tf.com

tf20101102-02

t f adf s . t f . com.pfx tf20101102-01.tf.com.pfx

tf20101102-02.tf.com.pfx

tf20101102-01

NLB

NLBクラスターの証明書 サーバー証明書

サーバー証明書

今回は必要ない

今回は必要ない

Page 44: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

44

証明書( .pfx)をインポートする

.pfx ファイル.pfx ファイル

Page 45: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

45

[Default Web Site] の SSL を有効にする

Page 46: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

46

接続テストhttps://tfadfs.tf.com/

Page 47: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

47

自己署名証明書の取り込み

Page 48: 1/5 ADFS 2.0 を使用してWindows Azure との SSO を実現しよう v1.1

48