技術情報・ダウンロード

 お問い合わせ

株式会社セシオス

〒171-0022
東京都豊島区南池袋2-13-10 南池袋山本ビル 3F
TEL : 03-6265-0448

フォームからのお問い合わせ

Secioss Identity Suite Cloud Edition SPによるSAML認証とID連携

Secioss Identity Suite Cloud Edition SP(以降Identity Suite Cloud)は、SeciossLinkとSAML未対応のシステムとの間でシングルサインオンやID同期を行うためのソフトウェアです。

Identity Suite Cloudは、オープンソースとしてGPLライセンスにより公開しています。

1. インストール

Identity Suite Cloudの推奨環境は以下になります。

今回のインストール環境としては、LinuxのCentOS 5を想定しています。rpmのリポジトリにEPEL5を追加して下さい。

Windowsサーバへのインストールについては、「Secioss Identity Suite Cloud Edition SP Windows環境への導入」をご覧ください。

1.1 必要なソフトウェアのインストール

# yum install perl-XML-LibXML
# yum install perl-XML-Simple
# yum install perl-TimeDate
# yum install perl-Class-Inspector
# yum isntall perl-Text-CSV_XS
# yum install php-pear
# yum install php-xml
# yum install php-soap
# yum install xorg-x11-server-Xvfb
# yum install firefox

1.2 Identity Suite Cloud

http://sourceforge.jp/projects/secioss-auth/releases/からsecioss-idsuite-cloud-sp-3.3.x.tgzをダウンロードして下さい。

secioss-idsuite-cloud-spパッケージをインストールします。
# unzip secioss-idsuite-cloud-sp-3.3.x.zip
# cd secioss-idsuite-cloud-sp-3.3.x
# cp -r opt /
# rpm -Uvh rpm/ruby-2.0.0-p481-1.x86_64.rpm # OSが64bitの場合
# gem isntall selenium-webdriver
# gem install fuubar

1.3 ログの設定

シングルサインオンとID同期のログは、それぞれsyslogのlocal5、local4に出力します。 /etc/syslog.confに以下の設定を追記して、syslogデーモンを再起動して下さい。

local5.*           -/var/log/auth.log
local4.*           -/var/log/lism.log

2. シングルサインオン

2.1 エージェント型

シングルサインオンを行うシステムのサーバ上にIdentity Suite Cloudを導入する方式です。
シングルサインオンを行うシステム毎にIdentity Suite Cloudをインストールする必要がありますが、リバースプロキシサーバを別途用意する必要がありません。

2.1.1 事前準備

代理認証の設定に必要なシステムにログインする際の通信データを取得します。

Firefoxに”Live HTTP Headers”をインストールしてから起動し、シングルサインオン対象のシステムにログインを行って下さい。
取得した通信データは、Live HTTP Headersの”すべてを保存”ボタンを押下して、ファイルに出力して下さい。

事前準備
2.1.2 Identity Suite Cloudの設定

シングルサインオンの設定を行うには、以下のスクリプトを実行して下さい。
# ./config.sh sso

スクリプトを実行すると、カレントディレクトリにSAMLのメターデータ”metadata.xml”が生成されます。”metadata.xml”は、”2.1.3 SeciossLinkの設定”で必要になります。

次にSAML認証用の秘密鍵と公開鍵を作成します。 以下はOpenSSLによる秘密鍵と公開鍵の作成手順です。

秘密鍵を作成します。

# cd /etc/pki/tls/certs
# make test.key

秘密鍵からパスワードを削除します。

# openssl rsa -in test.key -out test.key

公開鍵を作成します。

# make test.crt
Country Name (2 letter code) [GB]:JP← 国名
State or Province Name (full name) [Berkshire]:Tokyo← 都道府県名
Locality Name (eg, city) [Newbury]:Bunkyo← 市区町村名
Organization Name (eg, company) [My Company Ltd]:TEST, Inc← 会社名
Organizational Unit Name (eg, section) []:← 空
ENTER Common Name (eg, your name or your server’s hostname) []:sp.test.co.jp← ホスト名
Email Address []:admin@test.co.jp← 管理者メールアドレス

作成した公開鍵は、”/opt/secioss/share/simplesamlphp/cert/PublicKey.pem”にコピーして下さい。

秘密鍵は、”/opt/secioss/share/simplesamlphp/cert/PrivateKey.pem”にコピーして、所有者をapacheに設定して下さい。
# chown apache /opt/secioss/share/simplesamlphp/cert/PrivateKey.pem

最後にApacheを再起動して下さい。

# /etc/init.d/httpd restart

2.1.3 SeciossLinkの設定

SeciossLinkの管理画面(https://slink.secioss.com/tenantadmin/、開発環境を使用している場合は、https://slinkdev.secioss.net/tenantadmin/)にアクセスして、管理者アカウントでログインします。
画面上部の”シングルサインオン”をクリックしから、左側メニューの”SAML サービスプロバイダ”をクリックして下さい。
”新規登録”をクリックして、SPの設定を登録します。
”2.1.2 Identity Suite Cloudの設定”で生成されたメタデータ”metadata.xml”を読み込んでから、各項目に値を設定して下さい。

sp1

2.2リバースプロキシサーバ型

Identity Suite Cloudを導入したリバースプロキシサーバを構築し、シングルサインオンを行う各システムにはリバースプロキシサーバ経由でアクセスを行う方式です。
シングルサインオンを行うシステム毎にIdentity Suite Cloudをインストールする必要がなく、各システムへのシングルサインオン設定をSeciossLinkの管理画面から行うことができます。

2.2.1 Identity Suite Cloudの設定

シングルサインオンの設定を行うには、以下のスクリプトを実行して下さい。
# ./config.sh rp-dl setup

次にSAML認証用の秘密鍵と公開鍵を作成します。 以下はOpenSSLによる秘密鍵と公開鍵の作成手順です。

秘密鍵を作成します。

# cd /etc/pki/tls/certs
# make test.key

秘密鍵からパスワードを削除します。

# openssl rsa -in test.key -out test.key

公開鍵を作成します。

# make test.crt
Country Name (2 letter code) [GB]:JP← 国名
State or Province Name (full name) [Berkshire]:Tokyo← 都道府県名
Locality Name (eg, city) [Newbury]:Bunkyo← 市区町村名
Organization Name (eg, company) [My Company Ltd]:TEST, Inc← 会社名
Organizational Unit Name (eg, section) []:← 空
ENTER Common Name (eg, your name or your server’s hostname) []:sp.test.co.jp← ホスト名
Email Address []:admin@test.co.jp← 管理者メールアドレス

作成した公開鍵は、”/opt/secioss/share/simplesamlphp/cert/PublicKey.pem”にコピーして下さい。

秘密鍵は、”/opt/secioss/share/simplesamlphp/cert/PrivateKey.pem”にコピーして、所有者をapacheに設定して下さい。
# chown apache /opt/secioss/share/simplesamlphp/cert/PrivateKey.pem

最後にSeciossLinkで行ったシングルサインオンの設定を反映する以下のスクリプトをcronに登録して下さい。すぐに設定を反映させたい場合は以下のスクリプトを直接実行して下さい。
/opt/secioss/sbin/updaterpconf.sh

2.2.2 SeciossLinkの設定

SeciossLinkの管理画面(https://slink.secioss.com/tenantadmin/、開発環境を使用している場合は、https://slinkdev.secioss.net/tenantadmin/)にアクセスして、管理者アカウントでログインします。
画面上部の”システム”をクリックしから、左側メニューの”テナント情報”をクリックして下さい。
”リバースプロキシサーバのホスト名”にリバースプロキシサーバのホスト名、IPアドレス(グローバルアドレス、カンマ区切りで複数登録可能)と”2.2.1 Identity Suite Cloudの設定”で作成した公開鍵を登録して下さい。

 rproxy1

次にシングルサインオンを行うシステム(アプリケーション)の設定を行います。
画面上部の”シングルサインオン”をクリックしから、左側メニューの”リバースプロキシ”をクリックして下さい。
”新規登録”をクリックして、アプリケーションの設定を登録します。

 rproxy1

3. ID同期

ID同期を行うには、対象のシステムにCSVファイルからユーザをインポートする機能が必要です。

3.1 事前準備

CSVファイルをシステムにインポートするためのシナリオファイルを作成します。
Firefoxに”Selenium IDE”をインストールしてから起動し、システムにログインしてCSVのインポートを行って下さい。

Selenium IDEの”ファイル”->”テストケースをエクスポート”->”Ruby / RSpec / WebDriver”から、シナリオファイルを生成します。
シナリオファイル内のインポートしたファイルの名前を”/opt/secioss/var/lib/csv/user.csv”に変更し、”${receiver}”という箇所がある場合は”@driver”に全て置き換えて下さい。シナリオファイルは、”/opt/secioss/etc/importCSV.rb”というファイル名で配置して下さい。

次に、seleniumをコマンドラインから実行できるようにするため、Xvfbを起動して下さい。
# Xvfb :10 -screen 0 1024x768x24 -ac &

次に、システムにインポートするCSVファイルのフォーマットを、以下の例のようにデータ項目を順番に記述して、”/opt/secioss/etc/header.csv”として保存して下さい。header.csvの文字コードはBOM無のUTF-8にして下さい。

ユーザID,姓,名,パスワード,メールアドレス,...

設定できるデータ項目は以下になります。

3.2 Identity Suite Cloudの設定

Identity Suite Cloudは、定期的にSeciosLinkから更新データを取得し、更新データをCSVファイルにしてシステムにインポートします。

最初に、以下のスクリプトを実行して下さい。

# ./config.sh idm

4. 動作確認

4.1 シングルサインオンの確認
4.1.1 エージェント型

Identity Suite Cloudの代理認証機能が正常に動作するか確認します。
“<アプリケーションのURL>/sso/altest.php?sso_app=sp&user=<ユーザID>&pass=<パスワード>”にアクセスして、システムにログインできることを確認して下さい。
ログインできない場合は”5.1 代理認証”を参考に、”/opt/secioss/var/www/conf/sp.ini”の設定を調整して下さい。

代理認証が正常に動作することを確認したら、”<アプリケーションのURL>/sso/autologin.php?sso_app=sp”にアクセスして、シングルサインオンすることを確認して下さい。

4.1.2 リバースプロキシ型

SSOポータル(https://slink.secioss.com/user/?tenant=<テナントID>)にアクセスし、アプリケーションのアイコンをクリックして、シングルサインオンできることを確認して下さい。

4.2 ID同期の確認

seleniumのシナリオファイルが正常に動作するか確認します。
Identity Suite Cloudを導入したサーバにX Windowのログイン画面からログインして下さい。
以下のコマンドを実行して、seleniumのシナリオファイルが正常に動作するか確認して下さい。
# /opt/secioss/sbin/idsync.sh

インポートされたデータは以下のCSVファイルとして出力されます。
/opt/secioss/var/lib/csv/user-<日時>.csv.finished

再度、同じCSVファイルのインポートを実行したい場合は、user-<日時>.csv.finishedをuser-<日時>.csvにリネームしてから、idsync.shを実行して下さい。

正常にID同期が行われることを確認できたら、cronに1時間に1回 “/opt/secioss/sbin/idsync.sh”を実行するように設定して下さい。

5. 設定項目

5.1 代理認証
url login ログインするアプリケーションのURL
back ログイン後に表示する画面のURL
fatal エラー発生時に表示する画面のURL
password アプリケーションにPOSTするパスワードが存在しない、まはた間違っている場合に表示する画面のURL
postName username ログイン時にPOSTするユーザ名の変数名
password ログイン時にPOSTするパスワードの変数名
content check アプリケーションから返されたコンテンツが指定した正規表現に一致した場合、認証成功と判断します。
authfail アプリケーションから返されたコンテンツが指定した正規表現に一致した場合、認証失敗と判断します。このとき、passwordで指定したURLにリダイレクトします。

6. 設定例

6.1 エージェント型 Aipo 7

[url]
login = “http://sp.example.com/aipo/”
back = “http://sp.example.com/aipo/”
fatal = “http://sp.example.com/aipo/”
password = “http://sp.example.com/aipo/”

[postName]
username = username
password = password

ファイルをダウンロード

ユーザID,パスワード,姓,名,姓(かな),名(かな),メールアドレス,電話番号,,携帯電話番号,,部署,役職