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.

Nota

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>