IBM COGNOS INTEGRATEDSECURITYMODE 5

IntegratedSecurityMode

Here I would like to explain some moments of managing security with IntegratedSecurityMode=5.

When you configure Cognos TM1 to use IntegratedSecurityMode = 5, in Security -> Clients/Groups you can import clients and groups from Cognos BI security.

The only way to add TM1 native security group is to use TI process function: AddGroup(GroupName);

You can add clients to native TM1 security groups, but if you try to add it to Cognos BI group, the changes will be lost during the next synchronization.

The synchronization happens when the user logins to TM1. So if you just manually added a user (Client) and Cognos BI group, you see no check mark in Clients/Groups. But it will appear on the first user’s login. You don’t even need to add the users manually in TM1. Just add the users in Cognos BI and it will import all the users to TM1 and sets the mapping for each Cognos BI group (to keep the things small TM1 will sync all with the imported Cognos BI groups only).

If a user belong to some group in BI, they will be able to login to TM1Web, but will see nothing there if they are not added to TM1 group.

If you rename a group in Cognos BI, TM1 will not pick up that change and you will need to delete the old & import a new group and re-assign the security.

How to add the first user on a freshly installed TM1 server configured with CAM security.

When you install TM1 server you have just admin user there which is a native TM1 user, so you cannot use it with IntegratedSecurityMode=5.
You need to add your first power user from Cognos BI directory and assign it to ADMIN native TM1 security group.
To do this follow the next steps:
1. Set IntegratedSecurityMode=5, ServerCAMURI and ClientCAMURI in Tm1s.cfg and start TM1 server
2. Login with Cognos BI user.
3. Stop TM1 server, change IntegratedSecurityMode=1, start TM1 server
4. Login as admin (the default password is either blank or “apple”)
5. Right-click your server and go to Security > Client/Groups
6. You will see the BI user you tried to login with before. Add that user to ADMIN group
7. Set IntegratedSecurityMode=5 and restart TM1 server
8. Try logging in with BI user again and check it has admin rights.

111 thoughts on “IBM COGNOS INTEGRATEDSECURITYMODE 5

  1. Hi,
    I am using IntegratedSecurityMode=5 but I am only getting the Active Directory login. Why can’t I access SData with admin/apple anymore? I am asking because I would like to add TM1 users.
    I am using Cognos Express 10.2.2 and followed the documentation for Integration of Cognos BI and TM1. Unfortunately TM1 security is not working anmyore…
    Thanks!

    Like

  2. Hi Markus
    I think you confused TM1 native authentication and TM1 native security. IntegratedSecurityMode=5 means you should use CAM security only, that’s why your TM1 admin account doesn’t work (TM1 native authentication). IntegratedSecurityMode=5 allows to use native TM1 groups to assign security for your Cognos BI users from configured Active Directory. However you will not be able to add new TM1 native groups through GUI, you need to use TI AddGroup() function for that.
    If you need to use TM1 native users, consider IntegratedSecurityMode=1
    But are you sure you need TM1 native users if you have already and Active Directory which I assume contains all of your users?

    Vlad

    Like

  3. Hi,
    This blog i find it very useful. But currently we are using TM1 IntegratedSecurityMode=1 for TM1 web clients with our own datamodal. Now have to change the configuration setting as TM1 IntegratedSecurityMode=5, but I dont have IBM BI installed for this.

    Now I have intalled and trying to add Namespace Under BI security but dont know have any clue on what Host,port, NamesapceID need to give for Active Directory .. I have configured the ServerCAMURI and ClientCAMURI in Tm1s.cfg. By the way am new to BI and TM1. kindly get back. Thanks

    Like

  4. Hi,
    I have found the Activedirectory info, and it looks working now. But have another question, how the roles and groups which is defined in TM1 will be used/applied for the user.. Because i have login with windows username and pwd. How the access permissions will be applied for the user.

    Like

  5. thanks for your quick reply. Then its like i have to configure all the users, groups and roles in BI security namespace? If so, how can i assign those users according to tm1 permissions???

    Like

  6. First of all read the difference between IntegratedSecurityMode = 4 and IntegratedSecurityMode = 5. The last one supports both Cognos BI and TM1 groups.
    You are right, you create groups in Cognos BI then you can import them in TM1., again it is well documented. You can also create groups in TM1 using TI function AddGroup(). I would suggest to import at least one BI group, then see }Groups TM1 system dimension for names used for BI groups

    Like

  7. to wrap it up:
    1). You create groups in Cognos BI
    2). You add users to those groups in Cognos BI
    3). You import those groups in TM1. (or use AddGroup() function in TI)
    4). You set security for those imported groups in TM1

    Like

  8. Thanks for your response and i clearly understood.. As i said earlier i very new to BI and TM1, I dont know how to add groups for AD Namepace in Cognos BI.. I know i cant create any new users under this, i have just assign users to the new groups which i created…

    Like

  9. Do create groups in “Cognos” directory (Cognos Administration > Security > Cognos). But you add “Members” to those groups from LDAP namespace (or whatever you called it). See Cognos doc on how to Add or Remove Members of a Cognos Group or Role.

    Like

  10. thanks. I have added a new group in Cognos namespace, and added the AD users into
    new group. But I set anonymous access as false in cognos namesapce. so i cant add groups when I login as AD users in TM1 server bcoz cognos is another namespace. In IBM configuration, i have a seperate namespace of type ADS.
    So I directly added from AD namespace user into TM1 .. is it ok???

    Now another problem is with TM1 web client.. I did the necessary config but when i log in error as : “The TM1Web service parameter was not specified or is not one of the configured locations ‘”.. any suggestion?? in tm1wen.html i have added tm1webServices with servername:port – localhost:9510

    Like

  11. 1. You cannot directly add the users in TM1.. Anonymous access must be set to false. The user will appear in TM1 after the first login to TM1 (via any TM1 client). Read this post explaining exactly this situation, setting up ADMIN permissions for Cognos BI user

    2. You have to add tm1web host / port in TM1Web.html located in \webcontent\tm1\web
    var tm1webServices = [“http://your_TM1Webhost_fully_qualified_domain_name:9510”];

    Like

  12. Thanks for your reply..
    1. Ya thats ture. User has appeared in TM1 }clients, When user first logged in. Then I manually assign the user to the groups in TM1.

    Currently i dont have any user groups in BI. I didnt install BI using easy install , so cant create user in BI so I have created AD authentication provider Namespace in BI from there i have imported users to TM1, then assign the TM1 groups to them… Is it right.
    ** i will go through the post ***

    2. I have given the FQDN in tm1web.html and variables_tm1.xml but its showing “DPR-ERR-2079 Firewall Security Rejection. Your request was rejected by the security firewall.”

    while testing the tm1web client : needd to give the “”http://FQDN:port/tm1web”” rite

    3. we have an “web application” which uses the tm1 data. so for i worked with integratedsecuritymode = 1 with “http://localhost:9510/tm1web/dwrx/jsonp/TM1Service/login”, but hereafter it should work with integratedsecuritymode =5. Do u have any idea of how to configure the login page of web appliation.

    Like

  13. Question 3: Currently from my application Iam making ajax request and passing the “clientCAMURI” and “Authorization: CAMNamespace base64(user:password:namespace)” set in Http header but its shows 401. errror . How can I validate the cam passport against the ServerCAMURI ????

    Like

  14. Are you trying to use TM1 REST API? If yes, you need to set ‘Authorization’ header to ‘CAMNamespace ‘ + btoa( YOUR_USER_NAME + ‘:’ + ‘YOUR_USER_PASSWORD’ + ‘:’ + YOUR_LDAP_NAMESPACE );
    and of course set ‘Content-type’ to ‘application/json; charset=utf-8’

    Like

  15. btoa means what??? I am passing like that only but server responds as
    HTTP/1.1 401 Unauthorized
    Content-Type: text/plain
    Content-Length: 0
    Connection: keep-alive
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Origin: http://
    Access-Control-Expose-Headers: Set-Cookie, WWW-Authenticate
    Set-Cookie: TM1SessionId=fHAvAYqL0q-IIIV39JA6oA; Path=/api/; HttpOnly
    WWW-Authenticate: CAMPassport http://localhost/ibmcognos/cgi-bin/cognos.cgi, CAMNamespace

    Like

  16. ajax call as
    $.ajax({
    type: “POST”,
    url: “http://localhost/ibmcognos/cgi-bin/cognos.cgi”,
    dataType: “json”,
    beforeSend: function (xhr: any) {
    xhr.setRequestHeader(“Authorization”, “CAMNamespace ” + base64credentials);
    xhr.setRequestHeader(“Content-Type”, “application/json”);
    },
    xhrFields: {
    withCredentials: true
    },

    Like

  17. 1. Google is your friend for “btoa javascript”
    2. From what I see you are trying to login to Cognos BI, not to TM1 REST API. I don’t remember exactly the syntax to authenticate to Cognos BI, but it should be all documented. What are you trying to achieve after?

    Like

  18. sry instead of giving tm1 resturl api in url, i have given cognos gateway uri .
    currently am using integratedsecuritymode = 5 right, so thought of giving cognos uri,
    to make it work.

    How to find the path for tm1 intance which am connecting??
    ex: localhost/tm1/api/test

    Like

  19. I have changed the url with TM1 REST API, but again same problem

    but server responds as
    HTTP/1.1 401 Unauthorized
    Content-Type: text/plain
    Content-Length: 0
    Connection: keep-alive
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Origin: http://
    Access-Control-Expose-Headers: Set-Cookie, WWW-Authenticate
    Set-Cookie: xxxxxx Path=/api/; HttpOnly
    WWW-Authenticate: CAMPassport http://localhost/ibmcognos/cgi-bin/cognos.cgi, CAMNamespace

    Like

  20. Currently our application is in integratedSecurityMode=1 using TM1 and we didnt use Cognos BI so for. Now we are planning to switch integratedSecurityMode=5. I am new to TM1 and BI as well. Intially i tried to install Bi, configuration and creating namespace now TM1 server and web client is working integratedSecurityMode=5.

    We do have our own web application in which we use web uri and restapi. Now web application should also work with integratedSecurityMode=5. For the we application, we have login screen. so when i made an ajax call to above its showing error.

    Hope you understand the scenario… Do post your suggestion for this error.

    Like

  21. Hi,
    The problem is fixed. There was a problem in FQDN resturl which I passed and NamespaceId. Initially I passed the Namespace Name, so it was not working. Now it looks working but end up with another problem:)

    Like

  22. Hi,
    Currently am using web url api for opening the CUBE and worksheet in my application. Earlier I was using web url api with session token when IntegratedSecuritymode=1, but now i have changed IntegratedSecuritymode=5, how can i achieve the same.

    Do i need to pass CAM passport in each request. Dont have any clue.
    Now my request is http://localhost/tm1web/UrlApi.jsp#Action=Open&Type=CubeViewer&Cube=cubename&View=viewname&AccessType=Public&SessionToken=” –> not working

    Do post your suggestion

    Like

  23. ok..thank you. Oh, yeah.. native TM1 web login page is coming, then when I click login, some 0x80070005 – Runtime Error in JavaScript: Access denied. I think problem with … But in the application it tries to load IBM cognos Logon page… its not loading properly,

    What could be the problem??

    May be next I will integrate SSO. once this above problem is fixed.

    Like

  24. 1. That error says nothing, First of all try adding TM1Web host to the trusted websites.
    2. What do you mean “in the application”?

    Like

  25. 1. Tm1 web host to trusted websites- in Internet explorer, i have added.
    You mean “UseSSL” parameter in tm1s.cfg. That is set to UseSSL=F. Do you mean this?

    Like

  26. 2. Application where will show data from TM1, so make a call to TM1 Rest api for some business purpose and load the cube, reports from TM1 web client developed in c#

    Like

  27. Hi, I still struck with the same problem. In my application “0x80070005 – Runtime Error in JavaScript: Access denied” error is coming but loading the IBM cognos BI Logon but system got hanged everytime. I think you are right problem may be cross-domain communication issues with iframes, what is the fix???

    Like

  28. The default SSL certificates that come with TM1 server installation, do not provide a “proper subject” (representing the hostname) and such will not pass browser’s and other web libraries host verification feature. In addition the ApplixCA which signs those certificates is not trusted by anything but Windows (if the certificate was added to the box’s keystore during install, which they are by default). You should install and configure custom SSL, which basically means to create proper certificates for the TM1 server instances and sign them with a trusted certificate authority.
    For possible cross-domain communication issues search on google, this question should be address to web developers

    Like

  29. That definitely requires to have a closer look, but unfortunately I don’t have time now. You can continue your investigation and post your findings, I will try to help as much as I can

    Like

  30. In IBM it stated that for tm1 web url api:

    Login request parameters
    Use the session token approach by sending a set of parameters in the request for the type of authentication that you are using with Cognos TM1.

    For TM1 standard authentication and integrated login, use the following parameter format:
    a)
    param0=TM1_Admin_host
    param1=TM1_server_name
    param2=username
    param3=password
    For example:

    param0=localhost&param1=SData&param2=admin&param3=apple

    If you are using IBM® Cognos Business Intelligence security for authentication, use the following format to include a value for the camPassport:
    b)
    param0=TM1_Admin_host
    param1=TM1_Server_name
    param2=camPassport

    Which means do i need to pass b) set of parameters to get the session token, only with the help of session token can I access the cube and websheet from tm1,

    Still with same issue…

    Like

  31. Hi,
    I have a question. Im my web application when I make a login as *///ActiveSession/User/ request to REST API with username:password:namespaceId – but it returns JSON response as Name=””, IsActive=true etc… and logged in successfully. But it doesnt return the cam_passport. How can i get the CAM Passport???

    As suggested in IBM above i have passed the cam_passport, admin and servername for getting the SessionToken from tm1web as follows

    http://localhost:9510/tm1web/UrlApi.jsp#Ation=Open&Type=WebSheet&Workbook==&TM1Server=xyz&Adminhost=local&SessionToken=bsgsg-4542-45fe-8f40-131bc08f948b
    . But responded with SessionToken, Is it something like i have to pass sessiontoken for every request to web url api

    Like

  32. Hi,

    so set in tm1web_config.xml

    Now page is loading but data not loaded in reports, only websheet templates is shown. Any idea??? but 0x800a138f – JavaScript run-time error: Unable to get split property of undefined or null pointer. and 0x80070005 – Runtime Error in JavaScript: Access denied are still exists. Any idea???

    Like

  33. –Ignore the above
    Hi,
    —- IBM TM1—- When performing CAM authentication, optional redirection url override example http://127.0.0.1:9510/tm1web
    add key=”ExternalUrl” value=”http://localhost:9510/tm1web”
    so set the “ExternalURL” in tm1web_config.xml

    Now page is loading but data not loaded in reports, only websheet templates is shown. Any idea??? but 0x800a138f – JavaScript run-time error: Unable to get split property of undefined or null pointer. and 0x80070005 – Runtime Error in JavaScript: Access denied are still exists. Any idea???

    Like

  34. Hi, while working on Javascript issues, jquery.js lib file was corrupted. I dont have any clue why, using bower when i try to install the Jquery but its not working anymore. In Visual studio its saying jQuery not installed. and showing jquery/dist/jquery.min.js error 0x800a139e. Do you have any idea??

    Like

Leave a comment

Design a site like this with WordPress.com
Get started