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

第7章 認証サーバ間連携> 7.4 カスタマイズ> 7.4.1 ユーザ情報のカスタマイズ

7.4.1.1 ユーザ情報カスタマイズ定義ファイルに記述した変換ルールによるカスタマイズ

 変換ルールを記述したユーザ情報カスタマイズ定義ファイルを使用することで、ユーザ情報をカスタマイズすることができます。

 以下に変換ルールを使用してユーザ情報がカスタマイズされる流れを示します。

 情報A,Bをカスタマイズし、利用者のユーザIDを出力する場合を例に説明します。

  1. 情報Aは情報Bよりも先に定義されているので、情報Aの属性値“user0001”が最初に処理されます。(図中(1))
  2. 属性値は昇順に並べ替えた順番で処理されるので、情報Bの属性値は“a00001”、“z12345”の順に処理されます。(図中(2)、(3))
  3. 最後に変換出力された“ID_30001”が“利用者のユーザID”の属性値となります。

 Interstage シングル・サインオンが提供する雛形のユーザ情報カスタマイズ定義ファイルは、以下に格納されています。使用する環境に合わせてコピーして利用してください。

雛形のユーザ情報カスタマイズ定義ファイルと格納先

 雛形のユーザ情報カスタマイズ定義ファイル名
・custom_EN.xml
  ASCIIコードで記述されています。
・custom_SJIS.xml
  シフトJISコードで記述されています。
・custom_EUC.xml
  EUCコードで記述されています。
・custom_UTF8.xml
  UTF-8コードで記述されています。
 雛形のユーザ情報カスタマイズ定義ファイルの格納先

 C:\Interstage\F3FMsso\ssofsv\webapps\ssofsv\original\conf

 /etc/opt/FJSVssofs/webapps/ssofsv/original/conf

 作成したユーザ情報カスタマイズ定義ファイルは、“custom.xml”に変名し、以下に格納してください。

ユーザ情報カスタマイズ定義ファイル名と格納先

 ユーザ情報カスタマイズ定義ファイル名
custom.xml
 ユーザ情報カスタマイズ定義ファイルの格納先

 C:\Interstage\F3FMsso\ssofsv\webapps\ssofsv\custom\conf\

 /etc/opt/FJSVssofs/webapps/ssofsv/custom/conf/

ユーザ情報カスタマイズ定義ファイルの作成方法

 ユーザ情報カスタマイズ定義ファイルには、ユーザ情報を変換するルールを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

不可

ユーザ情報の変換を行うカスタマイズモジュールのクラス名を完全修飾名で指定します。
このタグを一意に特定するための文字列をname属性に指定してください。

type

不可

カスタマイズモジュールの用途をtype属性に指定します。

  • 送信データ変換クラスの場合
    sender
  • 受信データ変換クラスの場合
    receiver

Rulelist

rule

 

 

 

name

不可

ユーザ情報の変換ルールを、小項目を指定することにより定義します。
このタグを一意に特定するための文字列をname属性に指定してください。
小項目の指定により生成されたユーザ情報を、カスタマイズモジュールによって変換したい場合は、使用するカスタマイズモジュールが指定されたPluginタグのID属性値をpostmodify属性に指定してください。

postmodify

USER_DN

 

 

不可

transparent

利用者のDNを生成する場合に、内部項目1を指定することで定義します。
ただし、変換前の利用者のDNをそのまま出力する場合には、transparent属性に“true”を指定してください。

input

 

name

不可

変換前のユーザ情報を使用してユーザ情報を生成する場合に、内部項目2を指定することで定義します。
name属性に変換前のユーザ情報を指定してください。(注1)

select

match

変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
書式には、3個の可変パラメタを含めることができます。


param1

param2

param3

default

param1

変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4)
書式には、3個の可変パラメタを含めることができます。(注5)

param2

param3

create

 

param1

変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2)
書式には、2個の可変パラメタを含めることができます。(注6)

param2

ROLE_LIST

 

 

transparent

ロール名を生成する場合に、内部項目1を指定することで定義します。
ただし、変換前のロール名をそのまま出力する場合には、transparent属性に“true”を指定してください。

input

 

name

不可

変換前のユーザ情報を使用してユーザ情報を生成する場合、内部項目2を指定することで定義します。
name属性に変換前のユーザ情報を指定してください。(注1)

select

match

変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
書式には、3個の可変パラメタを含めることができます。


param1

param2

param3

default

param1

変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4)
書式には、3個の可変パラメタを含めることができます。(注5)

param2

param3

create

 

param1

変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2)
書式には、2個の可変パラメタを含めることができます。(注6)

param2

USER_ID

 

 

不可

transparent

利用者のユーザIDを生成する場合に、内部項目1を指定することで定義します。
ただし、変換前の利用者のユーザIDをそのまま出力する場合には、transparent属性に“true”を指定してください。

input

 

name

不可

変換前のユーザ情報を使用してユーザ情報を生成する場合に、内部項目2を指定することで定義します。
name属性に変換前のユーザ情報を指定してください。(注1)

select

match

変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
書式には、3個の可変パラメタを含めることができます。


param1

param2

param3

default

param1

変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4)
書式には、3個の可変パラメタを含めることができます。(注5)

param2

param3

create

 

param1

変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2)
書式には、2個の可変パラメタを含めることができます。(注6)

param2

ExtraInfo

 

 

name

不可

拡張ユーザ情報を生成する場合に、内部項目1を指定することで定義します。
ただし、変換前の拡張ユーザ情報をそのまま出力する場合には、transparent属性に“true”を指定してください。
name属性に拡張ユーザ情報名を指定してください。(注7)

transparent

input

 

name

不可

変換前のユーザ情報を使用してユーザ情報を生成する場合に、内部項目2を指定することで定義します。
name属性に変換前のユーザ情報を指定してください。(注1)

select

match

変換前のユーザ情報にmatch属性で指定した値が存在する場合に、生成する属性値の書式を指定してください。(注2)(注3)
書式には、3個の可変パラメタを含めることができます。


param1

param2

param3

default

param1

変換前のユーザ情報の値が、全てのselectタグのmatch属性で指定した値ではない場合に、生成する属性値の書式を指定してください。(注2)(注4)
書式には、3個の可変パラメタを含めることができます。(注5)

param2

param3

create

 

param1

変換前のユーザ情報を使用しないで、ユーザ情報を生成する場合に、生成する属性値の書式を指定してください。(注2)
書式には、2個の可変パラメタを含めることができます。(注6)

param2

Systemlist

system

 

 

 

name

不可

相手シングル・サインオンシステムごとに、どのユーザ情報の変換ルールを適用するかを、小項目を指定することで定義します。
name属性には、認証サーバの環境設定で設定する、相手シングル・サインオンシステムのシングル・サインオンシステム名を指定してください。(注8)

send

 

 

不可

rule

不可

相手シングル・サインオンシステムへユーザ情報を送信する場合に適用するユーザ情報の変換ルールをrule属性に指定してください。
debug属性に“true”を指定することにより、認証サーバ間連携サービスのコンテナログに、変換前後のユーザ情報を出力することができます。(注9)

debug

receive

 

 

不可

rule

不可

相手シングル・サインオンシステムからユーザ情報を受信した場合に適用するユーザ情報の変換ルールをrule属性に指定してください。
debug属性に“true”を指定することで、認証サーバ間連携サービスのコンテナログに、変換前後のユーザ情報を出力することができます。(注9)

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>

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

Copyright 2008 FUJITSU LIMITED