Configurazione di
Clarity
per il supporto di SAML 2.0

Clarity
15.8.1 e le versioni successive consentono ai clienti on-premise di utilizzare le credenziali emesse da un IDP che supporti SAML 2.0
ccppmop1581
Clarity
15.8.1 e le versioni successive consentono ai clienti on-premise di utilizzare le credenziali emesse da un IDP che supporti SAML 2.0 ed effettuare l'accesso a
Clarity
.
Di seguito si riportano alcuni dei vantaggi principali offerti dall'accesso SSO basato su SAML:
  • Integrazione totale tra le reti e gli ambienti: tutti gli utenti possono navigare facilmente tra l'Intranet dell'organizzazione e
    Clarity
    .
  • Gestione semplificata delle password: non è necessario gestire le password degli utenti separatamente da
    Clarity
    , poiché il sistema di gestione degli utenti esistente include la gestione delle password.
Clarity
supporta SAML utilizzando un oggetto virtuale e API REST che consentono di caricare i metadati SAML come file in
Clarity
. Una volta che il file è stato caricato correttamente, una chiamata API REST nello stesso oggetto virtuale fornisce i metadati SAML di
Clarity
che possono essere utilizzati da IDP per completare la connessione a
Clarity
.
Clarity
dispone inoltre di endpoint API REST aggiuntivi che consentono di modificare ed esaminare i metadati configurati in
Clarity
.
È necessario eseguire due azioni chiave per abilitare il supporto di
Clarity
per SAML 2.0:
  1. Importare i metadati SAML per il proprio IDP utilizzando le API REST.
  2. Configurare
    Clarity
    per abilitare l'autenticazione SAML.
2
Configurazione di SAML con le API REST
Ciascun provider di identità che supporta SAML 2.0 fornisce un metodo per condividere i metadati SAML con altre applicazioni. Contattare l'amministratore della protezione dell'organizzazione per specificare i metadati SAML per il proprio IDP. È quindi possibile importare il file di metadati SAML in
Clarity
utilizzando l'API REST samlMetadata.
Clarity
fornisce tre API REST che consentono di configurare SAML per i clienti on-premise.
  • samlMetadata: consente di importare i metadati SAML in
    Clarity
  • samlConfigs: consente di visualizzare i metadati configurati dai metadati IDP caricati
  • certs: consente di esaminare e rimuovere i certificati di firma aggiunti come parte del caricamento dei metadati IDP
Di seguito si descrive come utilizzare ciascuna API.
Utilizzo dell'API REST samlMetadata
L'API REST samlMetadata supporta i metodi POST e GET. È possibile chiedere al provider IDP o all'amministratore della protezione di fornire i metadati SAML e importarli in
Clarity
utilizzando questa API. L'API viene anche utilizzata per recuperare i metadati del provider dei servizi (SP) di
Clarity
. L'endpoint è supportato da un oggetto virtuale.
Di seguito si riportano alcuni esempi:
POST
: http://<hostname>:<port>/ppm/rest/v1/virtual/samlMetadata
Clarity
Il corpo della chiamata deve essere costituito da un file XML multipart/form-data contenente i metadati dell'IDP. La risposta conterrà l'ID della configurazione SAML caricata correttamente.
Esempio di risposta
{ "code": null, "_self": "/rest/v1/virtual/samlMetadata", "id": 5007000 }
GET
: http://<hostname>:<port>/ppm/rest/v1/virtual/samlMetadata/<id>
È possibile utilizzare l'ID della risposta del metodo POST per recuperare i metadati SP da
Clarity
. Il corpo della risposta sarà un file XML contenente i metadati SP. È possibile condividere questo file con l'amministratore della protezione o il provider IDP, se si utilizza SSO confederato.
Sample Response
<?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2020-05-31T21:55:30Z" cacheDuration="PT604800S" entityID="http://<hostname>/niku/nu#action:union.samlMetadata" ID="CLARITY_161912a9-3038-4293-b5ee-c7e5adb4d1a3"> <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://<hostname>/niku/nu#action:homeActionId" index="1" /> <md:AttributeConsumingService index="1"> <md:ServiceName xml:lang="en">68878c58d4a9484bb61c916a5b2117bf</md:ServiceName> <md:ServiceDescription xml:lang="en">4cf8b05d-7c8c-4c55-b8a8-6160b04ccd4e</md:ServiceDescription> <md:RequestedAttribute Name="Login" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="Login" isRequired="true" /> </md:AttributeConsumingService> </md:SPSSODescriptor> </md:EntityDescriptor>
Utilizzo dell'API REST samlConfigs
L'API REST samlConfigs consente di visualizzare i metadati configurati dai metadati IDP caricati. Questo endpoint è supportato da un oggetto che utilizza la tabella CMN_SEC_SAML_CONFIGS per archiviare i dati. L'endpoint supporta i metodi GET e DELETE per esaminare e rimuovere i metadati. L'API richiede l'ID dei metadati SAML aggiunti mediante la chiamata samlMetadata POST.
Di seguito si riportano alcuni esempi:
GET
: http://<hostname>:<port>/ppm/rest/v1/samlConfigs/id
Sample Response
{ "code": "68878c58d4a9484bb61c916a5b2117bf", "_links": { "requestedAuthnContext": "/rest/v1/lookups/AUTHN_CONTEXTS/lookupValues", "signingAlgorithm": "/rest/v1/lookups/SIG_ALGORITHMS/lookupValues", "ssoServiceBinding": "/rest/v1/lookups/SERVICE_BINDINGS/lookupValues", "nameIDFormats": "/rest/v1/lookups/NAME_ID_FORMATS/lookupValues", "spCertificateID": "/rest/v1/lookups/CMN_SEC_CERTIFICATES/lookupValues", "assertionConsumerBinding": "/rest/v1/lookups/ASSERTION_BINDINGS/lookupValues", "idpSingleLogoutServiceBinding": "/rest/v1/lookups/SERVICE_BINDINGS/lookupValues", "x509Certificate": "/rest/v1/lookups/CMN_SEC_CERTIFICATES/lookupValues" }, "technicalContactEmail": null, "idpSingleLogoutResponseURL": null, "entityID": "http:///<hostname>/niku/nu#action:union.samlMetadata", "assertionConsumerBinding": { "displayValue": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", "_type": "lookup", "id": "HTTP-POST" }, "idpSingleLogoutServiceBinding": { "displayValue": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "_type": "lookup", "id": "HTTP-Redirect" }, "_internalId": 5007000, "assertionConsumerURL": "http://<hostname>/niku/nu#action:homeActionId", "signIncomingAssertions": null, "idpSingleLogoutURL": null, "spCertificateID": null, "_self": "/rest/v1/samlConfigs/5007000", "x509Certificate": { "displayValue": "1736ed50-b78c-447a-87a6-b99f6d183124", "_type": "lookup", "id": "5007000" }, "organizationName": null, "signSpAuthnRequest": null, "supportContactEmail": null, "encryptSpNameID": null, "emailDomains": null, "active": true, "organizationURL": null, "encryptIDPAssertions": null, "idpEntityID": "http://www.okta.com/exk1oz6rd3nMZuc1o357", "supportContactName": null, "privateKey": null, "requestedAuthnContext": { "values": [ { "displayValue": "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified", "id": "authncontextunspecified" } ], "_type": "lookup" }, "isDefault": false, "createdDate": "2020-05-29T14:54:07", "organizationDisplayName": null, "isJITEnabled": false, "signingAlgorithm": null, "ssoServiceBinding": { "displayValue": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect", "_type": "lookup", "id": "HTTP-Redirect" }, "technicalContactName": null, "nameIDFormats": { "values": [ { "displayValue": "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress", "id": "emailAddress" } ], "_type": "lookup" }, "name": "4cf8b05d-7c8c-4c55-b8a8-6160b04ccd4e", "signspMetadata": null, "signSpLogoutRequest": null, "organizationLanguage": null, "encryptIDPNameID": null, "signIncomingMessages": null, "ssoServiceURL": "https://dev-388382.okta.com/app/broadcomdev388382_ssotestingapp_1/exk1oz6rd3nMZuc1o357/sso/saml", "uniqueIDPrefix": "CLARITY_" }
DELETE
: http://<hostname>:<port>/ppm/rest/v1/samlConfigs/id
Non esiste alcun contenuto di risposta. Il codice di stato 200 indica che l'eliminazione è stata eseguita correttamente. È necessario utilizzare il metodo DELETE solo se si desidera eliminare un IDP configurato in precedenza.
Utilizzo dell'API Certs
L'API REST certs consente di esaminare e rimuovere i certificati di firma aggiunti come parte del caricamento dei metadati IDP. Questo endpoint supporta i metodi POST, PUT, GEt, DELETE per consentire tutti i metodi API REST. È possibile aggiungere più API cert, tuttavia ne verrà utilizzata una sola con l'API samlConfig associata. Tutti i certificati vengono archiviati nella tabella CMN_SEC_CERTS.
Quando samlConfig viene eliminato, è consigliabile eliminare anche il certificato associato utilizzando il metodo DELETE sull'endpoint certs.
Clarity
non elimina cert con l'eliminazione di samlConfigs.
GET
: http://<hostname>:<port>/ppm/rest/v1/certs shows you all the certificates in the system.
Response { "_internalId": 5007000, "lastUpdatedDate": "2020-05-29T14:54:07", "code": "225bed25b3cb475b8ee21e386aa9dfcf", "createdDate": "2020-05-29T14:54:07", "name": "1736ed50-b78c-447a-87a6-b99f6d183124", "active": true, "certificateText": "MIIDpDCCAoygAwIBAgIGAWxzUfPjMA0GCSqGSIb3DQEBCwUAMIGSMQswCQYDVQQGEwJVUzETMBEG\nA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEU\nMBIGA1UECwwLU1NPUHJvdmlkZXIxEzARBgNVBAMMCmRldi0zODgzODIxHDAaBgkqhkiG9w0BCQEW\nDWluZm9Ab2t0YS5jb20wHhcNMTkwODA4MjIxOTQ2WhcNMjkwODA4MjIyMDQ2WjCBkjELMAkGA1UE\nBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDTALBgNV\nBAoMBE9rdGExFDASBgNVBAsMC1NTT1Byb3ZpZGVyMRMwEQYDVQQDDApkZXYtMzg4MzgyMRwwGgYJ\nKoZIhvcNAQkBFg1pbmZvQG9rdGEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nm6kwTtIWitWvgGrBmSAJrKcVq+FUKOuPycnGmVfAw4OVV99ca4Qj8xOSEiY5ut0UMtPI/BXb+enZ\ngXib2O96OH2VPW41PcqToqyIo+bBXPLDdVita2f54xZhk+/tQClrQvqfqzakp9CdZr5HFJ3bXMYF\nrQHXOATPAGy0IcmM7jSEeXUIpJ4yHTRQOE+fkDZ2+z/mWA25W7xU8aExNrVAM8MozOuYQinHGB3o\nifGbsMMWXc0TXbNi/D8kmCEtE16PBscs8Vq5thLWPC4wbEhDPQ6Do4HCkqapsUuIL3VS4tyDS/Zq\n6Zbu7YzM571zUQfvS0J1YH63QvX86U9RWMJPQQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAzbfvC\nBvuD6zxgSFpxf3UbAmZoQpvMW2cS4JloYaiToD9qoGCjzAEgCdnVJkf3yC3fRmhQ4brQ62hFKEi7\nO2rn2lx4Nj22VlLr5ojJmq6BANzfbkif2tk/f5JeKkLtCDNQsQ/VubYwXZCcdZ0PHvUdSoR4t4NJ\npDkXYRSIR7PHhgdlchs5JCcpDott2ARwH1y58tJRoUesFzwUA10i58NPa3cw8UMPKBJMKpLeCQ3K\n/6iUoVkgltOQdTWIGbqT91IYgZgHYX0FAhpqmLm8IAlHqYtVET/XNoOHMvg8IAfCSUuVg6hDJJEu\nfTU0RNwkAcwBeFmUEGM527j7IQ3Q7Yqz", "_self": "/rest/v1/certs/5007000", "startDate": null, "expirationDate": null }
DELETE
: http://<hostname>:<port>/ppm/rest/v1/certs/id will delete a specific cert from the system. There is no response body. A status code 200 indicates the DELETE worked.
Configurazione di
Clarity
per il supporto di SAML 2.0
Eseguire le azioni descritte di seguito per configurare
Clarity
per il supporto di SAML 2.0.
  • Abilitare il supporto SAML attivando la funzione di attivazione/disattivazione.
  • Abilitare l'autenticazione SAML nella pagina Opzioni di sistema
  • Verificare che i nomi utente corrispondano in
    Clarity
    e IDP
  • Impostare il tipo di token su Intestazione in CSA.
Abilitazione dell'autenticazione SAML
È necessario abilitare l'autenticazione SAML in Classic PPM. Procedere come descritto di seguito:
  1. Accedere a Classic PPM e selezionare
    Amministrazione
    ,
    Opzioni di sistema
    per aprire la pagina Opzioni di sistema.
  2. Selezionare l'opzione
    Abilita autenticazione SAML
    .
Clarity
Verifica della corrispondenza dei dettagli di accesso in
Clarity
e IDP
È necessario verificare che i dettagli di accesso in IDP corrispondano ai dettagli immessi nel campo Nome utente della risorsa in
Clarity
.
Clarity
  1. Accedere a Classic PPM con le credenziali di amministratore.
  2. Selezionare
    Amministrazione
    ,
    Risorse
    per aprire la pagina Risorse.
  3. Selezionare una risorsa per aprirla e verificare che il valore del campo
    Nome utente
    corrisponda ai dettagli di accesso associati al proprio IDP.
Impostazione del tipo di token Intestazione in Amministrazione di sistema
Clarity
(CSA)
L'ultimo passaggio per la configurazione di
Clarity
per il supporto di SAML 2.0 consiste nell'impostare il tipo di token nell'Amministratore di sistema di
Clarity
.
Procedere come descritto di seguito:
  1. Accedere all'Amministrazione di sistema
    Clarity
    utilizzando il collegamento riportato di seguito. Il seguente URL di accesso predefinito corrisponde a CSA sui server su cui è in esecuzione Apache Tomcat: http://<hostname>:<port>/niku/app
  2. Accedere alla scheda
    Protezione
    e impostare il valore del campo Tipo di token su
    Intestazione
    .
  3. Salvare le modifiche.
  4. Riavviare i servizi
    Clarity
    :
Punti chiave da considerare
I seguenti punti chiave sono fondamentali durante l'impostazione di
Clarity
per il supporto dell'autenticazione SAML 2.0:
  • Clarity
    utilizza le tabelle CMN_SEC_CERTS e CMN_SEC_SAML_CONFIGS per archiviare i dettagli SAML nel database.
  • Se l'autenticazione SAML 2.0 è stata impostata su un sistema di sviluppo o di test e si copiano i dati di produzione su tali sistemi, è necessario:
    • Eliminare la configurazione SAML copiata utilizzando il metodo DELETE.
    • Importare i metadati SAML utilizzando l'API REST samlMetadata
    • Verificare di non troncare le tabelle del database.
Esempi di configurazione IDP
Di seguito sono riportati alcuni esempi di configurazione IDP con
Clarity
.
Sebbene Okta e Azure vengano utilizzati come esempi,
Clarity
supporta tutti i provider di identità che supportano SAML 2.0.
Configurazione di Okta per l'emissione di credenziali per
Clarity
Collaborare con l'amministratore della protezione per creare un'applicazione SAML 2.0 in Okta e configurarla affinché gli utenti aziendali possano utilizzare le proprie credenziali per accedere a
Clarity
.
Procedere come segue:
  1. Effettuare l'accesso all'applicazione di amministrazione di Okta.
  2. Nel menu in alto, fare clic su
    Applications
    , quindi selezionare nuovamente
    Applications
    .
    Clarity
  3. Fare clic su
    Add Application
    per creare una nuova applicazione.
  4. Selezionare il pulsante di opzione
    SAML 2.0
    per creare un'applicazione SAML 2.0.
    Clarity
  5. Specificare il nome dell'applicazione e caricare il logo dell'applicazione.
    Clarity
  6. Nella finestra Configure SAML, immettere le seguenti informazioni:
    Clarity
    • Single Sign-On URL: l'URL di accesso dell'applicazione
      Clarity
      . Esempio: https://test.broadcom.com/niku/nu
    • Selezionare la casella di controllo
      Use this for Recipient URL and Destination URL
      .
    • Nel campo Audience URI (SP Entity ID), immettere l'ID dell'entità SP dell'applicazione
      Clarity
      . In genere corrisponde all'URL di accesso dell'applicazione che punta a action:union.samlMetadata. Esempio: https://testppm.broadcom.com/niku/nu#action:union.samlMetadata.
    • Nel campo Default RelayState, immettere l'URL di reindirizzamento desiderato per l'applicazione che verrà utilizzato in seguito alla corretta esecuzione di un'asserzione SAML. Ad esempio, l'URL https://testppm.broadcom.com/pm reindirizza gli utenti alla Nuova esperienza utente di
      Clarity
      .
    • Non aggiornare i seguenti campi:
      • Name ID Format
      • Application Username
      • Update Application Username on
    • Nella sezione Attribute Statements (facoltativa):
      • Nel campo Name, selezionare Login.
      • Nel campo Name format, selezionare Unspecified.
      • Nel campo Value, selezionare user email.
  7. Nella schermata
    Are you a customer or partner
    , selezionare l'opzione pertinente per lo scenario, quindi fare clic su
    Finish
    .
    Clarity
  8. Fare clic su
    View Setup Instructions
    , quindi scorrere verso il basso,, copiare i metadati IDP e salvarli come file XML.
    Clarity
  9. Utilizzare l'API samlMetadata per importare i metadati di IDP in
    Clarity
    .
    Clarity
Per ulteriori informazioni, consultare le sezioni Configurazione di SAML con le API REST e Configurazione di
Clarity
per il supporto di SAML 2.0.
Configurazione di Azure per l'emissione di credenziali per
Clarity
Collaborare con l'amministratore della protezione per creare un'applicazione SAML 2.0 in Azure e configurarla affinché gli utenti aziendali possano utilizzare le proprie credenziali per accedere a
Clarity
.
  1. Accedere al Portale di Azure e fare clic su
    Azure Active Directory
    .
    Clarity
  2. Selezionare
    Applicazione aziendale
    ,
    Nuova applicazione
    e selezionare
    Applicazione non nella raccolta
    .
  3. Immettere il nome dell'applicazione e fare clic su
    Aggiungi
    .
    Clarity
  4. Fare clic su
    Pagina principale
    ,
    Azure Active Directory
    ,
    Applicazione aziendale
    , quindi selezionare l'applicazione creata.
    Clarity
  5. Fare clic su
    Single Sign-On
    , quindi fare clic su
    SAML
    .
    Clarity
  6. In
    Basic SAML Configuration
    , fare clic su
    Edit
    per aggiungere i valori seguenti:
    Clarity
    1. Identifier (Entity ID): L'ID di entità di
      Clarity
      SAML. Esempio: https://testppm.broadcom.net/niku/nu#action:union.samlMetadata
    2. Reply URL (ACS URL): l'URL ACS o SP (
      Clarity
      ). Esempio: https://testppm.broadcom.net/niku/nu
    3. Sign-on URL: lasciare il campo vuoto.
    4. Relay State: specificare l'URL di reindirizzamento utilizzato da Azure una volta eseguito l'accesso.
    5. Logout URL: lasciare il campo vuoto.
  7. Non è possibile modificare l'attributo Unique User Identifier in User Attributes and Claims. Rimuovere gli altri attributi e aggiungere una nuova attestazione denominata
    Login
    .
    1. L'attributo di origine deve corrispondere al nome utente di
      Clarity
      PPM. Impostare l'attributo di origine su user.userprincipalname.
      Clarity
  8. Scaricare il file XML dei metadati federativi dal collegamento.
    Clarity
  9. Modificare il file XML dei metadati federativi e scorrere fino alla fine del file. Aggiungere le seguenti informazioni al file: <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>.
  10. Salvare le modifiche e chiudere il file.
    Clarity
  11. Utilizzare l'API samlMetadata per importare i metadati di IDP in
    Clarity
    .
Per ulteriori informazioni, consultare le sezioni Configurazione di SAML con le API REST e Configurazione di
Clarity
per il supporto di SAML 2.0.