6.6.5 uCosminexus Secure Unify - SSO連携のための設定

ここでは,uCosminexus Secure Unify - SSOに連携する場合の設定方法について説明します。uCosminexus Secure Unify - SSOの設定については,uCosminexus Secure Unify - SSOのマニュアルを参照してください。

<この項の構成>
(1) ポータルプロジェクトへの連携ファイルの追加
(2) JAASコンフィグレーションファイル(jaas.conf)の編集
(3) 統合ユーザ管理フレームワークのコンフィグレーションファイル(ua.conf)の編集
(4) マッピングの定義

(1) ポータルプロジェクトへの連携ファイルの追加

ポータルプロジェクトへの連携ファイルの追加は,次の手順で行います。

  1. プロジェクトディレクトリを退避します。
    ポータルプロジェクト配下のディレクトリおよびファイルをあらかじめ別のディレクトリに退避させます。
     
    注意
    退避したweb.xmlファイルをあとで使用するので必ず退避してください。
  2. uCosminexus Secure Unify - SSO SP Libraryのファイルをコピーします。
    次のディレクトリ配下のファイルをプロジェクトディレクトリに上書きコピーします。
    コピー元ディレクトリ
    {uCosminexus Secure Unify - SSO SP Libraryインストールディレクトリ}¥samlsp
     
    注意
    アプリケーションで変更したファイルを上書きする場合は,上書きしたファイルにアプリケーションの変更を反映させてください。
  3. uCosminexus Secure Unify - SSO 連携のために提供するファイルをコピーします。
    次のディレクトリ配下のファイルをプロジェクトディレクトリに上書きコピーします。
    コピー元ディレクトリ
    {uCosminexus Portal Frameworkインストールディレクトリ}¥samples¥susso¥webapp
    デザインテンプレートを使用している場合は,次のディレクトリ配下のファイルをプロジェクトディレクトリに上書きコピーします。
    コピー元ディレクトリ
    {uCosminexus Portal Frameworkインストールディレクトリ}¥samples¥susso¥template
     
    注意
    アプリケーションで変更したファイルを上書きする場合は,上書きしたファイルにアプリケーションの変更を反映させてください。
  4. 退避したweb.xmlファイルを元に戻します。
    退避したディレクトリのweb.xmlファイルをプロジェクトディレクトリに上書きコピーします。
    コピー元ファイル
    {退避したディレクトリ}¥WEB-INF¥web.xml
  5. web.xmlファイルを編集します。
    web.xmlファイルの<web-app>タグのあと(<filter>タグの記述位置)に,次の記述を追記します。

    <filter>
    <filter-name>SamlAgent</filter-name>
    <filter-class>jp.co.ins_hitachi.samlserver.samlsp.controller.SPFilter</filter-class>
    </filter>

    <filter-mapping>
    <filter-name>SamlAgent</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    また,最後の</servlet>タグのあとに,次の記述を追記します。

    <servlet>
    <servlet-name>LogoutServlet</servlet-name>
    <servlet-class>jp.co.ins_hitachi.samlserver.samlsp.controller.LogoutServlet</servlet-class>
    </servlet>

    <servlet>
    <servlet-name>LogoutFromIdpServlet</servlet-name>
    <servlet-class>jp.co.ins_hitachi.samlserver.samlsp.controller.LogoutFromIdpServlet</servlet-class>
    </servlet>

    <servlet-mapping>
    <servlet-name>LogoutServlet</servlet-name>
    <url-pattern>/logout</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
    <servlet-name>LogoutFromIdpServlet</servlet-name>
    <url-pattern>/logoutIdp</url-pattern>
    </servlet-mapping>

    注意
    Webサーバ(リダイレクタ)によるリクエストの振り分けを行っている場合は,次のサーブレットのURLを振り分け対象に追加してください。
    • /logout
    • /logoutIdp
  6. Secure Unify連携モジュールをコピーします。
    次のディレクトリ配下のファイルをCosminexusのカスタムログインモジュールの格納先ディレクトリにコピーします。
    コピー元ディレクトリ
    {uCosminexus Portal Frameworkインストールディレクトリ}¥samples¥susso¥module
    コピー先ディレクトリ
    {Cosminexusインストールディレクトリ}¥manager¥modules
  7. uCosminexus Secure Unify - SSO SP Libraryの設定ファイルを編集します。
    次のディレクトリ配下のuCosminexus Secure Unify - SSO SP Libraryの設定ファイルを編集し,SPの名称やIdPサーバのURLなどの設定をします。編集するファイルおよび編集内容については,uCosminexus Secure Unify - SSOのマニュアルを参照してください。
     
    {プロジェクトディレクトリ}¥WEB-INF¥classes¥hins_samlsp_conf.properties
  8. PortalResources.propertiesファイルを編集します。
    PortalResources.propertiesファイルに次のプロパティを設定します。なお,PortalResources.propertiesファイルは設定ファイル格納ディレクトリに格納されています。

    jp.co.hitachi.soft.portal.services.repository.uservalue=loginid
    jp.co.hitachi.soft.portal.services.security.PortalUserManager.login.sessionrenewal=false

  9. ログアウトURLを編集します。
    uCosminexus Portal Frameworkからログアウトすると同時に,uCosminexus Secure Unify - SSO からもログアウト(シングルログアウト)する場合,次のファイルを編集してログアウトURLを変更します。シングルログアウトしない場合は編集する必要はありません。
    編集するファイル
    {プロジェクトディレクトリ}¥WEB-INF¥templates¥jsp¥navigations¥top_loggedIn.jsp
    編集前
    <a href="<portal:uriLookup type="Logout" />" onclick=" ~
    編集後
    <a href="<portal:contentUri href="logout" />" onclick=" ~

(2) JAASコンフィグレーションファイル(jaas.conf)の編集

uCosminexus Secure Unify - SSOと連携する場合のJAASコンフィグレーションファイル(jaas.conf)の設定内容を説明します。統合ユーザ管理フレームワークのDelegationLoginModuleを通して,カスタムログインモジュールを使用します。

JAASコンフィグレーションファイル(jaas.conf)の設定パラメタを次の表に示します。

表6-6 jaas.conf設定パラメタ一覧(認証済Subject使用時)

PortalLoginModuleのパラメタ名説明
com.cosminexus.admin.auth.custom.lm
[設定必須(Cosminexusのシングルサインオン機能を使用しない場合)]
DelegationLoginModuleが呼び出すカスタムログインモジュールクラス名です。必ず「jp.co.hitachi.soft.portal.susso.login.PortalLoginModule」を指定してください。
これは,DelegationLoginModuleのパラメタです。
com.cosminexus.admin.auth.sso
[設定必須(Cosminexusのシングルサインオン機能を使用する場合)]
WebSSOLoginModuleが呼び出すカスタムログインモジュールクラスを表す名称です。このパラメタで指定した名称に対応させて,統合ユーザ管理フレームワークのコンフィグレーションファイル(ua.conf)でクラスを指定します。
これは,WebSSOLoginModuleのパラメタです。
com.cosminexus.admin.auth.realmレルム名です。"PORTAL"を指定してください。
jp.co.hitachi.soft.portal.susso.login.param.<LOGIN_NAMEのsrc属性名>
[設定必須]
リポジトリファイル(Repository.xml)の<LOGIN_NAMEのsrc属性名>(ユーザID)で取得される値が格納されている,リクエスト属性です。取得値をPrincipalおよびPublicCredentialとして格納します。このリクエスト属性が見つからない,または値が不正な場合は,ログインエラーとなります。
jp.co.hitachi.soft.portal.susso.param.<src属性名>リポジトリファイル(Repository.xml)の<src属性名>で取得される値が格納されている,HTTPリクエスト属性名称です。取得値をPublicCredentialとして格納します。このリクエスト属性が見つからない場合は,その属性値を持たないものとして処理が続行されます。取得できる属性については「6.6.3 ポータルで取得するリクエスト属性」を参照してください。

JAASコンフィグレーションファイル(jaas.conf)の設定例を次に示します。

表6-7 設定例の内容

項目Portal Managerの[ユーザ情報の設定]画面で指定した属性名uCosminexus Secure Unify - SSOから取得する属性名
ユーザIDuidHINS_SAML_USER_ID
ユーザ表示名snSN
役職情報titleTITLE
所属情報deptDEPARTMENTDN
JAASコンフィグレーションファイル(jaas.conf)の設定例

// ***** ポータル用ログインモジュール *****
Portal {
 com.cosminexus.admin.auth.login.DelegationLoginModule required
   com.cosminexus.admin.auth.custom.lm="jp.co.hitachi.soft.portal.susso.login.PortalLoginModule"
   com.cosminexus.admin.auth.realm="PORTAL"
   jp.co.hitachi.soft.portal.susso.login.param.uid="HINS_SAML_USER_ID"
   jp.co.hitachi.soft.portal.susso.param.sn="SN"
   jp.co.hitachi.soft.portal.susso.param.title="TITLE"
   jp.co.hitachi.soft.portal.susso.param.dept="DEPARTMENTDN"
   ;
};

注 下線部分がアプリケーション名です。

なお,WebSSOLoginModuleを使用している場合は,WebSSOLoginModuleを通して,カスタムログインモジュールを使用します。

JAASコンフィグレーションファイル(jaas.conf)の設定例

// ***** ポータル用ログインモジュール *****
Portal {
 com.cosminexus.admin.auth.sso.login.WebSSOLoginModule required
   com.cosminexus.admin.auth.sso="SecureUnify"
   com.cosminexus.admin.auth.realm="PORTAL"  
   jp.co.hitachi.soft.portal.susso.login.param.uid="HINS_SAML_USER_ID"
   jp.co.hitachi.soft.portal.susso.param.sn="SN"
   jp.co.hitachi.soft.portal.susso.param.title="TITLE"
   jp.co.hitachi.soft.portal.susso.param.dept="DEPARTMENTDN"
   ;
};

注 下線部分がアプリケーション名です。

(3) 統合ユーザ管理フレームワークのコンフィグレーションファイル(ua.conf)の編集

uCosminexus Secure Unify - SSOと連携する場合の統合ユーザ管理フレームワークのコンフィグレーションファイル(ua.conf)の設定内容を説明します。この設定は,WebSSOLoginModuleを使用している場合に必要な設定です。

統合ユーザ管理フレームワークのコンフィグレーションファイル(ua.conf)の設定パラメタを次の表に示します。

表6-8 ua.conf設定パラメタ一覧(認証済Subject使用時)

PortalLoginModuleのパラメタ名説明
com.cosminexus.admin.auth.sso.lm.<ログインモジュール名称>
[設定必須(シングルサインオン機能を使用する場合)]
WebSSOLoginModuleが呼び出すカスタムログインモジュールクラスを表す名称です。
jaas.conf com.cosminexus.admin.auth.ssoパラメタで指定した名称を<名称>部分に記述します。必ず「jp.co.hitachi.soft.portal.susso.login.PortalLoginModule」を指定してください。
統合ユーザ管理フレームワークのコンフィグレーションファイル(ua.conf)の設定例

#################### Custom LoginModule (uCosminexus Secure Unify - SSO) ###############
com.cosminexus.admin.auth.sso.lm.SecureUnify=jp.co.hitachi.soft.portal.susso.login.PortalLoginModule

(4) マッピングの定義

uCosminexus Secure Unify - SSO連携時のマッピング定義について説明します。「(2) JAASコンフィグレーションファイル(jaas.conf)の編集」で設定した属性名のマッピングを定義すれば,ログイン後のポータル内で,項目名で属性値を取り出せます。項目は文字列型かつオプション指定なしで,取得先構成情報は必ずCosminexus指定となります。項目のうちユーザID項目は必須です(ユーザ認証にuCosminexus Portal Frameworkを使用した場合と同様)。

Portal Managerの[リポジトリの設定]-[マッピング情報]-[ユーザ情報]で表示される[ユーザ情報の設定]画面で,次の表に示すとおり設定してください。

表6-9 [ユーザ情報の設定]画面で設定する内容

項目属性名接続先(ユーザ用)格納時の型オプション
ユーザID
[設定必須]
JAASコンフィグレーションファイル(jaas.conf)の「jp.co.hitachi.soft.portal.susso.login.param.<LOGIN_NAMEのsrc属性名>」で設定した属性名
指定例:uid
cosmi
ユーザ表示名
[設定任意]
JAASコンフィグレーションファイル(jaas.conf)の「jp.co.hitachi.soft.portal.susso.param.<src属性名>」で設定した属性名
指定例:title
cosmistringなし,またはmultivalue
役職情報
[設定任意]
所属情報
[設定任意]
ユーザ定義項目
[設定任意]

(凡例) -:該当しません。

注 パーソナライズ情報を表すキーは,uCosminexus Secure Unify - SSOからは取得できません。LDAPまたはDBを使用してください。


リポジトリファイルの設定内容を次に示します。

<?xml version="1.0" encoding="Shift_JIS"?>
   <repository version="0200" xmlns="http://portal.soft.hitachi.co.jp/portal/Repository2">
       <resource name="cosmi" type="cosminexus"/>
       <portal-mapping>
           <portalUser>
               <Mapping dest="LOGIN_NAME" src="uid">cosmi</Mapping>
               <Mapping dest="TITLE" type="string" src="title">cosmi</Mapping>
               <Mapping dest="DEPARTMENT" type="string" src="dept">cosmi</Mapping>
           </portalUser>
      </portal-mapping>
 </repository>