LDAP または Active Directory による認証

Spectrum™ Technology Platform は、LDAP または Active Directory サーバーを認証に使うために設定できます。ユーザが Spectrum™ Technology Platform にログインすると、LDAP または Active Directory を使ってユーザの資格情報が検証されます。その後で、同じ名前の Spectrum™ Technology Platform ユーザが存在するかどうかがシステムで確認されます。存在する場合は、ユーザがログインされます。存在しない場合は、そのユーザの Spectrum™ Technology Platform ユーザ アカウントが自動的に作成され、役割 user が付与されます。

次の図は、このプロセスを表したものです。



ディレクトリ サービスを使用して認証するように Spectrum™ Technology Platform を設定する前に、お使いのディレクトリ サービスが以下の要件を満たすことを確認してください。

  • LDAP の場合、ディレクトリ サーバーは、LDAP バージョン 3 に準拠する必要があります。
  • Active Directory サーバーに固有の要件はありません。
注: この処理手順の説明については、Pitney Bowes テクニカル サポートまたはプロフェッショナル サービスにお問い合わせいただくことを推奨します。
  1. Management Console で設定した既存のユーザが存在し、LDAP 認証または Active Directory 認証を有効にした後で、それらのユーザを使用する場合は、LDAP システムまたは Active Directory システムにそれらのユーザを作成します。Spectrum™ Technology Platform と同じユーザ名を使うようにしてください。
    注: LDAP または Active Directory で "admin" ユーザを作成する必要はありません。このユーザは、LDAP または Active Directory を有効にした後も引き続き、認証に Spectrum™ Technology Platform を使用します。
  2. Spectrum™ Technology Platform サーバーを停止します。
  3. LDAP または Active Directory の認証を有効にします。
    1. この設定ファイルをテキスト エディターに開きます。

      server\app\conf\spectrum-container.properties

    2. プロパティ spectrum.security.authentication.basic.authenticator を LDAP に設定します。
      spectrum.security.authentication.basic.authenticator=LDAP

      設定 LDAP は、LDAP だけでなく Active Directory を有効化する際も使用されます。

    3. ファイルを保存して閉じます。
  4. 接続プロパティの設定:
    1. この設定ファイルをテキスト エディターに開きます。

      server\app\conf\spring\security\spectrum-config-ldap.properties

    2. 次のプロパティを変更します。
      spectrum.ldap.url
      LDAP サーバまたは Active Directory サーバの URL (ポートを含む)。例を次に示します。
      spectrum.ldap.url=ldap://ldapserver.example.com:389/
      spectrum.ldap.dn.format
      LDAP または Active Directory のユーザ アカウントを検索するためのフォーマット。ユーザ名には変数 %s を使用します。例を次に示します。

      LDAP:

      spectrum.ldap.dn.format=uid=%s,ou=users,dc=example,dc=com

      Active Directory:

      spectrum.ldap.dn.format=%s@example.com
      spectrum.ldap.dn.base
      LDAP または Active Directory のユーザ アカウントを検索するための識別名 (dn)。例を次に示します。

      LDAP:

      spectrum.ldap.dn.base=ou=users,dc=example,dc=com

      Active Directory:

      spectrum.ldap.dn.base=cn=Users,dc=example,dc=com
      spectrum.ldap.search.filter
      役割などの属性の検索に使用される検索フィルタ。検索フィルタには以下の変数を含めることができます。
      • {user}Spectrum™ Technology Platform へログインするためのユーザ名
      • {dn}spectrum.ldap.dn.base で指定された識別名
      例:

      LDAP:

      spectrum.ldap.search.filter=uid={user}

      Active Directory:

      spectrum.ldap.search.filter=userPrincipalName={dn}
      spectrum.ldap.attribute.roles
      これはオプションです。ユーザの Spectrum™ Technology Platform 役割の名前が含まれる LDAP 属性または Active Directory 属性を指定します。LDAP 属性または Active Directory 属性で指定する役割名は、Spectrum™ Technology Platform で定義されている役割の名前と一致する必要があります。

      例えば、属性 spectrumroles で定義されている役割を適用するには、次のように指定します。

      spectrum.ldap.attribute.roles=spectrumroles

      この属性に designer という名前の役割が含まれる場合、designer 役割がユーザに付与されます。

      指定できる属性は 1 つだけですが、属性に複数の役割が含まれることがあります。属性内の複数の役割を指定するには、それぞれの属性をカンマで区切ります。属性の各インスタンスに異なる役割が含まれる、複数値の属性を指定することもできます。この 1 つの属性で指定されている役割だけが Spectrum™ Technology Platform で使用されます。それ以外の LDAP 属性または Active Directory 属性は Spectrum™ Technology Platform の役割に影響を与えません。

      Spectrum™ Technology Platform でユーザに役割が割り当てられている場合、ユーザの権限は、LDAP または Active Directory から付与される権限と Spectrum™ Technology Platform からの権限を結合したものになります。

      注: 初めてログインするユーザが Spectrum™ Technology Platform ユーザ アカウントを持っていない場合は、アカウントが自動的に作成されて、役割 user が付与されます。このユーザの有効な権限は、user 役割の権限と、spectrum.ldap.attribute.roles プロパティに記載された属性で指定されている役割の権限の組み合わせです。
      注: Management Console でユーザの役割を表示すると、spectrum.ldap.attribute.roles プロパティによってユーザに割り当てられた役割は表示されません。
      spectrum.ldap.pool.min
      LDAP サーバーまたは Active Directory サーバーに接続するための接続プールの最小サイズ。
      spectrum.ldap.pool.max
      LDAP サーバーまたは Active Directory サーバーに同時に接続できる接続の最大数。
      spectrum.ldap.timeout.connect
      LDAP サーバーまたは Active Directory サーバーへの接続が確立されるまで待機する時間 (ミリ秒)。デフォルトでは、1000 ミリ秒に設定されます。
      spectrum.ldap.timeout.response
      接続が確立された後で、LDAP サーバーまたは Active Directory サーバーからの応答を待機する時間 (ミリ秒)。デフォルトでは、5000 ミリ秒に設定されます。
      spectrum.ldap.retry.count
      最初の接続試行が失敗した場合に、Spectrum™ Technology Platform サーバーが LDAP サーバーまたは Active Directory サーバーへの接続を試みる回数。接続試行を 1 回しか許可しない場合は、この値を 0 に設定します。
      ヒント: LDAP サーバーまたは Active Directory サーバーをクラスタ化している場合は、この値を 1 以上に設定し、最初の接続先が利用できなかった場合に LDAP または Active Directory ロード バランサーが接続要求を別のサーバーにリダイレクトできるようにすることをお勧めします。
      spectrum.ldap.retry.wait
      接続試行から次の接続試行までの待ち時間 (ミリ秒)。
      spectrum.ldap.retry.backoff
      再試行が失敗するたびに待ち時間を増やすために使う乗算計数。

      例を次に示します。

      spectrum.ldap.timeout.connect=1000
      ...
      spectrum.ldap.retry.count=5
      spectrum.ldap.retry.wait=500
      spectrum.ldap.backoff=2

      この例では、最初の接続試行時の待ち時間は 1,000 ミリ秒で、5 回の再試行のたびに待ち時間が 2 倍ずつ増えるので、再試行ごとの待ち時間は次のようになります。

      1 回目の再試行: 500 ミリ秒
      2 回目の再試行: 1,000 ミリ秒
      3 回目の再試行: 2,000 ミリ秒
      4 回目の再試行: 4,000 ミリ秒
      5 回目の再試行: 8,000 ミリ秒

    3. プロパティ ファイルを保存して閉じます。
  5. Location Intelligence モジュールを使用しており、役割を (LDAP 属性値を役割にマッピングするに記載されているように) マッピングする場合は、さらに (SpectrumFolder\server\modules\spatial\jackrabbit\workspaces\default\workspace.xml にある) Jackrabbit 設定ファイルを手動で設定し、動的に割り当てられた LDAP または Active Directory の役割を Spectrum Spatial に認識させる必要があります。checkRoles パラメータを次のように追加します。
     <!-- 
      Spectrum ACL provider.
     -->
     <WorkspaceSecurity>
      <AccessControlProvider class="com.mapinfo.repository.jackrabbit.acl
       .AccessControlProviderImpl">
       <param name="checkRoles" value="true"/>
      </AccessControlProvider>
     </WorkspaceSecurity>
    
  6. Spectrum™ Technology Platform サーバーを開始します。

Spectrum™ Technology Platform をクラスタ内で実行している場合は、クラスタ内の各サーバー上で spectrum-container.properties ファイルと spectrum-config-ldap.properties ファイルを変更する必要があります。ファイルを変更する前にサーバーを停止し、ファイルの変更を終えてからサーバーを起動します。LDAP 属性値を役割にマッピングすると、このマッピングはクラスタ内のすべてのノードに複製されるため、このマッピング操作を JMX コンソールで繰り返す必要はありません。