Interstage Application Server シングル・サインオン運用ガイド |
目次
索引
![]() ![]() |
第7章 認証サーバ間連携 | > 7.4 カスタマイズ | > 7.4.1 ユーザ情報のカスタマイズ |
変換ルールを記述したユーザ情報カスタマイズ定義ファイルを使用することで、ユーザ情報をカスタマイズすることができます。
以下に変換ルールを使用してユーザ情報がカスタマイズされる流れを示します。
情報A,Bをカスタマイズし、利用者のユーザIDを出力する場合を例に説明します。
Interstage シングル・サインオンが提供する雛形のユーザ情報カスタマイズ定義ファイルは、以下に格納されています。使用する環境に合わせてコピーして利用してください。
作成したユーザ情報カスタマイズ定義ファイルは、“custom.xml”に変名し、以下に格納してください。
ユーザ情報カスタマイズ定義ファイルには、ユーザ情報を変換するルールをXML形式で記述します。ユーザ情報カスタマイズ定義ファイルの編集は、認証サーバを構築したマシンで、認証サーバ間連携サービスが停止した状態で行ってください。
次のタグは、XML宣言およびDTD(文書型定義)を記述しているため、ユーザ情報カスタマイズ定義ファイルの先頭に必ず記述してください。
<!-- XML宣言およびDTD修正禁止↓ --> <!DOCTYPE SSOUserInfo [ <!ELEMENT SSOUserInfo (Pluginlist, Rulelist, Systemlist)> <!ELEMENT Pluginlist (plugin*)> <!ELEMENT plugin (#PCDATA)> <!ATTLIST plugin name ID #REQUIRED type (sender | receiver) #REQUIRED> <!ELEMENT Rulelist (rule*)> <!ELEMENT rule (USER_DN, ROLE_LIST*, USER_ID, ExtraInfo*)> <!ATTLIST rule name ID #REQUIRED postmodify IDREF #IMPLIED> <!ELEMENT USER_DN (input*, create*)> <!ATTLIST USER_DN transparent (true | false) "false"> <!ELEMENT ROLE_LIST (input*, create*)> <!ATTLIST ROLE_LIST transparent (true | false) "false"> <!ELEMENT USER_ID (input*, create*)> <!ATTLIST USER_ID transparent (true | false) "false"> <!ELEMENT ExtraInfo (input*, create*)> <!ATTLIST ExtraInfo name CDATA #REQUIRED transparent (true | false) "false"> <!ELEMENT input (select*, default?)> <!ATTLIST input name CDATA #REQUIRED> <!ELEMENT create (#PCDATA)> <!ATTLIST create param1 (localname | partnername) "localname" param2 (localname | partnername) "partnername"> <!ELEMENT select (#PCDATA)> <!ATTLIST select match CDATA #IMPLIED param1 (inputvalue | localname | partnername) "inputvalue" param2 (inputvalue | localname | partnername) "localname" param3 (inputvalue | localname | partnername) "partnername"> <!ELEMENT default (#PCDATA)> <!ATTLIST default param1 (inputvalue | localname | partnername) "inputvalue" param2 (inputvalue | localname | partnername) "localname" param3 (inputvalue | localname | partnername) "partnername"> <!ELEMENT Systemlist (system*)> <!ELEMENT system (send, receive)> <!ATTLIST system name CDATA #REQUIRED> <!ELEMENT send EMPTY> <!ATTLIST send rule IDREF #REQUIRED debug (true | false) "false"> <!ELEMENT receive EMPTY> <!ATTLIST receive rule IDREF #REQUIRED debug (true | false) "false"> ]> <!-- XML宣言およびDTD修正禁止↑ --> |
ユーザ情報カスタマイズ定義ファイルで設定するXMLタグを、以下のXMLタグ表に示します。
XMLタグ表の項目、属性、および値の文字列は、大文字と小文字が区別されます。項目の出現順序は下表に記述してある順番に従ってください。
ユーザ情報のカスタマイズの流れを参考に、内部項目2に指定する“変換前のユーザ情報”を、内部項目1に指定する“変換ルール”でカスタマイズし、小項目に指定した“変換後のユーザ情報”を生成するように記述してください。
なお、“変換前のユーザ情報”を使用しない場合は、内部項目2の指定は不要です。
また、内部項目1は複数指定することが可能であり、指定された順に変換処理が行なわれます。ある内部項目1に指定した変換ルールで属性値が生成されても、同じ小項目内に変換処理が行われていない別の内部項目1があれば、その変換処理が継続して行われます。
ルート項目 |
大項目 |
中項目 |
小項目 |
内部項目1 |
内部項目2 |
項目の省略可否 |
属性 |
属性の省略可否 |
説明 |
SSOUserInfo |
Pluginlist |
plugin |
|
|
|
可 |
name |
不可 |
ユーザ情報の変換を行うカスタマイズモジュールのクラス名を完全修飾名で指定します。 |
type |
不可 |
カスタマイズモジュールの用途をtype属性に指定します。
|
|||||||
Rulelist |
rule |
|
|
|
可 |
name |
不可 |
ユーザ情報の変換ルールを、小項目を指定することにより定義します。 |
|
postmodify |
可 |
||||||||
USER_DN |
|
|
不可 |
transparent |
可 |
利用者のDNを生成する場合に、内部項目1を指定することで定義します。 |
|||
input |
|
可 |
name |
不可 |
変換前のユーザ情報を使用してユーザ情報を生成する場合に、内部項目2を指定することで定義します。 |
||||
select |
可 |
match |
可 |
変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
|
|||||
param1 |
可 |
||||||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
default |
可 |
param1 |
可 |
変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4) |
|||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
create |
|
可 |
param1 |
可 |
変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2) |
||||
param2 |
可 |
||||||||
ROLE_LIST |
|
|
可 |
transparent |
可 |
ロール名を生成する場合に、内部項目1を指定することで定義します。 |
|||
input |
|
可 |
name |
不可 |
変換前のユーザ情報を使用してユーザ情報を生成する場合、内部項目2を指定することで定義します。 |
||||
select |
可 |
match |
可 |
変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
|
|||||
param1 |
可 |
||||||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
default |
可 |
param1 |
可 |
変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4) |
|||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
create |
|
可 |
param1 |
可 |
変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2) |
||||
param2 |
可 |
||||||||
USER_ID |
|
|
不可 |
transparent |
可 |
利用者のユーザIDを生成する場合に、内部項目1を指定することで定義します。 |
|||
input |
|
可 |
name |
不可 |
変換前のユーザ情報を使用してユーザ情報を生成する場合に、内部項目2を指定することで定義します。 |
||||
select |
可 |
match |
可 |
変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
|
|||||
param1 |
可 |
||||||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
default |
可 |
param1 |
可 |
変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4) |
|||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
create |
|
可 |
param1 |
可 |
変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2) |
||||
param2 |
可 |
||||||||
ExtraInfo |
|
|
可 |
name |
不可 |
拡張ユーザ情報を生成する場合に、内部項目1を指定することで定義します。 |
|||
transparent |
可 |
||||||||
input |
|
可 |
name |
不可 |
変換前のユーザ情報を使用してユーザ情報を生成する場合に、内部項目2を指定することで定義します。 |
||||
select |
可 |
match |
可 |
変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
|
|||||
param1 |
可 |
||||||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
default |
可 |
param1 |
可 |
変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4) |
|||||
param2 |
可 |
||||||||
param3 |
可 |
||||||||
create |
|
可 |
param1 |
可 |
変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2) |
||||
param2 |
可 |
||||||||
Systemlist |
system |
|
|
|
可 |
name |
不可 |
相手シングル・サインオンシステムごとに、どのユーザ情報の変換ルールを適用するかを、小項目を指定することで定義します。 |
|
send |
|
|
不可 |
rule |
不可 |
相手シングル・サインオンシステムへユーザ情報を送信する場合に適用するユーザ情報の変換ルールをrule属性に指定してください。 |
|||
debug |
可 |
||||||||
receive |
|
|
不可 |
rule |
不可 |
相手シングル・サインオンシステムからユーザ情報を受信した場合に適用するユーザ情報の変換ルールをrule属性に指定してください。 |
|||
debug |
可 |
注1)以下のユーザ情報が指定できます。変換前のユーザ情報に指定したユーザ情報が存在しない場合は、本タグは無効となります。ユーザ情報の詳細については、“環境変数によるユーザ情報の通知の設定”を参照してください。
(*1)ユーザ情報にロールセットが設定されている場合は、ロールセットに設定されているロール名が通知されます。
(*2)セションの管理を行っていないシステムでは、業務サーバに通知されませんが、認証サーバ間連携サービスには通知されます。
注2)java.util.Formatterで指定可能な書式で指定してください。詳細については、J2SE 5.0のJavaDocを参照してください。なお、相手シングル・サインオンシステムへ送信するユーザ情報を変換する場合には、属性値に指定可能な文字に制約はありませんが、相手シングル・サインオンシステムから受信したユーザ情報を変換する場合には、以下に示す制約があります。
ユーザ情報
制約
USER_DN
以下を指定することはできません。
- 空文字
- 制御文字(ShiftJISの0x00〜0x1f、0x7f)を含む文字列
ROLE_LIST
以下を指定することはできません。
- 空文字
- 制御文字(ShiftJISの0x00〜0x1f、0x7f)を含む文字列
- 512バイトを超える文字列
- カンマ(,)を含む文字列
USER_ID
以下を指定することはできません。
- 空文字
- ASCII文字以外の文字列
- 256バイトを超える文字列(*1)
- 連続した空白を含む文字列
ExtraInfo
以下を指定することはできません。
- 空文字
- 制御文字(ShiftJISの0x00〜0x1f、0x7f)を含む文字列
(*1)自シングル・サインオンシステムがセションの管理を行なっている場合だけの制約です。
注3)match属性に指定された値は、大文字と小文字の区別が行われません。また、match属性に同一の値が指定されたselectタグが、1つのinputタグ内に複数定義されている場合には、最初に定義されたselectタグだけが有効となります。
注4)defaultタグを省略した場合、変換後にユーザ情報が出力されない場合があります。selectタグでユーザ情報が出力されない場合がある時は、defaultタグを必ず指定してください。
注5)以下の可変パラメタが使用できます。
以下の属性が省略された場合、省略値に示した値が指定されたと見なします。
属性
省略値
param1
inputvalue
param2
localname
param3
partnername
%から始まる書式指定子との対応付けは、param1、param2、param3属性で行ってください。
相手シングル・サインオン名を1番目の書式指定子とし、入力データ値を2番目の書式指定子として扱う場合
<select match="roleA" param1="partnername" param2="inputvalue">%s_%s</select>
注6)以下の可変パラメタが使用できます。
以下の属性が省略された場合、省略値に示した値が指定されたと見なします。
属性
省略値
param1
localname
param2
partnername
%から始まる書式指定子との対応付けは、param1、param2属性で行ってください。
相手シングル・サインオン名を1番目の書式指定子として扱う場合
<create param1="partnername">somewhere in %s</create>
注7)半角英数字、およびアンダスコア(_)が使用できます。先頭には英字を指定してください。なお、大文字と小文字の区別は行いません。また、以下の文字列は指定できません。
注8)本属性に設定する値は、認証サーバのInterstage管理コンソールを使用して以下の項目に設定してください。すでに認証サーバ間連携の設定が完了している場合は、以下の項目に設定されている値を本属性に設定してください。
なお、本属性には1Byteから32Byteまでの半角の英数字、および以下の記号が指定できます。
注9)性能低下を招くため、運用時には使用しないでください。
ロール名、ユーザID、および利用者のDNを以下のように変換する場合の記述例を示します。
ユーザ情報 |
変換方法 |
|||
自シングル・サインオンシステム |
相手シングル・サインオンシステム |
|||
変換前 |
変換後 |
変換前 |
変換後 |
|
ロール名 |
“一般利用者” |
“role_no_1” |
“role_no_1” |
“guest” |
ユーザID |
変換なし |
ユーザID |
“partner_”+ユーザID |
|
利用者のDN |
変換なし |
変換なし |
【自シングル・サインオンシステム側のユーザ情報カスタマイズ定義ファイル例】
相手シングル・サインオンシステム名に“systemB”を指定している例です。
<?xml version="1.0" encoding="Shift_JIS" ?> <!-- XML宣言およびDTD修正禁止↓ --> 〜省略〜 <!-- XML宣言およびDTD修正禁止↑ --> <SSOUserInfo> <Pluginlist> </Pluginlist> <Rulelist> <rule name="SendToSystemB"> <USER_DN transparent="true" /> <ROLE_LIST> <input name="ROLE_LIST"> <select match="一般利用者">role_no_1</select> </input> </ROLE_LIST > <USER_ID transparent="true" /> </rule> <rule name="ReceivedFromSystemB"> 〜省略〜 </rule> </Rulelist> <Systemlist> <system name="systemB"> <send rule="SendToSystemB" debug="false" /> <receive rule="ReceivedFromSystemB" debug="false" /> </system> </Systemlist> </SSOUserInfo> |
【相手シングル・サインオンシステム側のユーザ情報カスタマイズ定義ファイル例】
相手シングル・サインオンシステム名に“systemA”を指定している例です。
<?xml version="1.0" encoding="Shift_JIS" ?> <!-- XML宣言およびDTD修正禁止↓ --> 〜省略〜 <!-- XML宣言およびDTD修正禁止↑ --> <SSOUserInfo> <Pluginlist> </Pluginlist> <Rulelist> <rule name="ReceivedFromSystemA"> <USER_DN transparent="true" /> <ROLE_LIST> <input name="ROLE_LIST"> <select match="role_no_1">guest</select> </input> </ROLE_LIST> <USER_ID> <input name="USER_ID"> <default param1="partner" param2="inputvalue">%s_%s</default> </input> </USER_ID> </rule> <rule name="SendToSystemA"> 〜省略〜 </rule> </Rulelist> <Systemlist> <system name="systemA"> <send rule="SendToSystemA" debug="false" /> <receive rule="ReceivedFromSystemA" debug="false" /> </system> </Systemlist> </SSOUserInfo> |
目次
索引
![]() ![]() |