1

Cognos TM1 10.1 API を使用してサーバーに接続しています。サーバーは認証に Cognos を使用し、次に統合ログインを使用して Active Directory のインスタンスに対してユーザーを認証します。と を使用してみましTM1SystemServerConnectTM1SystemServerConnectIntegratedLoginが、どちらもエラーが発生します。

(簡単にするために疑似コードを使用したことに注意してください-はい、すべてのハンドル、入力などが正しく正確であることを確認しました)

// Standard login
TM1V pLogin = TM1ValuePool( hUser );
TM1V hServerName = TM1ValString( pLogin, "server", 0 );
TM1V hUser = TM1ValString( pLogin, "userid", 0 );
TM1V hPassword = TM1ValString( pLogin, "password", 0 );
TM1SystemServerConnect( pLogin, hServerName, hUser, hPassword )
// Integrated Login
TM1V pLogin = TM1ValuePool( hUser );
TM1V hServerName = TM1ValString( pLogin, "server", 0 );
TM1V hServer = TM1SystemServerConnectIntegratedLogin( pLogin, hServerName );

両方の (hServer) から返されたハンドルは、コード199とメッセージのエラーを示していますSystemServerCAMSecurityRequired。IBM のTM1 API ガイドを検索しましたが、解決策 (またはこのエラー メッセージのドキュメント) が見つかりません。何が起こっているのですか? サーバーのログには、失敗したログイン試行回数が示されますが、追加情報は提供されません。

4

1 に答える 1

1

エラーは、上記で使用された 2 つの文書化されたログイン関数が特にIntegratedSecurityMode 1、2、および 3 に対応しているためです。

モード 4 または 5 のいずれかであるユーザー認証を処理するために Cognos を使用していることを示しました。

Cognos 認証を使用して接続するための参照を使用できる、C++ で記述されたサンプル (ここからコピー) を次に示します。

TM1V voServerName = TM1ValStringW( hPool, (TM1_UTF16_T *)pszServerName, 0 );

TM1V voPasswd = TM1ValStringEncryptW( hPool, (TM1_UTF16_T*)pszPassword, 0 );

TM1V vArray[3];
vArray[0] = TM1ValStringW( hPool, (TM1_UTF16_T*)szCAMNamespace, 0 );        
vArray[1] = TM1ValStringW( hPool, (TM1_UTF16_T*)admin_login_name, 0 );
vArray[2] = voPasswd;

TM1V vCAMArgArr = TM1ValArray(hPool, vArray, 3);
TM1V vTmpServer =
    TM1SystemServerConnectWithCAMNamespace(hPool, voServerName, vCAMArgArr);
于 2014-01-24T15:49:19.810 に答える