認証に成功した利用者の情報を業務サーバで運用しているCGIなどのWebアプリケーションで利用することができます。業務サーバは、ユーザ情報をHTTPリクエストヘッダに付加することでWebアプリケーションへ通知しますので、Webアプリケーションはそれぞれのインタフェースを通じてHTTPリクエストヘッダを参照することでユーザ情報を取得できます。たとえば、CGIならば環境変数より取得できます。
以下にWebアプリケーションが取得できるユーザ情報を示します。
ユーザ情報 | 説明 | 通知例 |
利用者のDN | SSOリポジトリ内のユーザ情報に格納されている利用者のエントリをDNで通知します。 | cn=tarou,ou=interstage,o=fujitsu,dc=com |
ロール名 | SSOリポジトリ内のユーザ情報に格納されている利用者のエントリに設定されているロール名を通知します。 | Admin,General,Leader |
ロール名の数 | 通知したロール名の数を通知します。 | 3 |
認証方式 | 認証に成功した利用者の認証方式を通知します。通知する認証方式は、“basicAuth”、“certAuth”、“basicAuthAndCertAuth”のどれか1つです。 | basicAuth |
利用者のユーザID | パスワード認証時に利用者が提示するユーザIDを通知します。 | tarou |
クライアントのIPアドレス | 認証時に使用したクライアントのIPアドレスを、IPv4、またはIPv6形式で通知します。 | xxx.xxx.xxx.xxx |
認証時刻 | 利用者が認証された時刻をグリニッジ標準時(YYYYMMDDHHMMSSZ)で通知します。 | 20030901151118Z |
再認証時刻 | 再認証が必要となる時刻をグリニッジ標準時(YYYYMMDDHHMMSSZ)で通知します。 | 20030901154118Z |
認証情報の有効範囲 | 認証情報の有効範囲を通知します。 | www.fujitsu.com |
前回サインオン日時(注1) | ユーザが前回サインオンした日時をグリニッジ標準時(YYYYMMDDHHMMSSZ)で通知します。 | 20050713000000Z |
拡張ユーザ情報(注2) | 認証に成功した利用者の任意のユーザ情報を通知します。 | mailを通知する場合 |
注1)セションの管理を行う場合だけ通知することができます。
注2)以下の条件に該当する場合に通知されます。
セションの管理を行う。
Interstage管理コンソールの[システム] > [セキュリティ] > [シングル・サインオン] > [認証基盤] > [リポジトリサーバ] > [環境設定] > [リポジトリサーバ詳細設定[表示]]の[業務システムに通知する情報]の[拡張ユーザ情報]に属性名を設定する。
Interstage管理コンソールの[システム] > [セキュリティ] > [シングル・サインオン] > [認証基盤] > [リポジトリサーバ] > [保護リソース] > [サイト定義] > [保護パス] > [パス定義] > [設定]タブの[パス定義]の[拡張ユーザ情報の通知]で、上記で設定した属性名を選択する。
ユーザ情報をWebアプリケーションに通知する場合は、Interstage管理コンソールを使用して、[システム] > [セキュリティ] > [シングル・サインオン] > [業務システム] > [業務システム名] > [環境設定]タブの[詳細設定[表示]]をクリックし、[Webアプリケーションとの連携]の[ユーザ情報の通知]を“通知する”に設定してください。
Webアプリケーションでの利用方法
ユーザ情報は以下の環境変数名、およびHTTPリクエストヘッダで通知されます。なお、通知される値はUTF8エンコードされています。
ユーザ情報 | 環境変数名 | HTTPリクエストヘッダ |
利用者のDN | HTTP_X_FJ_SSO_CREDENTIAL_DN | X-FJ-SSO-CREDENTIAL-DN:値 |
ロール名 | HTTP_X_FJ_SSO_CREDENTIAL_ROLELIST | X-FJ-SSO-CREDENTIAL-ROLELIST:値 |
ロール名の数 | HTTP_X_FJ_SSO_CREDENTIAL_ROLECOUNT | X-FJ-SSO-CREDENTIAL-ROLECOUNT:値 |
認証方式 | HTTP_X_FJ_SSO_CREDENTIAL_AUTHMETHOD | X-FJ-SSO-CREDENTIAL-AUTHMETHOD:値 |
利用者のユーザID | HTTP_X_FJ_SSO_CREDENTIAL_UID | X-FJ-SSO-CREDENTIAL-UID:値 |
クライアントのIPアドレス | HTTP_X_FJ_SSO_CREDENTIAL_IPADDRESS | X-FJ-SSO-CREDENTIAL-IPADDRESS:値 |
認証時刻 | HTTP_X_FJ_SSO_CREDENTIAL_FIRSTACCESS | X-FJ-SSO-CREDENTIAL-FIRSTACCESS:値 |
再認証時刻 | HTTP_X_FJ_SSO_CREDENTIAL_EXPIRATION | X-FJ-SSO-CREDENTIAL-EXPIRATION:値 |
認証情報の有効範囲 | HTTP_X_FJ_SSO_CREDENTIAL_DOMAIN | X-FJ-SSO-CREDENTIAL-DOMAIN:値 |
前回サインオン日時(注3) | HTTP_X_FJ_SSO_SSOLASTSIGNONTIME | X-FJ-SSO-SSOLASTSIGNONTIME:値 |
拡張ユーザ情報(注4) | HTTP_X_FJ_SSO_EXT_xxxx(注5) | X-FJ-SSO-EXT-xxxx:値(注5) |
注1)WebサーバにInterstage HTTP Server、またはInterstage HTTP Server 2.2を使用している場合だけ通知されます。業務サーバの環境設定を変更することにより、本環境変数にユーザ情報を通知しないようにすることができます。詳細については、“移行ガイド”の“Interstage運用操作、環境の移行”-“Interstage シングル・サインオンの移行”を参照してください。
注2)Interstage HTTP Server、またはInterstage HTTP Server 2.2の認証機能を併用している場合は、本環境変数にInterstage HTTP Server、またはInterstage HTTP Server 2.2の認証機能で認証された利用者の認証方式、およびユーザIDが格納されます。
注3)セションの管理を行う場合だけ通知することができます。
注4)以下の条件に該当する場合に通知されます。
セションの管理を行う。
Interstage管理コンソールの[システム] > [セキュリティ] > [シングル・サインオン] > [認証基盤] > [リポジトリサーバ] > [環境設定] > [リポジトリサーバ詳細設定[表示]]の[業務システムに通知する情報]の[拡張ユーザ情報]に属性名を設定する。
Interstage管理コンソールの[システム] > [セキュリティ] > [シングル・サインオン] > [認証基盤] > [リポジトリサーバ] > [保護リソース] > [サイト定義] > [保護パス] > [パス定義] > [設定]タブの[パス定義]の[拡張ユーザ情報の通知]で、上記で設定した属性名を選択する。
注5)xxxxは、[拡張ユーザ情報]に設定されている属性名の大文字となります。
[拡張ユーザ情報]に“mail”が設定されている場合
環境変数名 | HTTPリクエストヘッダ |
HTTP_X_FJ_SSO_EXT_MAIL | X-FJ-SSO-EXT-MAIL:値 |
セションの管理を行わない運用の場合、Webアプリケーションに通知する情報は、以下に示すサイズ内としてください。サイズを超えた場合、利用者は認証に失敗します。
2048 バイト ≧ ( (128バイト+DN文字列長)+ユーザID文字列長+8バイト×ロール数+ロール名文字列長の和)×1.5+利用者が認証した時にアクセスした業務サーバURLの文字列長
※各文字列長はすべてバイト単位
アプリケーションに通知するユーザ情報には、英数字と記号だけが利用できます。通知するユーザ情報に英数字、記号以外が含まれる場合は、Webアプリケーションが正しい値を取得できない場合があります。
通知される属性値は、URLエンコードされています。アプリケーション側でURLデコードしてください。
属性値がバイナリデータの場合、URLデコード後、さらにBase64デコードすることで、バイナリデータが取得できます。
属性値がバイナリデータ以外の場合は、URLデコードにより、UTF8の文字コードが取得できます。
属性値が複数ある場合は、カンマ(,)で区切って通知します。カンマ(,)で分割してからURLデコードし、値を取得してください。
拡張ユーザ情報で数10Kバイトを超えるバイナリデータ等を通知する場合、認可性能が低下する可能性があります。業務アプリケーションに必要な情報だけを通知するようにしてください。
また、1台の業務サーバで複数の業務アプリケーションを運用し、業務アプリケーションごとに必要なユーザ情報が異なる場合、業務アプリケーションごとに業務サーバを分けて運用することで、通知するユーザ情報のサイズを小さくし、認可性能を改善することができます。