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認証機能の設定¶
次の設定をテナント環境セットアップ後に行ってください。
機能の有効化の設定
- 統合Windows認証設定ファイル(<(展開したwar)>/WEB-INF/conf/im-sso-windows-config.xml)を開きます。
- <im-sso-windows-config>/<authentication>/<@enable> を true に設定します。
テナント解決の設定(intra-mart Accel Platform 2014 Spring(Granada) 以降のみ)
認証対象となるテナントを解決する方法として plugin を採用しています。plugin の設定仕様については、「PluginManagerのAPIドキュメント」を参照してください。
<(展開した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>/<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サービスを利用するためには、以下の設定が必要です。
機能の有効化の設定
設定ファイル(<(展開したwar)>/WEB-INF/conf/im-sso-windows-path-config/im-sso-windows-path-config_ws_auth.xml>)を開きます。
以下のようにコメントを外して、設定を有効化します。
<no-authentication> <path regex="true">/services/.*</path> <path regex="true">/axis2-admin/.*</path> </no-authentication>
10.2.3.3. 統合Windows認証環境で外部ソフトウェア連携機能を利用する¶
統合Windows認証環境で外部ソフトウェア連携機能を利用するためには、以下の設定が必要です。
機能の有効化の設定
設定ファイル(<(展開したwar)>/WEB-INF/conf/im-sso-windows-path-config/im-sso-windows-path-config_imaca_provider.xml>)を開きます。
以下のようにコメントを外して、設定を有効化します。
<no-authentication> <path>/HTTPActionEventListener</path> </no-authentication>
10.2.3.4. Internet Explorer の設定¶
Internet Explorer の設定を変更することにより、Windows にログインしているユーザで自動的に intra-mart Accel Platform にログインすることができます。
10.2.4. 統合Windows認証機能を無効化するには¶
統合Windows認証機能を無効化したい場合、以下の手順を実施するか、または単に統合Windows認証モジュールを含めずに war を作成し、再デプロイを行ってください。
<(展開した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><(展開した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><(展開した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><(展開した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>