Cognos Analytics と ISAM(TAM)でSSO実装する時に必要な設定

#Cognos Analytics とISAM(TAM)のSSO
Cognos Analytics 11.0.13でしたが、ISAM(IBM Security Access Manager)※旧TAMとのSSO構成で苦労しましたので、発生事象と解決方法をフィードバックしておきます。

ISAMは標準ジャンクションで、**-j**オプションを付与して構成していました。

<参考>
**Cognos のTivoli Access Manager(TAM)経由のSSOでジャンクション作成時の-jオプションが必要**
https://qiita.com/shinyama/items/498c80213accdc7050bd

#問題1：SSOログイン時にエラー
-jオプションのみだと、Cognos Analytics 11.0.13では以下のエラーとなりました。
factoryMode=trueの設定うんぬんというメッセージの画面でエラーとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/65ecda1b-8bca-3f59-4184-d75392c8ca9e.png)

ブラウザのF12ツールで解析したところ、URL遷移で「installMode」という箇所で、403(Forbidden)で返っていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147246/8ecd29cc-5e08-29d8-01c6-9de67bea67ea.png)

これは正にこのTechnoteの問題でした。
**403 (Forbidden) is returned when accessing Cognos Analytics via SSO and a WebSeal Junction.**
https://www-01.ibm.com/support/docview.wss?uid=ibm10725451

対応としては、WebSealの構成ファイルにこちらを記載して、XSRF-TOKENというクッキー名称を保護する事が必要でしたが、この設定は特定のジャンクションだけでなく、WebSeal全体への設定のため、影響範囲が大きいという問題がありました。
[preserve-cookie-names]
name = XSRF-TOKEN

そのため、-jオプションに加えて、**-n**オプションを付与して、ジャンクションを作成する事で、この問題は回避できました。
https://www.ibm.com/support/knowledgecenter/SSPREK_9.0.6/com.ibm.isam.doc/wrp_config/task/tsk_prsrv_cookie_name_all.html

#問題2：IEブラウザがドキュメントモードIE5で表示され、表示が崩れる
ISAM経由だとIE11とEdgeブラウザのみ表示が崩れるので、F12キーで確認すると、ドキュメントモードがIE5に変換されていました。
※ISAM経由せず、Cognos Analytics直接だとEdgeモード

同じWebSeal経由でもCognos 10 BIでは問題ないのに、Cognos Analytics 11では問題が発生するので調べたところ、ポータル画面のX-UA-Compatibleの指定が製品として異なる事がわかりました。

◆Cognos 10 BIのポータルのソースのヘッダー（X-UA-CompatibleはIE=5） 

```html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" " http://www.w3.org/TR/html4/strict.dtd "> 
<html lang="ja"> 
 <head> 
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
 <meta http-equiv="X-UA-Compatible" content="IE= 5 "> 
```

◆Cognos Analytics 11.0.13のポータルのソースのヘッダー（X-UA-CompatibleはIE=edge） 

```html
<!DOCTYPE html> 
<html lang="en-us" dir="ltr" class="chrome"> 
 <head> 
 <meta charset="utf-8"> 
 <meta content="images/logo_s.png" itemprop="image"> 
 <meta http-equiv="X-UA-Compatible" content="IE= edge "> 
 <meta name="mobile-web-app-capable" content="yes"> 
 <meta name="apple-mobile-web-app-capable" content="yes"> 
 <meta name="apple-mobile-web-app-status-bar-style" content="black"> 
 <meta name="msapplication-TileImage" content="images/logo_s.png"> 
 <meta name="msapplication-TileColor" content="#26A9E1"> 
 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"> 
```

Cognos Analyticsのポータル画面で、しっかりと指定されているX-UA-Compatible IE=edge がIE=5に書き換えれれてしまうのか、という点は、ISAMを経由するとソースの一番先頭に付与される、以下の記載が原因でした。

```html
<SCRIPT type="text/javascript">
/*<![CDATA[*/ 
document.cookie = "IV_JCT=%2FXXXX; path=/";
/*]]>*/ 
</SCRIPT>
```

この解決策としては、ジャンクション作成時に**-J inhead** を付与して、上のISAMにより付与された5行を、もう少し後ろの\<head>の中の\<SCRIPT>の箇所に移動するというオプションになります。
これにより、以下の部分がISAM経由でもソースの先頭となり、しっかしとDOCTYPEやX-UA-Compatible IE=edge が読み込まれて、ドキュメントモードedgeで表示されました。

```html
<!DOCTYPE html> 
<html lang="en-us" dir="ltr" class="chrome"> 
 <head> 
 <meta charset="utf-8"> 
 <meta content="images/logo_s.png" itemprop="image"> 
 <meta http-equiv="X-UA-Compatible" content="IE= edge "> 
```

#まとめ
Cognos Analytics とISAM(TAM)の標準ジャンクションでSSOを構成する場合は、以下のオプションを付与してジャンクションを作成する必要がある、という結果になりました。

**-j -J inhead -n**

同じ構成をやって困った時に、是非思い出して頂ければと思います。