|
|
IntraVerseへの対応 |
DSMCGIはセコム社の認証サーバーIntraVerseに対応しています。IntraVerseでの認証情報(ユーザー名、所属グループ名)をB/NOMADのグローバル変数へ格納します。なお、IntraVerseに関しての詳細はIntraVerseのドキュメントを参照してください。
IntraVerseIntraVerse対応機能を使用する場合は、設定ファイル(dsm.ini)へ以下の指定をしなければなりません。[DSMCGI]
UseIntraVerse=YES
変数宣言
初期処理用プロシージャ(APP名_PRF.NOM)内で、以下の変数を宣言してください。その変数へ認証情報を設定します。DEC &APP名_IV_USERID AS V100; ! IntraVerseユーザーID格納用 !
DEC &APP名_IV_GROUPID(0) AS V100; ! IntraVerseグループリスト格納用 !注意:
- 必ず、グローバル変数で宣言してください。
- サイズは変更しても構いません。ただし、認証情報が格納できる領域は確保してください。
- グループ情報を設定する変数(&APP名_IV_GROUPID)は配列型で宣言してください。 配列要素数は有限でも無限でも構いません。ただし、認証情報が格納できる要素数は確保してください。
変数への設定
IntraVerse経由で認証を行うと、認証情報がHTTPのヘッダへセットされ、環境変数に設定されます。その値をB/NOMADの変数へ格納します。格納はAPP名_get_form.nom内へ出力します。
- ユーザー情報
ユーザー名は「HTTP_IV_USER」環境変数へ格納されます。その値を変数へ格納します。IntraVerseの仕様により、「REMOTE_USER」環境変数へもIntraVerseでのユーザー名が格納されます。
- グループ情報
そのユーザーが属しているグループのリストが「HTTP_IV_GROUP」環境変数へ格納されます。IntraVerseの仕様により、ユーザーは複数のグループに属することができます。このとき、環境変数へはスペースで区切って格納されます。したがって、グループ情報はスペースを区切り文字として、そこで区切って、配列変数の1番目から順番に格納します。例:
taroというユーザーが、GROUP1、TEAM1、developerの3つのグループに属している場合REMOTE_USER=taro
HTTP_IV_USER=taro
HTTP_IV_GROUP=GROUP1 TEAM1 developerと環境変数に設定されます。
この場合、APP名_get_form.nomへは以下のように出力されます。&APP名_IV_USERID="taro";
&APP名_IV_GROUPID(1)="GROUP1";
&APP名_IV_GROUPID(2)="TEAM1";
&APP名_IV_GROUPID(3)="developer";
- 制限事項
- グループリストを分割するとき、スペースを区切りとして分割するため、グループ名にスペースが含まれているとき、それを分割していまいます。
- グループが1つだけの場合は、配列の1番目に値を格納します。
- セッションIDの生成方法がユーザーIDを使用する場合でかつ、IntraVerseを使用している場合は、IntraVerseでのユーザー名を使用してIDを生成します。