Cognos Analytics 11.1 カスタム認証セットアップ手順

#概要
Cognos Analytics 11.1をインストール後、カスタム認証プロバイダーをセットアップする手順です。
カスタム認証のセットアップにより、認証機能を実装する事ができます。
ユーザーのIDやパスワード情報は、Db2のデータベーステーブルに持ちます。

インストールを未実施の方はこちらから実施ください。
**Cognos Analytics 11.1 インストール手順**
https://qiita.com/shinyama/items/fbaf4a81f33de79e4687

#カスタム認証 セットアップ
Cognos コンポーネントは、匿名と認証の 2 つのアクセス・レベルで実行されており、デフォルトでは、匿名アクセスが有効になっています。
認証ログオン を使用するには、認証プロバイダーを設定します。

認証プロバイダーの設定
https://www.ibm.com/support/knowledgecenter/ja/SSEP7J_11.1.0/com.ibm.swg.ba.cognos.inst_cr_winux.doc/c_inst_configureauthenticationprovider.html

ここでは、カスタム認証 をセットアップし、Cognos Analyticsで認証ログオンができるように設定します。
カスタム認証では、データベース上のユーザー情報を使用して認証をします。

前提として、Cognos SDK と JDK 1.8.0 が導入されており、JDKにPATHが通っている必要があります。
JDKはOracleのサイトからダウンロードすることができます。
今回は、モジュール jdk-8u201-windows-x64.exe を導入しています。

JDKにPATHが通っているかを確認するには、java -version を実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/972d9242-208c-e31b-608e-d933a2d2d9d9.png)

#1 ユーザー情報を保持するデータベース作成
Db2にユーザー情報を保持するデータベース（CJAPCA11）を作成します。
DB2 コマンド・ウィンドウなどで、CREATE DATABESE コマンドを実行します。
\>db2 create db CJAPCA11
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/738b4c95-c767-45f4-9316-1506c20c3462.png)

作成したデータベース（CJAPCA11）に接続します。
ここで ユーザー db2admin でデータベースに接続するように、ユーザー名とパスワードを指定します。
※ 実行例では、パスワードは'XXXXX'でマスキングしています。
\>db2 connect to CJAPCA11 user db2admin using XXXXX
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/94cd900d-e786-6b13-e1b8-f54dcbf1c9b4.png)

#2 ユーザー登録
フォルダ \<Cognos_install_path>\sdk\java\AuthenticationProvider\JDBCSample に移動し、db2 -tvf dbInit_db2.sql を実行し、テーブルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/ba3a013b-8e1d-7df6-3988-8672d83b954b.png)

db2 list tables コマンドでテーブルを確認します。
3つのテーブル GROUPS、OBJECTVIEW、USERS が作成されていることが確認できます。
\>db2 list tables
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/97e13821-e56b-6537-0e9d-0ad1096d9b7b.png)

ユーザー（cogadmin）をUSERS テーブルに登録します。
ここでは、USERS テーブルの各列に以下の情報を入れます。
・ USERID：    1
・ USERNAME：  cogadmin
・ PASSWORD：  (※  'XXXXX' でマスキングしています)
・ FULLNAME：  cognosadmin
・ EMAIL： cogadm@email 
・ LOCALE：　jp
・ TENANT：　1
\>db2 "insert into USERS values(1,'cogadmin','XXXXXX','cognosadmin','cogadm@email','jp','1')"
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/95ca2bdf-7e68-d6bc-84de-3b6ad12a4757.png)

グループ（GRO01）をGROUPSテーブル に登録します。
ここでは、GROUPS テーブルの各列に以下の情報を入れます。
・ GROUPID: 1
・ GROUPNAME: GRP01
・ USERID: 1
・ TENANT: 1
\>db2 insert into groups values(1,'GRP01',1,'1')"
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/57d5229d-af34-1545-4eb3-e4bbf3e488b1.png)

#3 build.bat 実行
フォルダ \<Cognos_install_path>\sdk\java\AuthenticationProvider\JDBCSample にてbuild.batを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/fd207c4a-cea7-1f93-6e56-0621f0bfeb32.png)

build.batを実行すると、フォルダ \<Cognos_install_path>¥sdk¥java¥AuthenticationProvider¥JDBCSample にCAM_AAA_JDBCSample.jar が作成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/23b2f520-4307-1b68-d322-20a5fa9237ed.png)

#4 CAM_AAA_JDBCSample.jar 配置
作成されたCAM_AAA_JDVCSample.jar をコピーし、フォルダ \<Cognos_install_path>¥webapps¥p2pd¥WEB-INF¥lib に配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/0b7b5b46-4370-c080-b245-dfdabc7d7fd2.png)

#5 JDBC_Config_Restorable.properties 設定
フォルダ \<Cognos_install_path>¥sdk¥java¥AuthenticationProvider¥JDBCSample¥configuration にあるJDBC_Config_Restorable.properties をコピーし、フォルダ \<Cognos_install_path>¥configuration に配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/75d79900-888a-f64f-cf94-de992fbe2539.png)

フォルダ \<Cognos_install_path>¥configuration に配置したJDBC_Config_Restorable.properties を編集します。
下図の赤枠の部分の '#XXX#' を修正します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/b7820915-e4ca-fc64-3e89-3fb6292c605f.png)

以下に、JDBC_Config_Restorable.properties の記載例を示します。
'#XXX#' の修正箇所は赤文字で表示しています。 
※ ホスト名（#server#）とパスワード（#password#) は 'XXXXXX' にマスキングしています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/56e2aaad-b98d-67d0-1a69-b5028d4a43ab.png)

#6 Cognos Configuration 設定
Cognos Configuration を起動し、左側メニューから「セキュリティー」 > 「認証」を右クリック、 「新リソース」  > 「ネームスペース」 クリックし、認証ネームスペースを作成します。
ネームスペースは以下の通り設定します。
・ 名前： Restorable
・ タイプ： カスタム Java プロバイダー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/888c0414-24a0-a173-e455-dc79bd39b45f.png)

作成したネームスペース （Restrable） のリソース・プロパティーを設定します。
左メニューの「セキュリティー」 > 「認証」 > 「"設定したネームスペース名(ここでは Restorable)"」 を開きます。
リソース・プロパティーは以下の通り設定します。
・ ネームスペースID： Restorable
・ Javaクラス名： RestorableJDBCSample
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/d4628539-15cf-6547-3c4c-796c497ebe33.png)

「セキュリティー」 > 「認証」 > 「"設定したネームスペース名(ここでは Restorable)"」 を右クリックし、作成したネームスペースへのログオン テストを実行します。
ユーザーID と パスワード には、[2 ユーザー登録] でUSERSテーブルに登録した情報を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/e6ed69b9-7a2f-32fe-9146-e411eaa0178a.png)

下図のように、全てに緑のチェックマークがついたことを確認したら、テスト完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/16187bc5-8d15-13a5-5258-379920cdd1e3.png)

#7. 匿名アクセス 無効化
IBM Cognosコンポーネントは、デフォルトではユーザー認証は要求されず、匿名でアクセスすることができます。
ユーザー認証でのみアクセスを許可したい場合、IBM Cognos Configuration で匿名アクセスを無効に設定します。

左メニューの「セキュリティー」 > 「認証」 > 「Cognos」 を開きます。
リソース・プロパティーにて、「匿名アクセスを許可」項目を「無効」に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/5a7f1f0b-4121-23e6-3831-75564fb80554.png)

#8 再起動
設定を保存し、Cognos Analytics を再起動します。

「保存」ボタンをクリックし、設定を保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/6f702736-9064-4f62-c045-24ebe064d0fc.png)

保存が完了したら、下図の赤枠の 再起動ボタンをクリックし、Cognos Analyticsを再起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/5bce8584-84f0-59d1-cd19-faeaa70b0af8.png)

再起動が完了したら、Cognos Analytics を開きます。
URL： http://CognosサーバーのIPアドレス:9300/bi

画面右上の「個人用メニュー」アイコンから「サインイン」をクリックすると、サインイン画面が表示されます。
※ Cognos Configuration で匿名アクセスを無効に設定している場合は、そのままサインイン画面が表示されます。

サインイン画面で、設定したユーザーIDとパスワードを入力し、「サインイン」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/90b988eb-d7b3-a4f7-bb47-c0c08bf17dbc.png)

サインインが成功すると、ホーム画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/a0535bcd-f6c4-2bec-5770-77878a06b06e.png)


#自己学習記事一覧
**Cognos Analytics をエンドユーザーの方に自己学習して頂くためのサイト**
https://qiita.com/shinyama/items/95885c7246dc413b6448