Creación de socios IdP de SAML 2.0 en OAM y SP

En este artículo se explica cómo configurar un acuerdo de federación entre OAM que actúa como SP de SAML 2.0 y un partner SAML 2.0 IdP remoto, incluidos:

En el artículo se describe cómo realizar las tareas anteriores a través de la interfaz de usuario o mediante el uso de los comandos de OAM WLST.

Establecimiento de la Confianza de Federación

Establecer la confianza entre los partners de federación es un requisito previo antes de poder realizar cualquier operación de SSO de federación entre los servidores de federación.

El establecimiento de confianza implica el intercambio de información de certificados, si el protocolo utilizado se basa en certificados PKI X.509 para proteger los intercambios de mensajes, así como las ubicaciones/URL de los servicios que implementan el protocolo de federación.

Asignación de Afirmaciones

Con OAM actuando como proveedor de servicios y delegando la autenticación de usuario a un IdP remoto, el administrador debe estar de acuerdo con el administrador del IdP sobre cómo se identifica el usuario en la afirmación de SAML (información de usuario almacenada en NameID, o bien como atributo de SAML o en varios atributos de SAML..) y, a continuación, OAM/SP se debe configurar para asignar la afirmación de SAML entrante a un registro de usuario de LDAP mediante los atributos NameID y/o SAML.

OAM necesita que la afirmación entrante se asigne a un registro de usuario de LDAP para crear una sesión de OAM.

OAM/SP puede asignar una afirmación de SAML entrante a un registro de usuario de LDAP mediante:

OAM/SP también proporciona las capacidades para utilizar un almacén de identidades y un DN de base de búsqueda de usuario específicos al asignar la afirmación a un registro de usuario LDAP. Es opcional y:

SAML 2.0 con metadatos

La Consola de Administración de OAM

Para crear un nuevo partner IdP de SAML 2.0 con metadatos, realice los siguientes pasos:

  1. Vaya a la consola de administración de OAM: http(s)://oam-admin-host:oam-adminport/oamconsole

  2. Vaya a Identity Federation, Service Provider Administration.

  3. Haga clic en el botón Crear partner de proveedor de identidad.

  4. En la pantalla Crear:

    1. Introduzca un nombre para el partner

    2. Compruebe si este partner se debe utilizar por defecto como IdP al iniciar una operación SSO de federación, si no se ha especificado ningún partner IdP.

    3. Seleccione SAML 2.0 como Protocolo

    4. Haga clic en Cargar metadatos y cargue el archivo de metadatos de SAML 2.0 para la sección Asignación de afirmación IdP:

      1. Si lo desea, defina el almacén de identidades de OAM que se debe utilizar Nota: En el ejemplo, dejamos el campo en blanco para utilizar el almacén de identidades de OAM por defecto.

      2. Si lo desea, defina el DN de base de búsqueda de usuario Nota: en el ejemplo, dejamos el campo en blanco para utilizar el DN de base de búsqueda de usuario configurado en el almacén de identidades.

    5. Seleccione cómo se produce la asignación Nota: En el ejemplo, estamos asignando la afirmación mediante NameID al atributo de correo LDAP

    6. Seleccione el perfil de atributo que se utiliza para asignar los nombres de los atributos de la afirmación de SAML entrante a los nombres locales.

  5. Haga clic en Guardar

Descripción de la ilustración Create_IDP_Partner.jpg

Después de crear el socio, se muestra la pantalla Editar socio con:

WLST

Para crear un nuevo partner IdP de SAML 2.0 con metadatos mediante los comandos WLST de OAM, realice los siguientes pasos:

  1. Introduzca el entorno WLST ejecutando: $IAM_ORACLE_HOME/common/bin/wlst.sh

  2. Conéctese al servidor de administración de WLS: connect()

  3. Navegue a la rama Domain Runtime: domainRuntime()

  4. Cree el partner IdP de SAML 2.0 con metadatos denominado acmeIdP en OAM: addSAML20IdPFederationPartner("acmeIdP", "/tmp/acme-idp-metadata-saml20.xml")

  5. Por defecto, el nuevo partner IdP está configurado para:

    1. Utilizar el almacén de identidades de OAM por defecto

    2. Utilizar el DN base de búsqueda de usuario del almacén de identidades (no sustituido)

    3. Asigne la afirmación de SAML mediante NameID, que coincida con el atributo de correo de LDAP

    4. Defina el formato NameID de la solicitud de autenticación en Ninguno

    5. Utilizar HTTP-POST como enlace de respuesta SSO por defecto

    6. Usar Perfil de Atributo de Proveedor de Identidad por Defecto

  6. Salga del entorno WLST: exit()

SAML 2.0 sin Metadatos

La Consola de Administración de OAM

Para crear un nuevo partner SAML 2.0 IdP sin metadatos, ejecute los siguientes pasos (asegúrese primero de tener todos los datos del partner IdP, como certificados, identificadores IdP y URL):

  1. Vaya a la consola de administración de OAM: http(s)://oam-admin-host:oam-adminport/oamconsole

  2. Vaya a Identity Federation, Service Provider Administration.

  3. Haga clic en el botón Crear partner de proveedor de identidad.

  4. En la pantalla Crear:

    1. Introduzca un nombre para el partner

    2. Compruebe si este partner se debe utilizar por defecto como IdP al iniciar una operación SSO de federación, si no se ha especificado ningún partner IdP.

    3. Seleccione SAML 2.0 como Protocolo

    4. Seleccionar introducción manual

    5. Introduzca Issuer / ProviderID del partner IdP

    6. Si SuccinctID se deja en blanco, OAM/SP lo calcula resumiendo el ID de proveedor mediante el algoritmo SHA-1 (debe dejarse en blanco)

    7. Introduzca la URL de servicio de SSO para ese partner IdP: es la URL a la que se redirige al usuario desde OAM/SP con un SAML AuthnRequest a IdP.

    8. Si el partner soporta el protocolo de artefacto SAML 2.0, introduzca la URL de servicio de SOAP a la que se conecta OAM/SP para recuperar la afirmación de SAML durante una operación de artefacto SSO

    9. Si el partner admite el protocolo de desconexión de SAML 2.0:

      1. Introduzca la URL de solicitud de desconexión de SAML 2.0 donde el partner puede procesar un mensaje LogoutRequest de SAML 2.0

      2. Introduzca la URL de respuesta de desconexión de SAML 2.0 donde el partner puede procesar un mensaje LogoutResponse de SAML 2.0

    10. Cargue el archivo de certificado de firma IdP:

      1. en formato PEM (donde el archivo contiene como primera línea --BEGIN CERTIFICATE--, el certificado en formato codificado Base64 y, a continuación, la última línea como --END CERTIFICATE--)

      2. o en formato DER donde el certificado se almacena en codificación binaria

    11. Si IdP tiene un certificado de cifrado, cargue el archivo:

      1. en formato PEM (donde el archivo contiene como primera línea --BEGIN CERTIFICATE--, el certificado en formato codificado Base64 y, a continuación, la última línea como --END CERTIFICATE--)

      2. o en formato DER donde el certificado se almacena en codificación binaria

    12. Sección Assertion Mapping:

      1. Si lo desea, defina el almacén de identidades de OAM que se debe utilizar Nota: En el ejemplo, dejamos el campo en blanco para utilizar el almacén de identidades de OAM por defecto.

      2. Si lo desea, defina el DN de base de búsqueda de usuario Nota: en el ejemplo, dejamos el campo en blanco para utilizar el DN de base de búsqueda de usuario configurado en el almacén de identidades.

    13. Seleccione cómo se produce la asignación Nota: En el ejemplo, estamos asignando la afirmación mediante NameID al atributo de correo LDAP

    14. Seleccione el perfil de atributo que se utiliza para asignar los nombres de los atributos de la afirmación de SAML entrante a los nombres locales.

  5. Haga clic en Guardar

Descripción de la ilustración Create_IDP_Provider_Partner.jpg

Después de crear el socio, se muestra la pantalla Editar socio con:

WLST

Para crear un nuevo partner IdP de SAML 2.0 sin metadatos mediante los comandos WLST de OAM, ejecute los siguientes pasos (asegúrese primero de tener todos los datos del partner IdP, como certificados, identificadores IdP y URL):

  1. Introduzca el entorno WLST ejecutando: $IAM_ORACLE_HOME/common/bin/wlst.sh

  2. Conéctese al servidor de administración de WLS: connect()

  3. Navegue a la rama Domain Runtime: domainRuntime()

  4. Cree el partner IdP de SAML 2.0 sin metadatos que llamen a acmeIdP en OAM: addSAML20IdPFederationPartnerWithoutMetadata("acmeIdP","https://acme.com/idp", "https://acme.com/saml20/sso", "https://acme.com/saml20/soap")

  5. De manera predeterminada, el nuevo socio de SP está configurado para:

    1. Utilizar el almacén de identidades de OAM por defecto

    2. Utilizar el DN base de búsqueda de usuario del almacén de identidades (no sustituido)

    3. Asigne la afirmación de SAML mediante NameID, que coincida con el atributo de correo de LDAP

    4. Defina el formato NameID de la solicitud de autenticación en Ninguno

    5. Utilizar HTTP-POST como enlace de respuesta SSO por defecto

    6. Usar Perfil de Atributo de Proveedor de Identidad por Defecto

    7. No se ha cargado ningún certificado para este partner IdP

  6. Salga del entorno WLST: exit()

Modificación de la Configuración de Federación mediante WLST

En esta sección se muestra cómo cambiar la configuración común de SP Partner mediante los comandos WLST de OAM:

Supongamos que ya está en el entorno WLST y conectado mediante:

  1. Introduzca el entorno WLST ejecutando: $IAM_ORACLE_HOME/common/bin/wlst.sh

  2. Conéctese al servidor de administración de WLS: connect()

  3. Navegue a la rama Domain Runtime: domainRuntime()

Configuración de asignación de afirmación de SAML

Para configurar los valores de asignación para un partner IdP de SAML:

  1. Utilice el siguiente comando para asignar la afirmación mediante 1: setIdPPartnerMappingNameID(partnerName, userstoreAttr)

    1. partnerName es el nombre utilizado para crear el partner IdP

    2. userstoreAttr: atributo de usuario de LDAP que coincide con el valor NameID.

  2. Utilice el siguiente comando para asignar la afirmación mediante un atributo SAML: setIdPPartnerMappingAttribute(partnerName, assertionAttr, userstoreAttr)

    1. partnerName es el nombre utilizado para crear el partner IdP

    2. assertionAttr: nombre del atributo de SAML.

    3. userstoreAttr: atributo de usuario de LDAP que coincide con el valor de atributo de SAML.

  3. Utilice el siguiente comando para asignar la afirmación mediante una consulta LDAP: setIdPPartnerMappingAttributeQuery(partnerName, attrQuery)

    1. partnerName es el nombre utilizado para crear el partner IdP

    2. attrQuery: consulta LDAP que se va a utilizar (por ejemplo, (&(givenname=%firstname%) (sn=%lastname%))).

DN del almacén de identidades y de la base de búsqueda de usuarios de OAM

Para configurar OAM/SP para que utilice un almacén de identidades de OAM específico y/o un DN base de búsqueda de usuario específico al asignar la afirmación de SAML entrante, ejecute el siguiente comando setPartnerIDStoreAndBaseDN():

Desconexión de SAML 2.0

Para activar la desconexión de SAML 2.0 y especificar las URL de desconexión de SAML 2.0 del partner IdP, ejecute:

Para desactivar la desconexión de SAML 2.0 para el partner IdP, ejecute:

Certificados SAML

Hay varios comandos WLST disponibles para gestionar certificados de firma y cifrado:

IdP Socio AMribute ProQl

Para configurar el perfil de atributo de partner IdP para un partner IdP específico, utilice los siguientes comandos:

Para configurar un socio IdP para que utilice un perfil de atributo de socio IdP específico, ejecute:

Enlaces de solicitud y respuesta SSO de SAML

Para configurar los enlaces SAML para un partner IdP específico, utilice los siguientes comandos:

Para configurar el partner IdP, ejecute: configureSAMLBinding(partnerName, partnerType, binding, ssoResponseBinding="httppost")

Ejemplos

Los siguientes comandos se pueden utilizar para agregar un partner IdP sin metadatos de SAML 2.0:

addSAML20IdPFederationPartnerWithoutMetadata("acmeIdP","https://acme.com/idp", "https://acme.com/saml2 /sso", "https://acme.com/saml20/soap" configureSAML20Logout("acmeIdP", "idp", "true","https://acme.com/saml20/logoutReq" "https://acme.com/saml20/logoutResp" setFederationPartnerSigningCert("acmeIdP", "idp", "/tmp/acme-idp-cert.pem") setPartnerIDStoreAndBaseDN("acmeIdP", "idp", "oid") setIdPPartnerMappingNameID("acmeIdP", "mail")

Los siguientes comandos se pueden utilizar para agregar un partner IdP con metadatos de SAML 2.0 (en este ejemplo, utilizamos el almacén de identidades de OAM por defecto):

addSAML20IdPFederationPartner("acmeIdP", "/tmp/acme-idp-metadata-saml20.xml" setIdPPartnerMappingNameID("acmeIdP", "mail")

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.