概要
Cognos BI&AnalyticsでのSSO認証と言えば、基本的にHTTP HeaderのREMOTE_USERなどの変数にユーザーIDを仕込み、LDAPネームスペースの外部IDマッピングで受け取る方法だと思います。
しかしながら環境によっては、Cookieの中にユーザーID情報を含めるので、これでCognosのSSO認証をやって欲しいという要件が出てくる事があります。認証ソースはLDAPです。
このような場合に、再利用しやすいカスタム認証プロバイダーのサンプルがCognos SDKで提供されているのですが、ご存知無い方も多いので、紹介しておきます。
関係ない方もちらっと読んでおいて頂いて、「Cookieで認証」という場面に遭遇したら、是非この記事を思い出してください。
実装方法
Cognos SDKを導入すると、以下のフォルダにTrustedSignonSampleという、カスタム認証のサンプルが導入されます。
C:\Program Files\IBM\cognos\c10_64\sdk\java\AuthenticationProvider\TrustedSignonSample
中身はこんな構成です。
赤枠の「TrustedSignonSample.java」がカスタマイズの範囲です。
前提として、LDAPの認証を行うためのネームスペースがCognos Configurationで構成されていて、外部IDマッピングが指定されている事が必要です。
「TrustedSignonSample.java」を開きます。
先のCognosConfigurationのLDAPのネームスペースの内容に合わせて、赤枠のsetNamespaceID、TrustedEnvVarを変更します。
また、getCookieValueにCookieの名称を指定します。
同フォルダのbuild.batを実行すると、CAM_AAA_TrustedSignonSample.jar が作成されるので、<CognosInstallPath>/webapps/p2pd/WEB-INF/lib にコピーします。
カスタム認証のネームスペースを、以下のように作成します。
Javaクラス名は、TrustedSignonSample となります。
※Cognos Configurationを立ち上げるのは、Jarファイルをコピーした後になります。
ゲートウェイ・ネームスペースにカスタム認証のネームスペースを指定します。
Cognos Configurationで、Cognosサービスを再起動します。
以上ですが、以下の「SetCookie.htm」はテスト用のサンプルとして使えます。
Cookie名称と値(ユーザーID)を指定して、/webcontent に配置してください。
http://<hostname>/ibmcognos/setCookie.htm でアクセスして、Cookieを飛ばしてみて、CognosにSSOできるかテストを行う事ができます。