Creación y Activación de una Aplicación SAML
En esta sección se proporcionan solicitudes de ejemplo para crear y activar una aplicación de lenguaje de marcado para confirmaciones de seguridad (SAML) mediante las API de REST.
Crear una aplicación SAML
Una aplicación que soporta SAML es una aplicación que soporta SAML para la conexión única En el ejemplo se muestra cómo crear una solicitud para crear una aplicación SAML.
Si utiliza el atributo opcional
name en la solicitud, asegúrese de utilizar solo caracteres alfanuméricos y el carácter de subrayado ( _ ) en el valor.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
Atributos de aplicación necesarios para una aplicación SAML
| Atributo de aplicación necesario | Descripción |
|---|---|
entityId
|
Un ID de entidad es un nombre único global para una entidad SAML, ya sea un proveedor del servicio o un proveedor del servicio. Normalmente, el valor es una URL. |
assertionConsumerUrl
|
La URL de consumidor de afirmación es el punto final del proveedor de servicios al que el proveedor de identidad de SAML enviará las afirmaciones de SAML. |
nameIdFormat
|
Este atributo representa el formato de ID de nombre que se utilizará en la afirmación SAML, como Dirección de correo electrónico, Nombre cualificado de dominio de Windows o Nombre de asunto X.509. Los proveedores de servicios y de identidad utilizan el formato de ID de nombre para identificar fácilmente un asunto durante su comunicación. |
nameIdValue
|
Lo que defina para este atributo depende del tipo nameIdFormat especificado. Este atributo se utiliza para identificar al usuario que ha iniciado sesión. |
logoutBinding
|
Este atributo indica si la solicitud de desconexión se envía como redirección o envío. Se trata de un atributo necesario si el atributo logoutEnabled está definido en True. |
logoutRequestURL
|
Necesario si el atributo logoutEnabled está definido en True. Introduzca la ubicación en la que se envía una solicitud de desconexión (con HTTP o HTTPS). |
logoutResponseURL
|
Necesario si el atributo logoutEnabled está definido en True. Introduzca la ubicación donde se envía el mensaje de desconexión (con HTTP o HTTPS). |
Construcción de la propiedad nameIdUserstoreAttribute
La propiedad nameIdUserstoreAttribute especifica qué atributo de usuario se utiliza como valor NameID en la afirmación de SAML.
Valores soportados
-
userName -
emails.primary.value
Construcción de la propiedad userStoreAttributeName
La propiedad userStoreAttributeName es un subatributo del atributo complejo userAssertionAtributes. La propiedad userStoreAttributeName especifica qué atributo de usuario se debe utilizar para crear el valor del atributo de afirmación de SAML.
Valores soportados
-
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
Activar una aplicación SAML
Utilice este ejemplo para crear una solicitud para activar una aplicación 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>