38
1 AD FS 2.0 のインストール AD FS 2.0 のセットアップ

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

Embed Size (px)

Citation preview

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

1

⑨ AD FS 2.0 のインストールAD FS 2.0 のセットアップ

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

2

AD FS 2.0 はすべてのサーバーにインストール

tf20101102-02

tf20101102-01

NLB

tfadfs.tf.comtfadfs.tf.comAdfsSetup.exe

AdfsSetup.exe

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

3

AD FS 2.0 のダウンロードActive Direc tory Federa t ion Servi ce s 2.0 RTW - 日本語

2008用

2008 R2 用

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

4

AD FS 2.0 のインストール①

• AdfsSetup.exe を実行

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

5

AD FS 2.0 のインストール ②

前提条件は自動的に満たしてくれる前提条件は自動的に満たしてくれる

再起動

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

6

⑩ AD FS 2.0 初期構成の準備AD FS 2.0 のセットアップ

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

7

AD FS 2.0 初期構成前の準備

1. サーバー構成を決めておく• スタンドアロン• サーバーファーム

2. 構成データベースを決めておく• Windows Internal Database• SQL Server

3. サービスアカウントを作成しておく

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

8

サーバーファーム と スタンドアロン

• スタンドアロン– AD FS サーバー 1台– 構成 DB は WID のみ

• サーバーファーム– AD FS サーバー 複数台を前提とした構成– ロードバランスが可能– 構成 DB は WID or SQL Server(クラスタ可能)

(ADFS+WID) 1* ADFS n * + SQL Server(ADFS+WID) n*

(ADFS+WID) 1*

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

9

AD FS 2.0 ~ サーバー ファームと構成 DB

1. スタンドアロン + WID

2. サーバー ファーム+ WID• 各サーバーが WID を持つ

• 5 分に 1 回の更新チェック (各サーバー→プライマリ )

• 機能制限が発生• SAML Token Replay Detection• SAML Artifact Resolution

3. サーバー ファーム+ SQL Server• f s conf ig . exe コマンドによる構成• WID からの移行は不可• SQL Server は 1 セット

• クラスター構成可能

WID: Windows Internal Database

可用性

プライマリ

セカンダリ セカンダリR/O R/O

R/WADFS

ADFS ADFS

ADFS ADFS ADFS

R/WSQL Server

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

10

構成データベースによる手順の違い使用する構成データベースによって構成手順が異なる•Windows Internal Databas e ( WID ) → ウィザード / fsconfig コマンド•SQL Server fsconfig → コマンド

一度構成した後で移行することはできないので注意しましょう!

WIDが使われるWIDが使われる

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

11

(参考 ) Token Replay Attack とは

• 取得済のセキュリティ トークンを再利用してアクセス権を得ようとするアタック– キオスク端末等でブラウザーを閉じないと危険– ブラウザーの [戻る ] でトークン取得ポイントに戻れてしまう

• WIF には Replay を検出する機能が実装されている• Replay 検出は規定でオフ• 有効にするには Detec tReplayedTokens 値を t rue

http://msdn.microsoft.com/en-us/library/ee517257.aspx

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

12

(参考 ) SAML Artifact Resolution とは

• SSO を実現する トークン受け渡し手順 の 1 つa. ブラウザーはトークンではなく、トークンの「 Artifact 」を

STS から受け取り RP にリダイレクトするb. RP は受け取った Artifact を IdP に提示して正当性を評価c. 評価 OK ならば、 RP は IdP から直接トークンを取得する

• ユーザーとサーバー間の通信帯域が細い場合に有用

Arti fac t ( アーティファクト ) セキュリティトークン (SAML Assertion) のリファレンス

1

23

STS サービス

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

13

AD FS 用サービスアカウントの作成• AD FS が使用するサービスアカウント• サーバーファーム(複数の AD FS サービス)で共有するためドメインユーザーアカウントとして作成する– スタンドアロンの場合には Network Service アカウントが使用される

• 管理者権限は(必ずしも)必要ない– 管理者権限( servicePrincipalName の書き込み権限)が無い場合 SPN の自動登録に失敗する(後述)

作成例

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

14

⑪ AD FS 2.0 の初期構成AD FS 2.0 のセットアップ

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

15

AD FS 2.0 初期構成の流れ

tf20101102-02

tf20101102-01

NLB

tfadfs.tf.comtfadfs.tf.com

1 台目サーバーファームを構成

2 台目以降サーバーファームに追加

構成 DB( SQL Server)

構成情報はSQL Server に格納される

構成情報はSQL Server に格納される

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

16

インストール直後の管理コンソール

ちょっとまった !脊髄クリック注意 !!ちょっとまった !

脊髄クリック注意 !!

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

17

1台目の AD FS

~ 環境構成ウィザード編 ①

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

18

1台目の AD FS

~ 環境構成ウィザード編 ②

事前に取り込んでおいた証明書が表示される事前に取り込んでおいた証明書が表示される

事前に作成しておいたサービスアカウント事前に作成しておいたサービスアカウント

(注意)サービスアカウントの入力が求められるのは「サーバーファーム」を選択した場合

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

19

サービス名をチェックこれが AD FS のエンドポイン

トの一部になります

サービス名をチェックこれが AD FS のエンドポイン

トの一部になります

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

20

1 台目の AD FS

~ 環境構成ウィザード編 ③

サービスアカウントに指定したユーザーが管理者権限を持っていない場合に発生

する

サービスアカウントに指定したユーザーが管理者権限を持っていない場合に発生

する

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

21

SPN( Service Principal Name)とは?

(参考)認証のためのサービス IDhttp://msdn.microsoft.com/ja-jp/library/ms733130(VS.85).aspx

AD FS 2.0サービス( adfssrv)

• サービスのインスタンスを正確に識別するための ID(乗っ取りを回避)

• Kerberos でサービスの認証に使用される• 登録するには管理者権限が必要• ドメイン内に同じ SPN は登録できない

kerberos チケットを発行kerberos チケットを発行AD DS

SPNを送付SPNを送付 KD

C

SPN チェック

SPN チェック

チケット送付チケット送付

サービス認証サービス認証サービスアカウント

SPN

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

22

SPN を手動で登録する

setspn -a host\adfssrv <ドメイン名 >\<サービスアカウント名 >(例 ) setspn -a host\adfssrv tf\adfssvc

setspn -a host\adfssrv <ドメイン名 >\<サービスアカウント名 >(例 ) setspn -a host\adfssrv tf\adfssvc

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

23

AD FS 2.0 を構成するファイルと設定情報StandAlone

SF(SQL)

SF(WID)

備考

AD FS 本体ファイルおよびPowerShell コマンドレット ○ ○ ○ KB974408

WIFランタイム ○ ○ ○ KB974405

Windows Internal Database

○ ○

インスタンス名:MICROSOFT##SSEE データベース名: AdfsArtifactStore : AdfsConfiguration

SQL Server

インスタンス名: <指定した名前 >データベース名: AdfsArtifactStore : AdfsConfiguration

IIS アプリケーション

○ ○ ○

ファイル: c:\inetpub\adfsアプリケーション: Default Web Site\adfs: Default Web Site\adfs\fsアプリケーションプール: ADFSAppPool

証明書共有コンテナ○ ○

CN=xxxx…xxxxx,CN=ADFS,CN=Microsoft,CN=Program Data,DC=<ドメイン名 >

SPN ○ ○ HOST/Adfssrv

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

24

AD FS 2.0 をアンインストールするには

1. 証明書共有コンテナを削除( PowerShell を使用)

ADSI Edit を起動し、「既定の名前付きコンテキスト」に接続し、 CertificateSharingContainer の値と一致するコンテナを削除する。

2. AD FS 2.0( KB974408)を削除3. WIF ランライム( KB974405)を削除4. WID または SQL Server の当該インスタンス(もしくはデータベースのみ)を

削除5. IIS 上のアプリケーションとアプリケーションプール、ファイル群を削除6. SPN を削除

サービスアカウントの servicePrincipalName 属性から「 host\adfssrv」を削除

(参考) http://blogs.technet.com/b/junichia/archive/2010/07/28/3347209.aspx

PS C:\>Add-PsSnapin Microsoft.Adfs.Powershell PS C:\>Get-ADFSProperties |Select-Object CertificateSharingContainerCertificateSharingContainer --------------------------- CN=0586a130-89fa-40e8-8896-18ece4d171e7 ,CN=ADFS, CN=Microsoft, CN=Program Data, DC=T3304, DC=com

C:\setspn -d host\adfssrv <AD FS サーバーのホスト名 >

再構成だけしたい場合は↑↓を実施

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

25

WID の管理方法

• SQL Server Management Studio Expre s s を使用

• サーバー名は\\.\pipe\mssq l$microsof t## s se e\sq l\query

AD FS 2.0 用DB

AD FS 2.0 用DB

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

26

1台目の AD FS

~ fsconfig コマンド編( SQL Server を使用)

FSConfig.exe CreateSQLFarm /ServiceAccount <ドメイン名 >\<サービスアカウント名 > /ServiceAccountPassword <サービスアカウントのパスワード> /SQLConnectionString “ database=<構成 DB名 > ; server=<SQL Server のサーバー名 >\<インスタンス名 > ; integrated security=SSPI " /AutoCertRolloverEnabled /CleanConfig

書式

既定のインスタンス(MSSQLSERVER)ならば指定しなくてもよい

既定のインスタンス(MSSQLSERVER)ならば指定しなくてもよい

既定の名前は AdfsConfiguration 既定の名前は AdfsConfiguration

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

27

C:……\>FSConfig.exe CreateSQLFarm /ServiceAccount TF\adfssvc /ServiceAccountPassword P@ssw0rd /SQLConnectionString “ database=AdfsConfiguration ; server=TF20101102-03 ; integrated security=SSPI " /AutoCertRolloverEnabled/CleanConfig

入力例

C:\> cd C:\Program Files\Active Directory Federation Services 2.0 AD FS 2.0 のインストールディレクトリに移動

CreateSQLFarm オプションを指定して実行

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

28

対応を忘れずに !

対応を忘れずに !

IIS上のアプリケーションを削除していない場合に出力

される

IIS上のアプリケーションを削除していない場合に出力

される

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

29

2台目以降の AD FSウィザードを使用する場合( WID の場合)構成 DB が WID の場合にはウィザードを使用することが可能

1台目の ADFSサーバー1台目の ADFSサーバー

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

30

2台目以降の AD FS

fsconfig コマンドを使用する場合( SQLSV の場合)構成 DB が SQL Server の場合には fsconfig コマンドを使用する

SQL Server の場合にはウィザードを使用できない

C:……\>FSConfig.exe JoinSQLFarm /ServiceAccount TF\adfssvc /ServiceAccountPassword P@ssw0rd /SQLConnectionString “ database=AdfsConfiguration ; server=TF20101102-03 ; integrated security=SSPI "

JoinSQLFarm オプションで実行

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

31

JoinSQLFarm 実行結果例

注意 注意

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

32

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

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

33

AD FS 2.0 管理コンソールの基礎

クレームのもととなる属性情報の格納庫を定義する。既定では、所属している  Active Directory が定義されている。

クレームのもととなる属性情報の格納庫を定義する。既定では、所属している  Active Directory が定義されている。

「証明書利用者」とは「 RP/SP」のこと。自分がIdP/CP 側の STS である場合には、ここに RP/SP を定義することで信頼関係を構築できる。既定では何も定義されていない。

「証明書利用者」とは「 RP/SP」のこと。自分がIdP/CP 側の STS である場合には、ここに RP/SP を定義することで信頼関係を構築できる。既定では何も定義されていない。

「要求プロバイダー」とは「 IdP/CP」のこと。自分 が RP/SP 側の STS である場合には、ここに

IdP/CP となるサーバーを定義する。既定では自身 が所属している Active Directory ドメインが定義され

ている(「要求プロバイダーであること」が規定値となっている)。

「要求プロバイダー」とは「 IdP/CP」のこと。自分 が RP/SP 側の STS である場合には、ここに

IdP/CP となるサーバーを定義する。既定では自身 が所属している Active Directory ドメインが定義され

ている(「要求プロバイダーであること」が規定値となっている)。

この AD FS 2.0( STS)で扱うことができるクレームが定義されている。逆に言えばここに定義されていないクレームを使うことはできない。先方から要求されているクレームは個々に定義する。

この AD FS 2.0( STS)で扱うことができるクレームが定義されている。逆に言えばここに定義されていないクレームを使うことはできない。先方から要求されているクレームは個々に定義する。

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

34

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

35

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

36

AD FS 2.0 管理コンソールの基礎

要求記述• システム間で送受信するクレームタイプが定義されている• ここに定義されていないクレームは、要求規則テンプレートで使用することができない(カスタムルールでは独自に作成可能)

あくまでも識別名としての「名前」。この STS内部だけで通

用する。

あくまでも識別名としての「名前」。この STS内部だけで通

用する。

ワールドワイドで一意なクレー ムの名前(だから URI で書か

れている)。これを使ってクレームが識別される。

ワールドワイドで一意なクレー ムの名前(だから URI で書か

れている)。これを使ってクレームが識別される。

このクレームを外部から受信可能か否か、外部に送信可能か否かを定義

このクレームを外部から受信可能か否か、外部に送信可能か否かを定義

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

37

(参考)既定のクレーム タイプ英語表記 日本語表記E-Mail Address 電子メール アドレスGiven Name 指定名Name 名前UPN UPN

Common Name 共通名AD FS 1.x E-Mail Address AD FS 1.x 電子メール アドレスGroup グループAD FS 1.x UPN AD FS 1.x UPN

Role 役割Surname 姓PPID PPID

Name Identifier 名前 ID

Authentication Method 認証方法

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

38

英語表記 日本語表記Deny Only Group SID 拒否のみグループ SID

Deny only primary SID 拒否のみプライマリ SID

Deny only primary group SID 拒否のみプライマリ グループ SID

Group SID グループ SID

Primary Group SID プライマリ グループ SID

Primary SID プライマリ SID

Windows account name Windows カウント名Authentication Instant 認証タイム スタンプ