ファームに関する補足

このトピックでは、フェデレーションサーバーファーム環境にOkta Active Directory Federation Services(ADFS)アダプターをインストールする方法について説明します。

背景

インストーラーは、各ノード上の構成ファイルにクライアントシークレットを保護された文字列として保存します。この保護された文字列は、マシン固有のキーを使用して生成されます。

ADFSがサーバーファームで使用されると、構成ファイルはファームメンバーサーバー全体で複製されます。

プロセスの概要

  1. ADFSファームのサーバーにアダプターをインストールする場合、ファーム内のプライマリノードを識別します。
  2. ファーム内のすべてのノードにADFSアダプターをインストールします。インストール中はプラグインを登録しないでください。ADFSサーバーにOkta ADFSプラグインをインストールするを参照してください。
  3. clientSecret値をファーム内のノードすべての値を含む配列に結合して、ファーム構成ファイルを作成します。
  4. プライマリファームノード上にADFS認証プロバイダーを手動で登録します。

ADFSアダプターをインストールする

  1. ADFSファーム内のノードすべてにプラグインをインストールしますが、ADFSを使用してプラグインを登録しないでください。インストールのOkta ADFSアダプターを登録する(Register Okta ADFS Adapter)手順で、Okta ADFSアダプターを登録する(Register Okta ADFS Adapter)チェックボックスをオフにします。
  2. ファームのプライマリノードで、テキストエディターを使用して次のファイルを開きます。

    C:\Users\<adfs_service_account_name>\AppData\Local\Okta\Okta MFA Provider\config\okta_adfs_adapter.json

  3. ファイルの内容を新しいファイル(例:okta_adfs_farm.json)にコピーします。
  4. 変更された構成ファイルの値を結合します。ファーム内の各ノードからプラグイン構成ファイルを開き、clientSecret値をコピーします。

    okta_adfs_farm.jsonファイルのclientSecret値は、保護された文字列のJSON配列である必要があります。

  5. 任意。JSONLintツールを使用してJSONファイルを検証します。
  6. プライマリノード上にADFS認証プロバイダーを手動で再登録します。このスクリプトを例として使用します。構成ファイルの場所と名前を独自のものに置換します。
    [System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, 
    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
    # change the values if needed
    $BinDir = "C:\Program Files\Okta\Okta MFA Provider\bin"
    $ConfigDir = "C:\Program Files\Okta\Okta MFA Provider\config"
    
    # we need the service to run in order to use powershell commands
    Start-Service adfssrv
    
    # Remove Okta MFA Provider
    $providers = (Get-AdfsGlobalAuthenticationPolicy).AdditionalAuthenticationProvider
    $providers.Remove("OktaMfaAdfs") 
    Set-AdfsGlobalAuthenticationPolicy -AdditionalAuthenticationProvider $providers
    
    # Unregister 
    Unregister-AdfsAuthenticationProvider -Name "OktaMfaAdfs" -Confirm:$false 
    -ErrorAction Stop
    
    # restart the ADFS service
    Restart-Service adfssrv -Force
    
    # register MFA adapter again
    $OktaMfaAssamply = [Reflection.Assembly]::Loadfile($BinDir + "\OktaMfaAdfs.dll")
    $typeName = "OktaMfaAdfs.AuthenticationAdapter, OktaMfaAdfs, Version=" + 
    $OktaMfaAssamply.GetName().Version + ", Culture=neutral, 
    PublicKeyToken=3c924b535afa849b"
    
    # change the file name if needed
    Register-AdfsAuthenticationProvider -TypeName $typeName -Name "OktaMfaAdfs" 
    -Verbose -ConfigurationFilePath "$ConfigDir\okta_adfs_farm.json"
    
    # restart the service
    Restart-Service adfssrv -Force
    
    # Enable Okta MFA adapter
    $providers = (Get-AdfsGlobalAuthenticationPolicy).AdditionalAuthenticationProvider
    $providers.Add("OktaMfaAdfs") 
    Set-AdfsGlobalAuthenticationPolicy -AdditionalAuthenticationProvider $providers
    
  7. 構成データベースの内容を更新するには、すべてのノードでADFSサービスを再起動します。