Cognos Analytics

 View Only

Administration: Cognos Analytics Authentication with PingFederate OpenID

By ANTONIO MARZIANO posted Thu April 18, 2019 08:30 AM

  
The purpose of this blog is to provide a step-by-step guide to setting up a Ping Federate OpenID Namespace by configuring Ping Federate first and then create a Ping Namespace.

It will be assumed that Ping Federate 9.2.2 is installed first and can log into the administration console.
NB: A warning that every changes that are made you must make sure those changes are saved which means making sure the "Save" button is clicked at the end of each section.

Lab Environment:
Windows 2016
CA 11.1 (also applies to CA 11.0.8+)
Active Directory Domain: CASUPPORT.SUPPORT2016.AD.HURSLEY.IBM.COM

Configure Ping Federate

1. Once logged into the administration console(default port is 9999):

https://iacssuk16srv2.casupport.support2016.ad.hursley.ibm.com:9991/pingfederate/app

Click on System - Protocol Settings


2. Click on Roles & Protocols and only select the following role(s) and protocol(s)





3. Make sure the Datastore i.e. connection to the on-prem AD is created:






4. Click on Password Credentials Validators


5. During the initial installation a Password Validator would be pre-configured. However, below is what it should look like


6. Click on Extended Contract and add the sAMAccountName attribute



Summary



7. Move to Identity Provider



8. Click Adaptors





9. Click on Extended Contract and add sAMAccountName



10. Click on Adaptor Attributes and make sure username is selected



11. Save and switch to OAuth Server and select Authorization Server Settings



12. Make sure the following are selected





13. Save and click Scope Management



14. Add openid email profile scopes





15. Save and click on IdP Adaptor Mappings


16. Under SOURCE ADAPTOR INSTANCE select "HTML Form Adaptor"


17. Click on Add Mapping




18. Map each Contract to Source



Summary



19. Save and click on Resource Owner Credentials Mapping



20. Drop down SOURCE PASSWORD VALIDATION INSTANCE and select Password Validator



21. Select Add Mapping





Summary


22. Save and switch to CERTIFICATE & KEY MANAGEMENT and select Signing & Decryption Keys & Certificates



23. Create a new certificate by clicking on Create New and only populate the highlighted fields


NB: COMMON NAME, ORGANISATION and COUNTRY can be anything





Summary





24. Switch to TOKEN MANAGEMENT and click on Access Token Management and create a new instance




INSTANCE NAME & INSTANCE ID can be anything



25. Click on Instance Configuration and click Add a new row to 'Certifications'







26. Click on Access Token Attribute Contract



27. Add username and click Add



28. Drop down the USER_KEY and select the newly created username



IMPORTANT: After these changes have been saved the "ACCESS TOKEN MAPPING" link will become available in the main admin page.



29. Click on Access Token Mapping and drop down the CONTEXT: and select Default



30. Click on Add Mapping


31. For username select Persistent Grant and the next drop-down select USER_KEY





Summary



32. Save and then select OpenID Connect Policy Management and then Add Policy





33. For the Policy that was previously created select the following options:



34. Click Next to Attribute Contract and delete all attributes that are not required and/or are not associated with AD so what is left is the following and also add the groups attribute:




35. Click Next to Attribute Sources & User Lookup




36. Click on LDAP Directory Search


37. Add the BaseDN and then map the AD attribute to its ObjectClass


Under "Attributes to return from search" drop down the ROOT OBJECT CLASS "-SELECT-" and select the objectClass and on the right select the attribute from the above list.

Here is the list of ObjectClass mapping to each Attribute:

InetOrgPerson - displayName, givenName, HomePhone
user - LocalID, upn (userPrincipalName)
top - memberOf, name
person - sn

38. Click on LDAP Filter and type in the filter expression : sAMAccountName=${username}



39. Click Save and then click on Contract Fulfillment and here each attribute contract needs to be mapped to the source (LDAP)




40. Click Save and go back to Policy Management and from the Action select "Set as Default"



NB: If the above section is not found, click back to OAuth Server - OpenID Connect Policy Management

Create the Client

41. Click on OAuth Server - Clients - Create New



42. Type in the ClientID and for Client Authentication select CLIENT SECRET


43. Generate a new Client Secret by selecting CHANGE SECRET and click "Generate Secret"



NB: The client secret is visible only once so copy the value in a safe place as it will be needed as part of the Cognos Analytics OIDC Namespace Settings. If the secret is lost then the process to generate the value will need to be repeated.

44. Add the Cognos Analytics Redirect URL and select the following GRANT TYPES:


Then select the DEFAULT ACCESS TOKEN MANAGER and ID Token Signing Algorithm


45. Save


Setup Cognos Analytics Generic OpenID Namespace

46. Download the certificate to the <installation>/bin directory using Firefox



47. Open a command prompt and import the certificate to the CA Keystore



48. Create a new Namespace for OpenID Connect and select 'PING'. Then populate the required fields:

Discovery Endpoint : https://iacssuk16srv2.casupport.support2016.ad.hursley.ibm.com:9931/.well-known/openid-configuration
Client ID: PingME
Client Secret: {secret}

49. Test the namespace and if all validations are green then its successful



Finally launch the CA URL and log in








Groups should also be included in the users identity and to confirm this go to:
Manage - People - Accounts - <PingNamespace>




Additional Information:
In 11.1.4+ there are 4 new advanced configuration items:

name
authorizeEPAddParms (authorize redirect)
pgTokenEPAddParms (on password grant flow to the token endpoint)
rtTokenEPAddParms (on refresh token flow to the token endpoint)
codeTokenEPAddParms (on authorization code flow to the token endpoint)

This allows you to control exactly what addition parameters are added and specifically to which endpoints. Given the "resource" parameter could be represented using the new advanced configuration items, the value let's you put whatever you want in the URL... as a consequence, the value must include the &, the parameter name, and the parameter value which MUST be url encode e.g.

name    value
authorizeEPAddParms  &resource=HTTPS%3A%2F%2FADFS_SERVER




#Administration
#CognosAnalyticswithWatson
#home
#LearnCognosAnalytics
0 comments
93 views

Permalink