Active Directoryで管理しているユーザ情報の任意の属性値をInterstage シングル・サインオンのロール定義と関連付けてSSOリポジトリに登録します。
以下は、Active Directoryに登録されているユーザーのエントリ“Fujitsu Tarou”が属するグループ名“第一開発部”を、SSOリポジトリのロール定義“第一開発部”と関連付けて新規に登録している例です。
なお、すでにSSOリポジトリに登録されているロール定義に関連付けることも可能です。
Interstage シングル・サインオンでは、サンプルのCSVデータファイルを提供しており、CSVデータファイルを使用することでロール定義を登録することができます。
Interstage シングル・サインオンが提供しているサンプルファイルを以下に示します。
sample_ad_role_mapping_add_ja.csv
sample_ad_role_mapping_add_en.csv
sample_ad_role_mapping_rule.xml
UTF-8コードで記述されています。
sample_ad_roleset_mapping_add_ja.csv
sample_ad_roleset_mapping_add_en.csv
sample_ad_roleset_mapping_rule.xml
UTF-8コードで記述されています。
C:\Interstage\F3FMsso\ssoatcsv\sample\OtherDirectory\ad
/opt/FJSVssosv/sample/OtherDirectory/ad
CSVデータファイルを使用してロール定義を登録する場合は、irepmodifyentコマンドを実行することにより行います。コマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“ディレクトリサービス運用コマンド”を参照してください。
CSVデータファイルを使用して、情報の削除、および更新も行うことができます。情報の削除、および更新方法については、“ディレクトリサービス運用ガイド”を参照してください。
Interstage シングル・サインオンが提供するサンプルのCSVデータファイルを例に、CSVデータファイルを使用してロール定義を登録する手順を説明します。
以下は、Active Directoryで管理しているユーザが属するgroupの値を、ロール定義として新規に登録する例です。なお、group以外をロール定義として登録することも可能です。
Active Directoryで管理しているユーザが属するgroupの値をロール定義として登録する時には、リポジトリサーバの構築時に、[Active Directoryの設定]の[ロールに使用する属性名]に“memberOf”を設定します。
グループ一覧の取得
LDAP通信にてActive Directoryからグループ一覧を取得します。
Active Directoryでプライマリ グループに設定したグループは、所属するグループ(LDAP通信で取得する属性名は“memberOf”)としてLDAP通信で取得できません。ロール/ロールセットと関連付けるグループは、プライマリ グループに設定しないでください。
リポジトリサーバを運用するマシンにおいて、ldapsearchコマンドを使用してgroupに属する以下の属性を取得する例を示します。Active Directoryが運用されているマシンのホスト名を“ADserver.fujitsu.com” 、Active Directoryのドメイン名を“ad.local”としています。
・cn
・distinguishedName
・memberOf
C:\> C:\Interstage\bin\ldapsearch -h ADserver.fujitsu.com -p 389 -D "CN=Administrator,CN=Users,DC=ad,DC=local" -w password -b "DC=ad,DC=local" "objectClass=group" cn distinguishedName memberOf dn: CN=開発部門,CN=Builtin,DC=ad,DC=local cn: 開発部門 distinguishedName: CN=開発部門,CN=Builtin,DC=ad,DC=local memberOf: CN=第三開発部,CN=Users,DC=ad,DC=local memberOf: CN=第二開発部,CN=Users,DC=ad,DC=local memberOf: CN=第一開発部,CN=Users,DC=ad,DC=local dn: CN=第一開発部,CN=Users,DC=ad,DC=local cn: 第一開発部 distinguishedName: CN=第一開発部,CN=Users,DC=ad,DC=local dn: CN=第二開発部,CN=Users,DC=ad,DC=local cn: 第二開発部 distinguishedName: CN=第二開発部,CN=Users,DC=ad,DC=local dn: CN=第三開発部,CN=Users,DC=ad,DC=local cn: 第三開発部 distinguishedName: CN=第三開発部,CN=Users,DC=ad,DC=local dn: CN=営業部門,CN=Builtin,DC=ad,DC=local cn: 営業部門 distinguishedName: CN=営業部門,CN=Builtin,DC=ad,DC=local memberOf: CN=第二営業部,CN=Users,DC=ad,DC=local memberOf: CN=第一営業部,CN=Users,DC=ad,DC=local dn: CN=第一営業部,CN=Users,DC=ad,DC=local cn: 第一営業部 distinguishedName: CN=第一営業部,CN=Users,DC=ad,DC=local dn: CN=第二営業部,CN=Users,DC=ad,DC=local cn: 第二営業部 distinguishedName: CN=第二営業部,CN=Users,DC=ad,DC=local dn: CN=総務部,CN=Users,DC=ad,DC=local cn: 総務部 distinguishedName: CN=総務部,CN=Users,DC=ad,DC=local |
リポジトリサーバを運用するマシンにおいて、ldapsearchコマンドを使用してgroupに属する以下の属性を取得する例を示します。Active Directoryが運用されているマシンのホスト名を“ADserver.fujitsu.com” 、Active Directoryのドメイン名を“ad.local”としています。
・cn
・distinguishedName
・memberOf
#/opt/FJSVirepc/bin/ldapsearch -h ADserver.fujitsu.com -p 389 -D "CN=Administrator,CN=Users,DC=ad,DC=local" -w password -b "DC=ad,DC=local" "objectClass=group" cn distinguishedName memberOf dn: CN=開発部門,CN=Builtin,DC=ad,DC=local cn: 開発部門 distinguishedName: CN=開発部門,CN=Builtin,DC=ad,DC=local memberOf: CN=第三開発部,CN=Users,DC=ad,DC=local memberOf: CN=第二開発部,CN=Users,DC=ad,DC=local memberOf: CN=第一開発部,CN=Users,DC=ad,DC=local dn: CN=第一開発部,CN=Users,DC=ad,DC=local cn: 第一開発部 distinguishedName: CN=第一開発部,CN=Users,DC=ad,DC=local dn: CN=第二開発部,CN=Users,DC=ad,DC=local cn: 第二開発部 distinguishedName: CN=第二開発部,CN=Users,DC=ad,DC=local dn: CN=第三開発部,CN=Users,DC=ad,DC=local cn: 第三開発部 distinguishedName: CN=第三開発部,CN=Users,DC=ad,DC=local dn: CN=営業部門,CN=Builtin,DC=ad,DC=local cn: 営業部門 distinguishedName: CN=営業部門,CN=Builtin,DC=ad,DC=local memberOf: CN=第二営業部,CN=Users,DC=ad,DC=local memberOf: CN=第一営業部,CN=Users,DC=ad,DC=local dn: CN=第一営業部,CN=Users,DC=ad,DC=local cn: 第一営業部 distinguishedName: CN=第一営業部,CN=Users,DC=ad,DC=local dn: CN=第二営業部,CN=Users,DC=ad,DC=local cn: 第二営業部 distinguishedName: CN=第二営業部,CN=Users,DC=ad,DC=local dn: CN=総務部,CN=Users,DC=ad,DC=local cn: 総務部 distinguishedName: CN=総務部,CN=Users,DC=ad,DC=local |
上記結果の場合、memberOf属性を含むグループはロールセットとして、memberOf属性を含まないグループはロールとして登録してください。
ロールの登録
以下の手順で、グループ一覧の取得で取り出したmemberOf属性を含まないグループを、ロールとして登録します。
グループ一覧の取得で取り出したmemberOf属性を含まないグループの情報を、以下のようなCSV形式のデータで抽出します。
列 | 項目 | 抽出内容 |
0列目 | SSOリポジトリに対する操作 | 追加する場合はADDを設定してください。(注1) |
1列目 | グループ | cnの値を設定してください。(注2) |
2列目 | ロール/ロールセットに使用する属性値 | distinguishedNameの値を設定してください。(注3)(注4) |
注1)詳細については、“ディレクトリサービス運用ガイド”を参照してください。
注2)すでにSSOリポジトリに登録されているロール定義に関連付ける場合は、関連付けたいロール定義のcnの値を設定してください。
注3)先頭に必ず“05:”を付加してください。“05:”を付加しない場合は、ロール/ロールセットに使用する属性値として扱いません。
注4)カンマ(,)を含む値を設定する場合は、ダブルクォーテーション(")を囲んで設定してください。
上記データに対応したCSV形式のデータは以下のようになります。
以下のmemberOf属性を含まないグループを設定しています。
cn: 第一開発部
cn: 第二開発部
cn: 第三開発部
cn: 第一営業部
cn: 第二営業部
cn: 総務部
ADD,第一開発部,"05:CN=第一開発部,CN=Users,DC=ad,DC=local" ADD,第二開発部,"05:CN=第二開発部,CN=Users,DC=ad,DC=local" ADD,第三開発部,"05:CN=第三開発部,CN=Users,DC=ad,DC=local" ADD,第一営業部,"05:CN=第一営業部,CN=Users,DC=ad,DC=local" ADD,第二営業部,"05:CN=第二営業部,CN=Users,DC=ad,DC=local" ADD,総務部,"05:CN=総務部,CN=Users,DC=ad,DC=local" |
CSV形式のデータとInterstage シングル・サインオンのロール定義を関連付けるためにルールファイルを作成します。
CSV形式のデータとロール定義のエントリの属性を以下のように関連付けます。
列 | 項目 | ロール定義のエントリの属性 |
0列目 | SSOリポジトリに対する操作 | - |
1列目 | グループ | cn |
2列目 | ロール/ロールセットに使用する属性値 | ssoSessionInfo |
上記のCSV形式のデータとロール定義を関連付けるルールファイルを例に説明します。
このルールファイルの例では、次の設定をしています。
sso ad role mapping rule
ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com
cn
ADD (追加)
cn、ssoSessionInfo
<?xml version="1.0" encoding="UTF-8" ?> <!-- Do not change it. --> <!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)> ]> <!-- Do not change it. --> <Csv2Directory> <Rule> <name>sso ad role mapping rule</name> <!-- baseDn is defined. (Required) --> <baseDn>ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com</baseDn> <!-- The one added in front of baseDn is defined. (Optional) --> <!-- It is unnecessary for SSO. <midDn>ou=3,ou=4,ou=5</midDn> --> <!-- RDN is defined. (Required : RDN can be specified in duplicate : Value of RDN cannot be specified in dupulicate) --> <!-- Specify the one which becomes unique by either of the number or the attribute name. --> <Rdn>cn</Rdn> <!-- Is the change of DN considered to be a movement? (Optional) --> <!-- Specify 1 when considering it. --> <DnChange>1</DnChange> <!-- objectClass is defined. --> <objectClass>top</objectClass> <objectClass>ssoRole</objectClass> <!-- Character of delimitation when attribute value is made from two or more CSV items (Optional) --> <!-- One blank character is used when not specifying it. --> <!-- Blank character cannot be specified. --> <attributeSeparator>-</attributeSeparator> <!-- Specify the attribute in which repetition is not permitted under baseDn. --> <!-- Specify the one which becomes unique by either of the number or the attribute name. --> <!-- (Optional : It can be specified in duplicate : Value of it cannot be specified in dupulicate) --> <unique>cn</unique> <CSV> <!-- Operation (Add, Delete, and Modify) to repository and Position in CSV (Optional) --> <!-- Which position of CSV define the operation (Add, Delete,and Modify). --> <ldapop> <op>0</op> <ldapadd>ADD</ldapadd> <ldapdelete>DEL</ldapdelete> <ldapmodify>MOD</ldapmodify> <ldapmove>MOV</ldapmove> </ldapop> <!-- Associating of every particular item of CSV and attribute of entry (Optional) --> <Attribute> <cn>1</cn> |
リポジトリサーバを構築するマシンで、Interstage ディレクトリサービスが提供しているirepmodifyentコマンドを実行し、関連付けするルールに従いエントリデータを追加します。
irepmodifyentコマンド実行後は、エントリ情報の取り出しなどを行い、エントリデータが正しく追加されているか確認してください。エントリの操作方法については“ディレクトリサービス運用ガイド”の“エントリの管理”を参照してください。
管理者用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\OtherDirectory\ad\sample_ad_role_mapping_rule.xml
csvファイル C:\Interstage\F3FMsso\ssoatcsv\sample\OtherDirectory\ad\sample_ad_role_mapping_add_ja.csv
Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。
C:\>irepmodifyent -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r C:\Interstage\F3FMsso\ssoatcsv\sample\OtherDirectory\ad\sample_ad_role_mapping_rule.xml -i C:\Interstage\F3FMsso\ssoatcsv\sample\OtherDirectory\ad\sample_ad_role_mapping_add_ja.csv |
管理者用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/OtherDirectory/ad/sample_ad_role_mapping_rule.xml
csvファイル /opt/FJSVssosv/sample/OtherDirectory/ad/sample_ad_role_mapping_add_ja.csv
Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。
# irepmodifyent -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r /opt/FJSVssosv/sample/OtherDirectory/ad/sample_ad_role_mapping_rule.xml -i /opt/FJSVssosv/sample/OtherDirectory/ad/sample_ad_role_mapping_add_ja.csv |
管理者用DNのパスワードについては、パスワードアタックへの対策を考慮し、取り扱いには十分注意してください。
パスワードアタックへの対策については、“セキュリティシステム運用ガイド”の“セキュリティ侵害の脅威”-“Interstage シングル・サインオン”-“セキュリティ対策”を参照してください。
ロールセットの登録
以下の手順で、グループ一覧の取得で取り出したmemberOf属性を含むグループを、ロールセットとして登録します。
グループ一覧の取得で取り出したmemberOf属性を含むグループの情報を、以下のようなCSV形式のデータで抽出します。
列 | 項目 | 抽出内容 |
0列目 | SSOリポジトリに対する操作 | 追加する場合はADDを設定してください。(注1) |
1列目 | グループ | cnの値を設定してください。(注2) |
2列目 | ロール/ロールセットに使用する属性値 | distinguishedNameの値を設定してください。(注3)(注4) |
3列目 | ロールセットの内容 | ロールの登録で登録したロール名(cnの値)を設定してください。(注5) |
4列目 | ||
5列目 |
注1)詳細については、“ディレクトリサービス運用ガイド”を参照してください。
注2)すでにSSOリポジトリに登録されているロール定義に関連付ける場合は、関連付けたいロール定義のcnの値を設定してください。
注3)先頭に必ず“05:”を付加してください。“05:”を付加しない場合は、ロール/ロールセットに使用する属性値として扱いません。
注4)カンマ(,)を含む値を設定する場合は、ダブルクォーテーション(")を囲んで設定してください。
注5)設定するロール名の数にあわせ、ロールセットの内容を記載する列を設定してください。
上記データに対応したCSV形式のデータは以下のようになります。
以下のmemberOf属性を含むグループに、memberOf属性の値がssoSessionInfoに関連付けられているロールを設定しています。
cn: 開発部門
memberOf: CN=第一開発部,CN=Users,DC=ad,DC=local
memberOf: CN=第二開発部,CN=Users,DC=ad,DC=local
memberOf: CN=第三開発部,CN=Users,DC=ad,DC=local
cn:営業部門
memberOf: CN=第一営業部,CN=Users,DC=ad,DC=local
memberOf: CN=第二営業部,CN=Users,DC=ad,DC=local
ADD,開発部門,"05:CN=開発部門,CN=Builtin,DC=ad,DC=local",第一開発部,第二開発部,第三開発部 ADD,営業部門,"05:CN=営業部門,CN=Builtin,DC=ad,DC=local",第一営業部,第二営業部 |
CSV形式のデータとInterstage シングル・サインオンのロール定義を関連付けるためにルールファイルを作成します。
CSV形式のデータとロール定義のエントリの属性を以下のように関連付けます。
列 | 項目 | ロール定義のエントリの属性 |
0列目 | SSOリポジトリに対する操作 | - |
1列目 | グループ | cn |
2列目 | ロール/ロールセットに使用する属性値 | ssoSessionInfo |
3列目 | ロールセットの内容 | ssoRoleName |
4列目 | ||
5列目 |
上記のCSV形式のデータとロール定義を関連付けるルールファイルを例に説明します。
このルールファイルの例では、次の設定をしています。
sso ad roleset mapping rule
ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com
cn
ADD (追加)
cn、ssoSessionInfo、ssoRoleName
<?xml version="1.0" encoding="UTF-8" ?> <!-- Do not change it. --> <!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)> ]> <!-- Do not change it. --> <Csv2Directory> <Rule> <name>sso ad roleset mapping rule</name> <!-- baseDn is defined. (Required) --> <baseDn>ou=Role,ou=SSO ACI,ou=interstage,o=fujitsu,dc=com</baseDn> <!-- The one added in front of baseDn is defined. (Optional) --> <!-- It is unnecessary for SSO. <midDn>ou=3,ou=4,ou=5</midDn> --> <!-- RDN is defined. (Required : RDN can be specified in duplicate : Value of RDN cannot be specified in dupulicate) --> <!-- Specify the one which becomes unique by either of the number or the attribute name. --> <Rdn>cn</Rdn> <!-- Is the change of DN considered to be a movement? (Optional) --> <!-- Specify 1 when considering it. --> <DnChange>1</DnChange> <!-- objectClass is defined. --> <objectClass>top</objectClass> <objectClass>ssoRoleSet</objectClass> <!-- Character of delimitation when attribute value is made from two or more CSV items (Optional) --> <!-- One blank character is used when not specifying it. --> <!-- Blank character cannot be specified. --> <attributeSeparator>-</attributeSeparator> <!-- Specify the attribute in which repetition is not permitted under baseDn. --> <!-- Specify the one which becomes unique by either of the number or the attribute name. --> <!-- (Optional : It can be specified in duplicate : Value of it cannot be specified in dupulicate) --> <unique>cn</unique> <CSV> <!-- Operation (Add, Delete, and Modify) to repository and Position in CSV (Optional) --> <!-- Which position of CSV define the operation (Add, Delete,and Modify). --> <ldapop> <op>0</op> <ldapadd>ADD</ldapadd> <ldapdelete>DEL</ldapdelete> <ldapmodify>MOD</ldapmodify> <ldapmove>MOV</ldapmove> </ldapop> <!-- Associating of every particular item of CSV and attribute of entry (Optional) --> <Attribute> <cn>1</cn> |
リポジトリサーバを構築するマシンで、Interstage ディレクトリサービスが提供しているirepmodifyentコマンドを実行し、関連付けするルールに従いエントリデータを追加します。
irepmodifyentコマンド実行後は、エントリ情報の取り出しなどを行い、エントリデータが正しく追加されているか確認してください。エントリの操作方法については“ディレクトリサービス運用ガイド”の“エントリの管理”を参照してください。
管理者用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\OtherDirectory\ad\sample_ad_roleset_mapping_rule.xml
csvファイル C:\Interstage\F3FMsso\ssoatcsv\sample\OtherDirectory\ad\sample_ad_roleset_mapping_add_ja.csv
Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。
C:\>irepmodifyent -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r C:\Interstage\F3FMsso\ssoatcsv\sample\OtherDirectory\ad\sample_ad_roleset_mapping_rule.xml -i C:\Interstage\F3FMsso\ssoatcsv\sample\OtherDirectory\ad\sample_ad_roleset_mapping_add_ja.csv |
管理者用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/OtherDirectory/ad/sample_ad_roleset_mapping_rule.xml
csvファイル /opt/FJSVssosv/sample/OtherDirectory/ad/sample_ad_roleset_mapping_add_ja.csv
Bindパスワードの入力を促されたら、管理者用DNのパスワードを入力してください。入力したパスワードは表示されません。
# irepmodifyent -h localhost -p 389 -D "cn=manager,ou=interstage,o=fujitsu,dc=com" -r /opt/FJSVssosv/sample/OtherDirectory/ad/sample_ad_roleset_mapping_rule.xml -i /opt/FJSVssosv/sample/OtherDirectory/ad/sample_ad_roleset_mapping_add_ja.csv |
管理者用DNのパスワードについては、パスワードアタックへの対策を考慮し、取り扱いには十分注意してください。
パスワードアタックへの対策については、“セキュリティシステム運用ガイド”の“セキュリティ侵害の脅威”-“Interstage シングル・サインオン”-“セキュリティ対策”を参照してください。