【IDM】AD FS 2.0 で構成データベースを SQL Server にする

先日、以下を投稿しました。

【IDM】AD FS 2.0 スタンドアロン と サーバーファーム の大きな違いは構成DB

せっかくなので、サーバーファーム構成の構成データベースを SQL Server にしてみましょう。

【準備 1】ADFS 2.0 のインストール

AD FS 2.0 をインストールしておいてください。

ただし、構成ウィザードを実行しないでください。構成ウィザードでセットアップすると、構成DB は WID(Windows Internal Database)になってしまい、あとから変更することはできません。

間違えて構成ウィザードを使用してしまった場合には、以下の手順で既存の AD FS 2.0 の環境を削除しておいてください。

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

【準備 2】サービスアカウントの準備

ADFSのサービスアカウントとなるユーザーを事前に作成しておいてください。ここでは「adfssvcaccount」とします。

【準備 3】SQL Server のインストール

どこかのサーバー(もちろんローカルでもOK)に SQL Server をインストールしておいてください。

【構成の実施】

現バージョンでは、SQL Server を使用するように構成するには、fsconfig.exe コマンドを使用しなければなりません。

コマンドプロンプトを起動し、C:\Program Files\Active Directory Federation Services 2.0 に移動します。

書式は以下の通りです。

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

ここでは以下のパラメタで環境を作成するものとします。

  • サービスアカウント : adfssvcaccount
  • サービスアカウントのパスワード : P@ssw0rd
  • SQL Server のサーバー名 : T330401
  • SQL Server のインスタンス名 : MSSQLSERVER(デフォルトのインスタンス名)
  • 構成DB名 : AdfsConfiguration (←既定のデータベース名です。変更してもかまいません。)
  • SQL Server へのログオン : 統合セキュリティ

書式に埋め込んだものが以下の通りです。サービスアカウント名には必ずドメイン名を指定してください。また、規定のインスタンス(MSSQLSERVER)を使用する場合には、インスタンス名の指定は必要ありません。

FSConfig.exe CreateSQLFarm /ServiceAccount t3304\adfssvcaccount /ServiceAccountPassword P@ssw0rd /SQLConnectionString "database=AdfsConfiguration ; server=T330401 ; integrated security=SSPI" /AutoCertRolloverEnabled

実行結果例を以下に示します。

C:\Program Files\Active Directory Federation Services 2.0>FSConfig.exe CreateSQL Farm /ServiceAccount t3304\adfssvcaccount /ServiceAccountPassword P@ssw0rd /SQLC onnectionString "database=AdfsConfiguration ; server=T330401 ; integrated securi ty=SSPI" /AutoCertRolloverEnabled

新しいフェデレーション サーバー ファームを作成しています... AD FS 2.0 Windows サービスを停止しています... 正常に終了しました AD FS 構成データベースを構成しています... 正常に終了しました 署名証明書と暗号化解除証明書を共有するために Active Directory コンテナーを作成し ています... 正常に終了しました 証明書、サービス設定、およびエンドポイントを構成しています... 警告: 指定されたサービス アカウントの SPN を設定しようとしてエラーが発生しました 。サービス アカウントの SPN を手動で設定してください。サービス アカウントの SPN を手動で設定する方法の詳細については、AD FS 2.0 の展開ガイドを参照してください。

エラー メッセージ: このフェデレーション サービスに必要な SPN が別の Active Direc tory アカウントで既に設定されています。別のフェデレーション サービス名を指定して 、再度実行してください。 IIS の既定の Web サイトの /adfs/ls 仮想ディレクトリにブラウザー サインイン Web サイトを展開しています... 正常に終了しました AD FS 2.0 Windows サービスを開始しています... 正常に終了しました 既定の要求セットを作成しています... 正常に終了しました Active Directory 要求プロバイダー信頼で既定の要求受け付け規則を作成しています 正常に終了しました

構成は完了しましたが、1 つ以上の警告が発生しました。

C:\Program Files\Active Directory Federation Services 2.0>

途中、警告が1つ出ていますが、これはAD FS 2.0 のインストールや削除を繰り返すたびに、以前から使用しているサービスアカウントを使いまわしているためです。

以下のように、SQL Server の 既定のインスタンス上に構成データベースが作成されたことがわかります。

image