1. Apache版
初期設定
-
事前準備/前提
-
有償版のSDKに同梱されている
iplass-ee-wam-apache-[バージョン]-[OS/処理系].[拡張子]
(例 : iplass-ee-wam-apache-[バージョン]-linux-gcc.tar.gz)をWebサーバーの任意のパスに配置してください。 -
以降の説明では、Apacheのインストールディレクトリを
%APACHE_HOME%
と表記します。 -
Apacheをデーモン形式で実行することを前提とします。
-
-
WAMプラグインモジュールの配置
-
Webサーバーの
%APACHE_HOME%/modules
にWAMプラグインモジュールを配置します。iplass-ee-wam-apache-[バージョン]-[OS/処理系].[拡張子]
内の以下のファイルが対象です。-
mod_iplass_ee_wam_apache.so
-
-
-
Apacheの設定
-
WAMプラグインモジュールの設定ファイル(iplass-wam.conf)を
%APACHE_HOME%/conf.modules.d
に配置します。設定項目の詳細はWAMプラグインモジュールの設定を参照してください。
※ Apacheの設定ファイル(httpd.conf)で、%APACHE_HOME%/conf.modules.d
に配置したWAMプラグインモジュールの設定ファイル(iplass-wam.conf)をIncludeしていることを確認してください。 -
Linux環境の場合、httpdプロセスの環境変数を編集し、WAMプラグインモジュールの依存するシステムライブラリを参照可能とする必要があります。
initスクリプトでApacheをデーモン起動している場合、httpdプロセスの環境変数LD_LIBRARY_PATH
からWAMプラグインモジュールの依存するシステムライブラリを参照可能とします。
以下、ライブラリのインストール先を/opt/wam/local
とした場合の設定例です。/etc/sysconfig/httpd
に以下を追加します。WAM_LOCAL=/opt/wam/local WAM_LIB_PATH=\ ${WAM_LOCAL}/boost/lib\ :${WAM_LOCAL}/jsoncpp/lib\ :${WAM_LOCAL}/openssl/lib\ :${WAM_LOCAL}/zlib/lib\ :${WAM_LOCAL}/libidn/lib\ :${WAM_LOCAL}/curl/lib\ :${WAM_LOCAL}/apr/lib\ :${WAM_LOCAL}/apr-iconv/lib\ :${WAM_LOCAL}/apr-util/lib\ :${WAM_LOCAL}/gmp/lib LD_LIBRARY_PATH="$WAM_LIB_PATH:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH
SELinuxを有効にしている環境では、ライブラリにセキュリティコンテキストを付与する必要があります。
まず、他の.soファイルに付与されているコンテキストをls -Zコマンドで確認します。
次に、上記パスの各ライブラリに対して、chconコマンドで当該コンテキストを付与します。
この操作により、httpdプロセスからライブラリへのアクセスが可能となります。 -
Windows環境の場合、
iplass-ee-wam-apache-[バージョン]-win64-vc.zip
内のbin/
にあるDLLファイルを%APACHE_HOME%/bin
にコピーします。
-
-
WAMシステムライブラリ
WAMシステムライブラリを参照してください。
設定方法/設定例
Apache版のWAMプラグインモジュールでは、iplass-wam.conf
を使ってWAMプラグインモジュールの設定を行います。
# WAMプラグインモジュールをロードします. LoadModule iplass_wam_plugin_apache_module modules/mod_iplass_wam_plugin_apache.so # 管理対象サイトの識別情報です. AdminConsoleで設定した値と一致させてください. IplassSiteId local IplassSiteSecret 123 # 管理対象サイトのドメインとプロトコルを指定します. IplassSiteCookieDomain mysite.example.com IplassSiteScheme https # WAMモジュールが稼働するiPLAssサーバーのURLを指定します. IplassWamBaseUrl https://my.iplass.jp/myiplassapp/mytenant/ IplassWamCookieDomain my.iplass.jp # 管理対象サイトで認証処理を組み込みたいパスパターンを正規表現で指定します. IplassProtectedPathPattern "^/contents/.*$" # 認証時にコールバックとして使う管理対象サイトのパスを指定します. そのサイトで未使用のパスとしてください. IplassWamAuthCallbackPath /wamauthcallback # WAMモジュールとWAMプラグインモジュールでアクセストークンをやり取りするためのCookie名とパスを指定します. IplassWamCookieName JSESSIONID IplassWamCookiePath / IplassSiteCookieName ipw IplassSiteCookiePath / # CSRFトークンをやり取りするためのCookie名を指定します. IplassCsrfTokenCookieName _csrft # WAMモジュールからのJSONレスポンスの文字コードを指定します. IplassCharset utf-8
iPLAssのUserエンティティを連携する
管理対象サイト側のプログラム言語で独自に認可処理を組み込んだり、ユーザー情報を利用したりしたい場合、次のように設定します。
この例では、独自に定義したリクエストヘッダーにWAMモジュールから返却されたユーザー情報が格納されるようになります。
IplassMapUserAttribute On IplassAttributeMap x-wam-user-id accountId IplassAttributeMap x-wam-user-name name
例えばPHPの場合、次のようなソースコードでUserエンティティ情報を取得可能です。
<?php
header("Content-Type: text/html; charset=UTF-8");
echo “get user data from WAM Headers. <br/>";
foreach (getallheaders() as $name => $value) {
echo “ '$name': '$value' <br/> ";
}
<br/>";
?>
Apacheの基本認証と統合する
以下は、Apacheの基本認証と統合する設定です。基本認証に成功した場合、WAM機能の認証処理をスキップできます。
IplassIntegrateBasicAuth On
localhostのiPLAssと連携する
以下は、管理対象サイトとiPLAssを同一サーバーで稼動させる環境の設定です。
IplassWamBaseUrl http://localhost:8080/mytenant/ IplassWamRedirectUrl https://mysite.example.com/myiplassapp/mytenant/ IplassWamCookieDomain RewriteRule ^/wamauthcallback(.*) /wamauthcallback$1 [L] (1) RewriteRule ^/contents/(.*) /contents/$1 [L] (1)
1 | ApacheからiPLAssのアプリケーションサーバーにプロキシしている環境では、コールバックのパスと認証対象のコンテンツのパスをプロキシしないようにリライトルールを定義します。 |
コンテンツにJavaScriptを追加する
以下は、指定したパスパターンにマッチするコンテンツの末尾に任意のJavaScriptを追加する設定です。
IplassJavaScriptPath "/iplasswam/jquery-1.11.0.min.js,/iplasswam/sitexhr2.js" (1) IplassJavaScriptSrc "iplass.wam.init({wamBaseUrl: \"https://my.iplass.jp/myiplassapp/mytenant/\", funcSignIn: addWamSignInNavi, funcSignOut: addWamSignOutNavi}); $(document).ready(function(){addCss();iplass.wam.addUserInfoContent();});" (2) IplassAddScriptTagPathPattern "/index.php" (3)
1 | script要素のsrc属性で読み込むJavaScriptファイルを指定します。 |
2 | JavaScriptを記述します。 |
3 | パスのパターンを指定します。 |
開発環境向けの設定
管理対象サイトのサーバーとiPLAssが稼働するサーバーの間にプロキシがある環境では、次のように設定します。
IplassProxyHost my.proxy.host IplassProxyPort 8080
iPLAssサーバーに自己署名のサーバー証明書を利用する場合、次のように設定します。
IplassSslVerifyPeer Off IplassSslVerifyHost Off
WAMプラグインモジュールのデバッグログを有効にする場合、次のように設定します。
合わせて、Apache本体のログレベルをdebugに指定してください。
IplassWamVerbose On IplassHttpVerbose On LogLevel debug
WAMシステムライブラリ
Apache版WAMプラグインモジュールの依存するライブラリは以下のとおりです。
ライブラリ | バージョン |
---|---|
Boost |
1.5.5 |
jsoncpp |
0.6.0 |
GMP |
5.1.2 |
GNU IDN |
1.18 |
zlib |
1.2.11 |
OpenSSL |
1.0.2.k |
libcurl |
7.34.0 |
APR |
1.5.2 |
APR-iconv |
1.2.1 |
APR-util |
1.5.4 |
以下、AmazonLinux環境/GCC4.8.2におけるシステムライブラリインストール手順を示します。
yum等、利用しているリポジトリマネージャに該当ライブラリが存在しない場合、参考にしてください。
-
ビルドツール
以下のyumコマンドにより、ビルド中に使用するツールをインストールしておきます。
# yum install gcc gcc-c++ autoconf automake # yum install unzip # yum install cmake # yum install bzip2 # yum install libtool # yum install dos2unix # yum install zip
以降、各ライブラリのビルド手順を示します。必要に応じて、prefixオプションで任意ディレクトリにインストールしてください。
-
Boost
# cd [your/build/work/dir] # tar zxf [your/scp/upload/path/to]/boost_1_55_0.tar.gz # cd boost_1_55_0 #./bootstrap.sh --prefix=/usr/local #./b2 install
-
jsoncpp
# unzip [your/scp/upload/path/to]/jsoncpp-master.zip # cd jsoncpp-master # mkdir build # cd build # cmake -DCMAKE_BUILD_TYPE=release -DJSONCPP_LIB_BUILD_SHARED=ON -DJSONCPP_WITH_TESTS=OFF -G "Unix Makefiles" .. # make # mkdir /usr/local # cd .. # cp -r include/ /usr/local # cp -r build/lib/ /usr/local
-
GMP
# bzip2 -dc [your/scp/upload/path/to]/gmp-5.1.2.tar.bz2 | tar xf - # cd gmp-5.1.2 #./configure --prefix=/usr/local # make # make install
-
GNU IDN
# tar zxf [your/scp/upload/path/to]/libidn-1.18.tar.gz # cd libidn-1.18 #./configure --prefix=/usr/local # make # make install
-
zlib
# tar zxf [your/scp/upload/path/to]/zlib-1.2.11.tar.gz # cd zlib-1.2.11/ #./configure --prefix=/usr/local # make # make install
-
OpenSSL
# tar zxf [your/scp/upload/path/to]/openssl-1.0.2k.tar.gz # cd openssl-1.0.2k #./config --prefix=/usr/local threads shared zlib-dynamic # vi Makefile ZLIB_INCLUDE= →ZLIB_INCLUDE= -I/mnt/ebs/opt/wam/local/zlib/include # make # make -W install_docs install
-
libcurl
# tar zxf [your/scp/upload/path/to]/curl-7.34.0.tar.gz # cd curl-7.34.0/ # export LD_LIBRARY_PATH=/usr/local /lib (LD_LIBRARY_PATHにopenssl、zlib、libidnのlib/のパスを含めます) # CPPFLAGS="-I/usr/local/include" \ LDFLAGS="-L/usr/local/lib" \ ./configure --prefix=/usr/local (openssl、zlib、libidnの各include/パスを-Iオプション、各lib/のパスを-Lオプションで1つずつ指定します。) # make # make install
libcurlでは、利用する機能によってはzlib、OpenSSLなど他のライブラリが 必要な場合があります。configureの出力で、各機能の有効無効を示す表示を確認することができます。 上記手順では、SSL support、zlib support、IDN supportが enabled となることを確認してください。 |
-
APR
# tar zxf [your/scp/upload/path/to]/apr-1.5.2.tar.gz # cd apr-1.5.2 #./configure --prefix=/usr/local # make # make install
configure実行時、rm: cannot remove 'libtoolT': No such file or directory と出力された場合がありますが、WAMモジュール利用には影響ありません。無視して進めてください。 |
-
APR-iconv
# tar zxf [your/scp/upload/path/to]/apr-iconv-1.2.1.tar.gz # cd apr-iconv-1.2.1 #./configure --prefix=/usr/local --with-apr=/usr/local # make # make install
-
APR-util
# tar zxf [your/scp/upload/path/to]/apr-util-1.5.4.tar.gz # cd apr-util-1.5.4 #./configure --prefix=/usr/local --with-apr=/usr/local --with-apr-iconv=../apr-iconv-1.2.1 (--with-apr-iconvオプションではapr-iconvのソースコードパスを指定します) # make # make install
Windows環境でのCurlライブラリは、OpenSSL/1.0.2k、zlib/1.2.11、libidn/1.18、libssh2/1.4.3、librtmp/2.3に 依存しており、これらはApache実行環境に含まれている必要があります。 OpenSSLはlibeay32, ssleay32 (Linuxでのライブラリ名はlibssl、libcrypto)に依存していますが、 Apache2.4にビルトインされているため特に何か作業をする必要はありません。 |