Interstage Application Server シングル・サインオン運用ガイド
目次 索引 前ページ次ページ

第2章 環境構築(SSO管理者編)> 2.3 リポジトリサーバの構築> 2.3.2 SSOリポジトリへのユーザ情報、ロール定義の登録

2.3.2.2 CSVデータファイルを使用する場合

 システム導入時などに、人事データベースで管理している大量のユーザ情報をSSOリポジトリに追加する場合は、人事データベースから抽出したCSVデータファイルを使用して、一括してSSOリポジトリにエントリを追加することができます。また、運用開始後の人事異動や新人社員の入社などにより、ユーザ情報の定期的な更新や追加が必要な場合は、更新が必要な差分情報だけ抽出したCSVデータファイルを使用して、SSOリポジトリに追加することができます。

 Interstage シングル・サインオンが提供するサンプルのCSVデータファイルを例に、CSVデータファイルを使用したユーザ情報、およびロール定義の登録方法について説明します。

 CSVデータファイルを使用してエントリを登録する手順を以下に示します。CSV形式については、“Smart Repository運用ガイド”を参照してください。

 CSVデータファイルからのロールの登録はirepaddroleコマンド、ユーザ情報の登録はirepmodifyentコマンドを実行することにより行います。コマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“Smart Repository運用コマンド”を参照してください。
 なお、CSVデータファイルを使用して、情報の削除、および更新も行うことができます。情報の削除、および更新方法については、“Smart Repository運用ガイド”を参照してください。


 CSVファイルにはパスワードが含まれます。CSVファイルを使用する際にはパスワードアタックへの対策を考慮し、取り扱いには十分注意してください。
 パスワードアタックへの対策については、“セキュリティシステム運用ガイド”の“セキュリティ侵害の脅威”−“Interstage シングル・サインオン”−“セキュリティ対策”を参照してください。

 CSVデータファイルを使用してエントリを追加する手順を以下に示します。

  1. 人事データベースからのCSV形式のデータの抽出
  2. ルールファイルの作成
  3. ロール定義移入コマンドの実行
  4. ユーザ情報移入コマンドの実行

 Interstage シングル・サインオンが提供しているサンプルファイルを以下に示します。

サンプルのファイル名と格納先

 エントリ追加用CSVファイルのサンプル
 sample_add.csv
 ルールファイルのサンプル
 ・sample_rule_euc.xml
   EUCコードで記述されています。
 ・sample_rule_sjis.xml
   シフトJISコードで記述されています。
 ・sample_rule_utf8.xml
   UTF-8コードで記述されています。
 サンプルの格納先

 C:\Interstage\F3FMsso\ssoatcsv\sample\csv

 /opt/FJSVssosv/sample/csv

(1)人事データベースからのCSV形式のデータの抽出

 データベースの機能を利用して、人事データベースからユーザ情報をCSV形式のデータで抽出します。ユーザ情報として以下の情報をデータベースから取り出します。

項目

1列目

姓名

2列目

3列目

4列目

ユーザID

5列目

パスワード

6列目

従業員番号

7列目

メールアドレス

8列目

ロール名

 上記データに対応したCSV形式のデータは以下のようになります。

Fujitsu Tarou,Fujitsu,Tarou,tarou,tarou,100001,tarou@jp.fujitsu.com,Admin
Fujitsu Hanako,Fujitsu,Hanako,hanako,hanako,100002,hanako@jp.fujitsu.com,Admin
Fujitsu Jirou,Fujitsu,Jirou,jirou,jirou,100003,jirou@jp.fujitsu.com,Leader
Fujitsu Junko,Fujitsu,Junko,junko,junko,100004,junko@jp.fujitsu.com,Leader
Fujitsu Saburou,Fujitsu,Saburou,saburou,saburou,100005,saburou@jp.fujitsu.com,General
Fujitsu Kyouko,Fujitsu,Kyouko,kyouko,kyouko,100006,kyouko@jp.fujitsu.com,General

(2) ルールファイルの作成

 CSV形式のデータをSSOリポジトリに登録するためには、CSV形式のデータとSSOリポジトリの情報を関連付ける必要があります。両者を関連付けるためにルールファイルを作成し、マッピングルールを設定します。マッピングルールの詳細については“Smart Repository運用ガイド”を参照してください。
 なお、Interstage シングル・サインオンの運用環境に合わせて変更できるエントリ属性については、“ロール定義のエントリ”、および“ユーザ情報のエントリ”を参照してください。

■CSV形式とユーザ情報のエントリの属性との関連付け

 CSV形式のデータとユーザエントリの属性を以下のように関連付けてSSOリポジトリに登録します。

項目

ユーザ情報のエントリの属性

1列目

姓名

cn

2列目

sn

3列目

givenName

4列目

ユーザID

uid

5列目

パスワード

userPassword

6列目

従業員番号

employeeNumber

7列目

メールアドレス

mail

8列目

ロール名

ssoRoleName

■CSV形式のデータ

 CSV形式のデータは0列目にSSOリポジトリに対する操作を設定します。

ADD,Fujitsu Tarou,Fujitsu,Tarou,tarou,tarou,100001,tarou@jp.fujitsu.com,Admin
ADD,Fujitsu Hanako,Fujitsu,Hanako,hanako,hanako,100002,hanako@jp.fujitsu.com,Admin
ADD,Fujitsu Jirou,Fujitsu,Jirou,jirou,jirou,100003,jirou@jp.fujitsu.com,Leader
ADD,Fujitsu Junko,Fujitsu,Junko,junko,junko,100004,junko@jp.fujitsu.com,Leader
ADD,Fujitsu Saburou,Fujitsu,Saburou,saburou,saburou,100005,saburou@jp.fujitsu.com,General
ADD,Fujitsu Kyouko,Fujitsu,Kyouko,kyouko,kyouko,100006,kyouko@jp.fujitsu.com,General

■ルールファイル

 上記のCSV形式のデータとユーザ情報のエントリ属性を関連付けするルールファイルは以下のようになります。このルールファイルの例では、次の設定をしています。

ルール名
sso rule
公開ディレクトリ
ou=User,ou=interstage,o=fujitsu,dc=com
利用者を一意に特定するエントリの属性
uid
操作
ADD(追加)
CSVデータから設定する属性
cn、sn、givenName、uid、userPassword、employeeNumber、mail、ssoRoleName
固定で設定する属性
ssoAuthType、ssoCredentialTTL、ssoNotBefore
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 修正禁止↓ -->
<!DOCTYPE Csv2Directory [
<!ELEMENT Rule (name, baseDn, midDn?, Rdn+, DnChange?, objectClass+, attributeSeparator?, unique*, CSV, fixed?)>
<!ELEMENT CSV (ldapop?, Attribute)>
<!ELEMENT ldapop (op?, ldapadd?, ldapdelete?, ldapmodify?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT baseDn (#PCDATA)>
<!ELEMENT Rdn (#PCDATA)>
<!ELEMENT objectClass (#PCDATA)>
<!ELEMENT attributeSeparator (#PCDATA)>
<!ELEMENT op (#PCDATA)>
<!ELEMENT ldapadd (#PCDATA)>
<!ELEMENT ldapdelete (#PCDATA)>
<!ELEMENT ldapmodify (#PCDATA)>
]>
<!-- 修正禁止↑ -->
<Csv2Directory>
        <Rule>
                <name>sso rule</name>
<!-- baseDn を定義します(必須) -->
                <baseDn>ou=User,ou=interstage,o=fujitsu,dc=com</baseDn>
<!-- baseDn の前に追加するものを定義します(任意) -->
<!-- SSO の場合不要
                <midDn>ou=8,ou=9,ou=10</midDn>
-->
<!-- RDN を定義します(必須:複数可能:重複不可) -->
<!-- 番号か属性名のいずれかで、一意になるものをいれてください -->
                <Rdn>cn</Rdn>
<!-- DN の変更を移動とみなすか(任意) -->
<!-- みなす場合 1 を指定してください -->
                <DnChange>1</DnChange>
<!-- objectClass を定義します -->
                <objectClass>top</objectClass>
                <objectClass>person</objectClass>
                <objectClass>organizationalPerson</objectClass>
                <objectClass>inetOrgPerson</objectClass>
                <objectClass>ssoUser</objectClass>
<!-- 属性値が複数のCSV項目から作成する場合の区切りの文字(任意) -->
<!-- 指定しない場合は空白1文字です。 -->
<!-- 空白文字は指定できません。-->
                <attributeSeparator>-</attributeSeparator>
<!-- baseDnの下で、重複を許可しない属性を指定してください -->
<!-- 番号か属性名のいずれかで、一意になるものをいれてください -->
<!-- (任意:複数可能:重複不可)-->
                <unique>uid</unique>
                <CSV>
                        <!-- CSVの何番目の項目が、処理(追加、削除、変更)を示すか(任意) -->
                        <ldapop>
                                <op>0</op>
                                <ldapadd>ADD</ldapadd>
                                <ldapdelete>DEL</ldapdelete>
                                <ldapmodify>MOD</ldapmodify>
                                <ldapmove>MOV</ldapmove>
                        </ldapop>
<!-- CSVの各項目とディレクトリの属性の対応づけ(任意) -->
                        <Attribute>
                                <cn>1</cn>
                                <sn>2</sn>
                                <givenName>3</givenName>
                                <uid>4</uid>
                                <userPassword>5</userPassword>
                                <employeeNumber>6</employeeNumber>
                                <mail>7</mail>
                                <ssoRoleName>8</ssoRoleName>
                        </Attribute>
                </CSV>
<!-- 固定値で設定するものを定義します(任意) -->
                <fixed>
                        <ssoAuthType>basicAuthOrCertAuth</ssoAuthType>
                        <ssoCredentialTTL>60</ssoCredentialTTL>
                        <ssoNotBefore>20010101090000+0900</ssoNotBefore>
                </fixed>
        </Rule>
</Csv2Directory>

(3)ロール定義移入コマンドの実行

 リポジトリサーバを構築するマシンで、Smart Repositoryが提供しているirepaddroleコマンドを実行し、マッピングルールに従いエントリデータを追加します。
 irepaddroleコマンド実行後は、エントリ情報の取り出しなどを行い、エントリデータが正しく追加されているか確認してください。エントリの操作方法については “Smart Repository運用ガイド”の“エントリの管理”を参照してください。



 管理者用DN、およびBindパスワードには、Interstage管理コンソールを使用して、[システム] > [サービス] > [リポジトリ]からSSOリポジトリを作成した時に設定した管理者用DN、および管理者用DNのパスワードを指定してください。以下の例では、SSOリポジトリのポート番号に389、管理者用DNに“cn=manager,ou=interstage,o=fujitsu,dc=com”を指定しています。
 管理者用DN “cn=manager,ou=interstage,o=fujitsu,dc=com”
 ルールファイル C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_rule_utf8.xml
 csvファイル  C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_add.csv
 ロール定義登録先 ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com
 Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。

C:\>irepaddrole -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_rule_utf8.xml -i C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_add.csv -b "ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com"
Enter Bind password:
IREP: 情報: irep13570: エントリ cn=Admin,ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com を追加しました
IREP: 情報: irep13570: エントリ cn=Leader,ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com を追加しました
IREP: 情報: irep13570: エントリ cn=General,ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com を追加しました
C:\>


 管理者用DN、およびBindパスワードには、Interstage管理コンソールを使用して、[システム] > [サービス] > [リポジトリ]からSSOリポジトリを作成した時に設定した管理者用DN、および管理者用DNのパスワードを指定してください。以下の例では、SSOリポジトリのポート番号に389、管理者用DNに“cn=manager,ou=interstage,o=fujitsu,dc=com”を指定しています。
 管理者用DN “cn=manager,ou=interstage,o=fujitsu,dc=com”
 ルールファイル /opt/FJSVssosv/sample/csv/sample_rule_utf8.xml
 csvファイル  /opt/FJSVssosv/sample/csv/sample_add.csv
 ロール定義登録先 ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com
 Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。

# irepaddrole -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r /opt/FJSVssosv/sample/csv/sample_rule_utf8.xml -i /opt/FJSVssosv/sample/csv/sample_add.csv -b "ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com"
Enter Bind password:
UX:IREP: 情報: irep13570: エントリ cn=Admin,ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com を追加しました
UX:IREP: 情報: irep13570: エントリ cn=Leader,ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com を追加しました
UX:IREP: 情報: irep13570: エントリ cn=General,ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com を追加しました
#


 管理者用DNのパスワードについては、パスワードアタックへの対策を考慮し、取り扱いには十分注意してください。
 パスワードアタックへの対策については、“セキュリティシステム運用ガイド”の“セキュリティ侵害の脅威”−“Interstage シングル・サインオン”−“セキュリティ対策”を参照してください。

(4)ユーザ情報移入コマンドの実行

 リポジトリサーバを構築するマシンで、Smart Repositoryが提供しているirepmodifyentコマンドを実行し、マッピングルールに従いエントリデータを追加します。
 irepmodifyentコマンド実行後は、エントリ情報の取り出しなどを行い、エントリデータが正しく追加されているか確認してください。エントリの操作方法については “Smart Repository運用ガイド”の“エントリの管理”を参照してください。



 管理者用DN、およびBindパスワードには、Interstage管理コンソールを使用して、[システム] > [サービス] > [リポジトリ]からSSOリポジトリを作成した時に設定した管理者用DN、および管理者用DNのパスワードを指定してください。以下の例では、SSOリポジトリのポート番号に389、管理者用DNに“cn=manager,ou=interstage,o=fujitsu,dc=com”を指定しています。
 管理者用DN   “cn=manager,ou=interstage,o=fujitsu,dc=com”
 ルールファイル C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_rule_utf8.xml
 csvファイル  C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_add.csv
 Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。

C:\>irepmodifyent -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_rule_utf8.xml -i C:\Interstage\F3FMsso\ssoatcsv\sample\csv\sample_add.csv
Enter Bind password:
IREP: 情報: irep13570: エントリ cn=Fujitsu Tarou,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
IREP: 情報: irep13570: エントリ cn=Fujitsu Hanako,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
IREP: 情報: irep13570: エントリ cn=Fujitsu Jirou,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
IREP: 情報: irep13570: エントリ cn=Fujitsu Junko,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
IREP: 情報: irep13570: エントリ cn=Fujitsu Saburou,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
IREP: 情報: irep13570: エントリ cn=Fujitsu Kyouko,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
C:\>


 管理者用DN、およびBindパスワードには、Interstage管理コンソールを使用して、[システム] > [サービス] > [リポジトリ]からSSOリポジトリを作成した時に設定した管理者用DN、および管理者用DNのパスワードを指定してください。以下の例では、SSOリポジトリのポート番号に389、管理者用DNに“cn=manager,ou=interstage,o=fujitsu,dc=com”を指定しています。
 管理者用DN   “cn=manager,ou=interstage,o=fujitsu,dc=com”
 ルールファイル /opt/FJSVssosv/sample/csv/sample_rule_utf8.xml
 csvファイル  /opt/FJSVssosv/sample/csv/sample_add.csv
 Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。

# irepmodifyent -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r /opt/FJSVssosv/sample/csv/sample_rule_utf8.xml -i /opt/FJSVssosv/sample/csv/sample_add.csv
Enter Bind password:
UX:IREP: 情報: irep13570: エントリ cn=Fujitsu Hanako,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
UX:IREP: 情報: irep13570: エントリ cn=Fujitsu Jirou,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
UX:IREP: 情報: irep13570: エントリ cn=Fujitsu Junko,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
UX:IREP: 情報: irep13570: エントリ cn=Fujitsu Saburou,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
UX:IREP: 情報: irep13570: エントリ cn=Fujitsu Kyouko,ou=User,ou=interstage,o=fujitsu,dc=com を追加しました
#


 管理者用DNのパスワードについては、パスワードアタックへの対策を考慮し、取り扱いには十分注意してください。
 パスワードアタックへの対策については、“セキュリティシステム運用ガイド”の“セキュリティ侵害の脅威”−“Interstage シングル・サインオン”−“セキュリティ対策”を参照してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005