ファームに関する補足
フェデレーションサーバーファーム環境では、管理者はこれらの追加のインストール手順に従ってアダプターを正常にインストールする必要があります。
トピック:
背景
インストーラーはクライアントシークレットを保護された文字列として保存します。この保護された文字列は、マシン固有のキーを使用して生成されます。
ADFSがサーバーファームで使用されると、構成ファイルはファームメンバーサーバー間で複製されます。最終的な構成ファイルには、インストールが実行された最後のサーバーでのみ復号できる単一のクライアントシークレットが含まれるようになります。
ADFSサーバーファームがWindows Internal Database(WID)を使用している場合は、インストール時に各サーバーをプライマリサーバーに昇格させる必要があります。Oktaでは、現在のプライマリサーバーでインストールを開始することを推奨しています。以下の手順をプライマリサーバーで開始して完了します。インストールプロセスは元のプライマリサーバーにアダプタをインストールする処理で完了するため、そのプライマリ状態に戻ります。PowerShellコマンドGet-AdfsFarmInformationを使用して、現在のプライマリサーバーを特定できます。
プロセスの概要
- WIDベースのADFSファーム内のサーバーにインストールする場合、現在のプライマリサーバーを特定し、そのサーバーからシーケンスを開始します。
- ADFSプラグインをインストールします。「ADFSサーバーにOkta ADFSプラグインをインストールする」を参照してください。
- 保護された文字列の値を各サーバーから取得してコピーします。
- 変更された構成ファイルの値を結合します。
- 構成ファイルを最後のサーバーで変更されたバージョンで置き換えます。
- ADFS認証プロバイダーを手動で再登録します。
詳細な手順
- ローカルデータベースファーム(WID)を使用していて、現在のコンピューターがプライマリサーバーではない場合、サーバーで次のコマンドを実行してプライマリサーバーに昇格させます。
Set-AdfsSyncProperties -Role PrimaryComputer
- 最初のサーバーで上記のようにインストールを実行します。
- テキストエディターでokta_adfs_adapter.jsonファイル(%ProgramFiles%\Okta\Okta MFA Provider\config)を開きます。
- クライアントシークレット値をコピーします(省略されたシークレットが表示されます)。
- 値を別のファイルに貼り付けます。
- 環境内の残りのサーバーで手順2を繰り返します。
- ファーム内の各サーバーで前の手順を完了したら、手順4に進みます。
- 変更された構成ファイルの値を結合します。
- 元のプライマリサーバーから始めます。
- サーバーがプライマリに戻るよう昇格させます。
Set-AdfsSyncProperties -Role PrimaryComputer
- okta_adfs_adapter.jsonファイルを開きます。UACが有効な場合、管理者としてエディターを実行します。
他のサーバーから保護されたシークレットを含む別のファイルのコンテンツ全体をコピーして貼り付けます。
- 以下は、ファームサーバーからの4つの保護された文字列と、最初の(そして現在のプライマリ)サーバーからの1つのファイルの完全な構成ファイルを示しています。
- 保護された文字列のリストをJSON配列に配置します。
- 完全な構成ファイルのclientSecret文字列の値を、保護された文字列のJSON配列に置き換えます。
注:インデントと改行の書式設定は省略可能です。 - 任意で、JSONLintツールを使用してJSONを検証します。オンラインバージョンを利用できるので、ご自身の判断で使用してください。例:https://jsonlint.com/。
-
最後のサーバー上で構成ファイルを変更したバージョンで置き換えます。
- 最後のサーバーのokta_adfs_adapter.jsonファイルを新しく作成した構成ファイルで置き換えます。
- 注:メモ帳を管理者として実行する必要がある場合があります
-
Adfs認証プロバイダーを手動で再登録します。
- サンプルスクリプト:
$a=[System.Reflection.Assembly]::LoadFile("C:\Program Files\Okta\Okta MFA Provider\bin\OktaMfaAdfs.dll")
$file=[String]::Format("OktaMfaAdfs.AuthenticationAdapter、 {0}", $a.GetName().FullName)
- Unregister-AdfsAuthenticationProvider -Name "OktaMfaAdfs"
- Register-AdfsAuthenticationProvider -Name "OktaMfaAdfs" -TypeName $file -ConfigurationFilePath "C:\Program Files\Okta\Okta MFA Provider\config\okta_adfs_adapter.json"