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) utilizzando 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 nella richiesta si utilizza l'attributo facoltativo name, 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 a livello globale per un'entità SAML, un provider di identità o un provider di servizi. In genere, il valore è un URL.
assertionConsumerUrl L'URL del consumer di asserzioni è l'endpoint del provider di servizi al quale verranno inviate le asserzioni SAML dal provider di identità 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 l'identity provider utilizzano il formato ID nome per identificare facilmente un oggetto durante le comunicazioni.
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 indica se la richiesta di logout viene inviata come reindirizzamento o un'operazione POST. Attributo obbligatorio se l'attributo logoutEnabled è impostato su True.
logoutRequestURL Obbligatorio se l'attributo logoutEnabled è impostato su True. Immettere la posizione in cui viene inviata la richiesta di logout (HTTP o HTTPS).
logoutResponseURL Obbligatorio se l'attributo logoutEnabled è impostato su True. Immettere la posizione in cui viene inviata la risposta di logout (HTTP o HTTPS).

Costruzione della proprietà nameIdUserstoreAttribute

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

Valori supportati

  • userName

  • emails.primary.value

Costruzione 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 per attivare 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>