intra-mart Accel Platform / セットアップガイド

第10版 2014-04-01

«  10.1. Resinのクラスタリング   ::   コンテンツ   ::   10.3. WARファイルによる複数テナント  »

10.2. 統合Windows認証

10.2.1. 概要

統合Windows認証機能は、ドメインコントローラ上の認証済みユーザと同じユーザコードをもつユーザで intra-mart Accel Platform アクセス時に、統合Windows認証済みユーザ情報を取得して自動ログインを行うことができる機能です。
これにより、シングルサインオンを実現することができます。

注意

ログイン画面からのログインはサポートしません。詳しくは以下の制限を参照してください。

10.2.2. 前提条件

  • アプリケーションサーバには Resin を使用してください。

  • Resin を Windows Server 上で動作させる必要があります。

  • Resin を実行する Windows Server がドメインに参加している必要があります。

  • 統合Windows認証モジュール が必要になります。
    • im-Juggling 上で「追加機能」-「統合Windows認証モジュール」を選択し intra-mart Accel Platform を構築する必要があります。
    • 統合Windows認証モジュールは、8.0.0-PATCH_001 以降のバージョンを使用してください。

注意

シングルサインオンを実現するためには、ドメインコントローラ上のユーザコードと intra-mart Accel Platform 上のユーザコードが一致している必要があります。

注意

統合Windows認証機能には、ドメインコントローラ、統合Windows認証に対応したブラウザが必要になります。

注意

統合Windows認証は intra-mart Accel Platform の機能として Resin 上で実行されます。そのため、IIS の Windows 認証を無効化してください。
その他認証は必要に応じて設定してください。

10.2.3. セットアップ

10.2.3.1. 統合Windows認証機能の設定

次の設定をテナント環境セットアップ後に行ってください。

  • 機能の有効化の設定

    1. 統合Windows認証設定ファイル(<(展開したwar)>/WEB-INF/conf/im-sso-windows-config.xml)を開きます。
    2. <im-sso-windows-config>/<authentication>/<@enable> を true に設定します。
  • テナント解決の設定(intra-mart Accel Platform 2014 Spring(Granada) 以降のみ)

    認証対象となるテナントを解決する方法として plugin を採用しています。
    plugin の設定仕様については、「PluginManagerのAPIドキュメント」を参照してください。
    1. <(展開したwar)>/WEB-INF/plugin/jp.co.intra_mart.foundation.admin.tenant.context.tenant.resolver.windows_8.0.1/plugin.xml> を開きます。

    2. <plugin>/<extension>/<tenant-id-resolvers>/<tenant-id-resolver>/<@class> に実装クラスを指定し、必要に応じて実装クラスにパラメータを設定します。
以上で統合Windows認証機能の設定は終了です。

10.2.3.1.1. テナント解決プラグインの設定

テナント解決を行う仕組みとして、以下の二つの実装クラスを用意しています。
実装クラス 概要
jp.co.intra_mart.foundation.admin.tenant.context.DomainBasedWindowsTenantIdResolver ユーザが参加しているドメインをテナントIDとして解決します。
jp.co.intra_mart.foundation.admin.tenant.context.FixedConfigBasedWindowsTenantIdResolver 設定された固定値をテナントIDとして解決します。
  • jp.co.intra_mart.foundation.admin.tenant.context.DomainBasedWindowsTenantIdResolver

    ユーザが参加しているドメインをテナントIDとして解決します。
    本実装クラスに必要なパラメータはありません。
  • jp.co.intra_mart.foundation.admin.tenant.context.FixedConfigBasedWindowsTenantIdResolver

    tenant_id パラメータを受け取り、その値をテナントIDとして解決します。
    下記の設定例では、「default」がテナントIDとして解決されます。
    <tenant-id-resolver class="jp.co.intra_mart.foundation.admin.tenant.context.FixedConfigBasedWindowsTenantIdResolver">
      <init-param>
        <param-name>tenant_id</param-name>
        <param-value>default</param-value>
      </init-param>
    </tenant-id-resolver>
    

10.2.3.2. 統合Windows認証環境でWebサービスを利用する

統合Windows認証環境でWebサービスを利用するためには、以下の設定が必要です。
  • 機能の有効化の設定

    1. 設定ファイル(<(展開したwar)>/WEB-INF/conf/im-sso-windows-path-config/im-sso-windows-path-config_ws_auth.xml>)を開きます。

    2. 以下のようにコメントを外して、設定を有効化します。

      <no-authentication>
        <path regex="true">/services/.*</path>
        <path regex="true">/axis2-admin/.*</path>
      </no-authentication>
      

10.2.3.3. 統合Windows認証環境で外部ソフトウェア連携機能を利用する

統合Windows認証環境で外部ソフトウェア連携機能を利用するためには、以下の設定が必要です。
  • 機能の有効化の設定

    1. 設定ファイル(<(展開したwar)>/WEB-INF/conf/im-sso-windows-path-config/im-sso-windows-path-config_imaca_provider.xml>)を開きます。

    2. 以下のようにコメントを外して、設定を有効化します。

      <no-authentication>
        <path>/HTTPActionEventListener</path>
      </no-authentication>
      

10.2.3.4. Internet Explorer の設定

Internet Explorer の設定を変更することにより、Windows にログインしているユーザで自動的に intra-mart Accel Platform にログインすることができます。
  1. インターネット オプションを表示します。

    ../../../_images/ie_00.png

    コラム

    ツールメニューが表示されていない場合、Alt キーを押すことで表示できます。

    コラム

    インターネット オプションはコントロールパネルからも表示することができます。
  2. セキュリティ設定画面を表示します。

    ../../../_images/ie_01.png
  3. intra-mart Accel Platform に該当するゾーンのレベルのカスタマイズ画面を表示します。

    ../../../_images/ie_02.png
  4. ユーザ認証の設定を変更します。

    「現在のユーザ名とパスワードで自動的にログオンする」をチェックします。
    ../../../_images/ie_03.png

    コラム

    上記の設定を行うことで、Internet Explorer 利用時に自動的にユーザ認証を行うことができます。

10.2.4. 統合Windows認証機能を無効化するには

統合Windows認証機能を無効化したい場合、以下の手順を実施するか、または単に統合Windows認証モジュールを含めずに war を作成し、再デプロイを行ってください。
  1. <(展開したwar)>/WEB-INF/conf/im-sso-windows-config.xml ファイルを開きます。

    • <im-sso-windows-config>/<authentication>/<@enable> を false に設定します。

      <?xml version="1.0" encoding="UTF-8"?>
      <im-sso-windows-config
          xmlns="http://www.intra-mart.jp/sso-windows/config/im-sso-windows-config"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.intra-mart.jp/sso-windows/config/im-sso-windows-config ../schema/im-sso-windows-config.xsd">
      
        <authentication enable="false"> <!-- enable="false" を設定 -->
          <parameter>
            <param-name>allow-guest-login</param-name>
            <param-value>false</param-value>
          </parameter>
        </authentication>
      </im-sso-windows-config>
      
  2. <(展開したwar)>/WEB-INF/plugin/jp.co.intra_mart.foundation.security.certification.sso.user.provider.windows_8.0.0/plugin.xml ファイルを開きます。

    • <plugin>/<extension>/<sso-user-providers>/<@enable> を false に設定します(enable 属性がない場合、追加してください)

      <?xml version="1.0" encoding="UTF-8"?>
      <plugin>
        <extension point="jp.co.intra_mart.foundation.security.certification.sso.user.providers">
          <sso-user-providers
            id="jp.co.intra_mart.foundation.security.certification.sso.user.provider.windows"
            name="Windows SSO User Provider"
            version="8.0.0"
            rank="90"
            enable="false"> <!-- enable="false" を設定または追加 -->
            <sso-user-provider class="jp.co.intra_mart.foundation.security.certification.sso.WindowsSSOUserProvider"/>
          </sso-user-providers>
        </extension>
      </plugin>
      
  3. <(展開したwar)>/WEB-INF/plugin/jp.co.intra_mart.foundation.admin.tenant.context.tenant.resolver.windows_8.0.1/plugin.xml ファイルを開きます。

    • <plugin>/<extension>/<tenant-id-resolvers>/<@enable> を false に設定します(enable 属性がない場合、追加してください)

      <?xml version="1.0" encoding="UTF-8"?>
      <plugin>
        <extension point="jp.co.intra_mart.foundation.admin.tenant.context.tenant.resolvers">
          <tenant-id-resolvers
            id="jp.co.intra_mart.foundation.admin.tenant.context.tenant.resolver.windows"
            name="Windows Tenant Id Resolver"
            version="8.0.1"
            rank="90"
            enable="false"> <!-- enable="false" を設定または追加 -->
      
            <!-- ドメインをテナントIDとするリゾルバー
                 参加しているドメインをテナントIDとして解決します。 -->
            <!--tenant-id-resolver class="jp.co.intra_mart.foundation.admin.tenant.context.DomainBasedWindowsTenantIdResolver"/-->
      
            <!-- 設定された固定値をテナントIDとするリゾルバー
                 tenant_idパラメータに設定した値をテナントIDとして解決します。 -->
            <!--tenant-id-resolver class="jp.co.intra_mart.foundation.admin.tenant.context.FixedConfigBasedWindowsTenantIdResolver">
              <init-param>
                <param-name>tenant_id</param-name>
                <param-value>default</param-value>
              </init-param>
            </tenant-id-resolver-->
          </tenant-id-resolvers>
        </extension>
      </plugin>
      
  4. <(展開したwar)>/WEB-INF/plugin/jp.co.intra_mart.foundation.admin.tenant.context.tenant.validator.windows_8.0.1/plugin.xml ファイルを開きます。

    • <plugin>/<extension>/<tenant-id-validators>/<@enable> を false に設定します

      <?xml version="1.0" encoding="UTF-8"?>
      <plugin>
        <extension point="jp.co.intra_mart.foundation.admin.tenant.context.tenant.validators">
          <tenant-id-validators
            id="jp.co.intra_mart.foundation.admin.tenant.context.tenant.validator.standard"
            name="Standard TenantIdValidator"
            version="8.0.1"
            rank="100"
            enable="false">  <!-- enable="false" を設定 -->
            <tenant-id-validator class="jp.co.intra_mart.system.admin.context.StandardTenantIdValidator">
              <!-- テナントID解決必須チェック -->
              <init-param>
                <param-name>required_tenant_id</param-name>
                <param-value>true</param-value>
              </init-param>
              <!-- テナントID存在チェック -->
              <init-param>
                <param-name>valid_tenant_id</param-name>
                <param-value>true</param-value>
              </init-param>
            </tenant-id-validator>
          </tenant-id-validators>
        </extension>
      </plugin>
      

«  10.1. Resinのクラスタリング   ::   コンテンツ   ::   10.3. WARファイルによる複数テナント  »