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.
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>