Creazione e attivazione di un'applicazione SAML

In questa sezione vengono fornite richieste di esempio per creare e attivare un'applicazione SAML (Security Assertion Markup Language) mediante le API REST.

Creare un'applicazione SAML

Un'applicazione SAML è un'applicazione che supporta il protocollo SAML per Single Sign-On. L'esempio mostra come creare una richiesta per creare un'applicazione SAML.

Nota

Se si sta utilizzando l'attributo name facoltativo nella richiesta, assicurarsi di utilizzare solo caratteri alfanumerici e il carattere di sottolineatura ( _ ) nel valore.
cat>/tmp/SAMLApp.json << __EOF__
{
  "schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:App"],
  "active": true,
  "displayName": "testSAMLApp",
  "description": "SAML for Portal",
  "basedOnTemplate": {
    "value": "CustomSAMLAppTemplateId"
  },
  "name": "testSAMLPartner",
  "urn:ietf:params:scim:schemas:oracle:idcs:extension:samlServiceProvider:App":
          {
            "signResponseOrAssertion": "Assertion",
            "includeSigningCertificateInSignature": "true",
            "entityId": "IdcsSamlDomain",
            "nameIdFormat": "saml-emailaddress",
            "nameIdUserstoreAttribute": "emails.primary.value",
            "assertionConsumerUrl": "http://<domainURL>/saml2/sp/acs/post",
            "signatureHashingAlgorithm": {
              "value": "SHA-256"
            },
            "logoutEnabled": true,
            "logoutBinding": true,
            "logoutRequestURL": "http://<domainURL>/FederationSampleApp/logout",
            "singleLogoutURL": "http://<domainURL>/FederationSampleApp/logout",
            "logoutResponseUrl": "http://<domainURL>/FederationSampleApp",
            "groupAssertionAttributes": [
              {
                "name": "all",
                "condition": "All Groups"
              }
            ],
            "userAssertionAttributes": [
              {
                "name": "email",
                "userStoreAttributeName": "emails.primary.value"
              },
              {
                "name": "userid",
                "userStoreAttributeName": "userName"
              },
              {
                "name": "firstname",
                "userStoreAttributeName": "name.givenName"
              },
              {
                "name": "lastname",
                "userStoreAttributeName": "name.familyName"
              }
            ]
          }
} 
__EOF__

   curl -X POST 
   -H "Content-type: application/json" 
   -H "Authorization: Bearer <access token value>" 
   --data @/tmp/SAMLApp.json http://<domainURL>/admin/v1/Apps

Attributi applicazione obbligatori per un'applicazione SAML

Attributo applicazione obbligatorio descrizione;
entityId Un ID entità è un nome univoco globale per un'entità SAML, un provider di identità o un provider di servizio. Di solito il valore è un URL.
assertionConsumerUrl L'URL del consumer di asserzioni è l'endpoint del provider di servizi al quale il provider di identità SAML invierà le asserzioni SAML.
nameIdFormat Questo attributo rappresenta il formato ID nome che verrà utilizzato nell'asserzione SAML, ad esempio Indirizzo e-mail, Nome qualificato dominio Windows o Nome oggetto X.509. Il provider di servizi e il provider di identità utilizzano il formato ID nome per identificare facilmente un oggetto durante la comunicazione.
nameIdValue La definizione di questo attributo dipende dal tipo nameIdFormat specificato. Questo attributo viene utilizzato per identificare l'utente che ha eseguito il login.
logoutBinding Questo attributo identifica se la richiesta di logout viene inviata come un Redirect o un Post. Questo è un attributo obbligatorio se l'attributo logoutEnabled è impostato su True.
logoutRequestURL Obbligatorio se l'attributo logoutEnabled è impostato su True. Immettere la posizione di invio della richiesta di login (mediante HTTP o HTTPS).
logoutResponseURL Obbligatorio se l'attributo logoutEnabled è impostato su True. Immettere la posizione di invio della risposta di logout (mediante HTTP o HTTPS).

Creazione della proprietà nameIdUserstoreAttribute

La proprietà nameIdUserstoreAttribute specifica l'attributo utente utilizzato come valore NameID nell'asserzione SAML.

Valori supportati

  • userName

  • emails.primary.value

Creazione della proprietà userStoreAttributeName

La proprietà userStoreAttributeName è un attributo secondario dell'attributo complesso userAssertionAtributes. La proprietà userStoreAttributeName specifica l'attributo utente da utilizzare per creare il valore dell'attributo di asserzione SAML.

Valori supportati

  • userName

  • name.givenName

  • name.middleName

  • name.familyName

  • emails.primary.value

  • emails[work].value

  • phoneNumbers[home].value

  • phoneNumbers[mobile].value

  • phoneNumbers[work].value

  • title

  • addresses[work].streetAddress

  • addresses[work].locality

  • addresses[work].postalCode

  • addresses[work].region

  • addresses[work].country

Attiva un'applicazione SAML

Utilizzare questo esempio per creare una richiesta di attivazione di un'applicazione SAML.

echo "Activate SAML App"
cat>/tmp/SAMLApp.json << __EOF__
{
        "active" : true,
        "schemas": [
             "urn:ietf:params:scim:schemas:oracle:idcs:AppStatusChanger"
        ]
}
__EOF__

   curl -X PUT 
   -H "Content-type: application/json" 
   -H "Authorization: Bearer <access token value>" 
   --data @/tmp/SAMLApp.json http://domainURL/admin/v1/AppStatusChanger/<appID>