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 de afirmación de seguridad (SAML) mediante las API de REST.
Crear una aplicación SAML
Una aplicación 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
name
opcional 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 de SAML, ya sea un proveedor de identidad o un proveedor de servicios. Normalmente, el valor es una URL. |
assertionConsumerUrl
|
La URL de consumidor de afirmaciones 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 de SAML, como Dirección de correo electrónico, Nombre cualificado de dominio de Windows o Nombre de asunto X.509. El proveedor de servicios y el proveedor 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 está conectado. |
logoutBinding
|
Este atributo identifica si la solicitud de desconexión se envía como redirección o envío. Este es 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 a la que se envía la solicitud de desconexión (mediante HTTP o HTTPS). |
logoutResponseURL
|
Necesario si el atributo logoutEnabled está definido en True. Introduzca la ubicación a la que se envía la respuesta de desconexión (mediante 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>