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:
-
Configurar un partner SAML 2.0 IdP remoto con metadatos de SAML 2.0
-
Configurar un partner SAML 2.0 IdP remoto sin metadatos de SAML 2.0
-
Configuración de OAM/SP para asignar una afirmación de SAML entrante a un usuario de LDAP
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:
-
Afirmación de SAML
NameID, asignada a un atributo en el registro de usuario de LDAP. En este caso, OAM/SP realiza una consulta LDAP para un único registro de usuario LDAP cuyo valor para el atributo especificado en la asignación coincide con el valor deNameIDde SAML. -
Atributo de SAML de la afirmación, asignado a un atributo en el registro de usuario de LDAP. En este caso, OAM/SP realiza una consulta LDAP para un único registro de usuario LDAP cuyo valor para el atributo especificado en la asignación coincide con el valor del atributo SAML especificado.
-
Uso de una consulta LDAP que contiene datos de la afirmación de SAML:
-
El administrador especifica la consulta LDAP
-
Los datos de la afirmación se identifican en la consulta LDAP como %NAME%, siendo NAME:
-
El nombre de un atributo de SAML de la afirmación
-
O bien
NameID: en este caso, NAME se sustituye porfed.nameidvalue
-
-
-
Ejemplos de consultas LDAP:
-
(mail=%email%)que da como resultado una consulta LDAP para un único registro de usuario LDAP cuyo valor para el atributo de correo coincide con el valor del atributo SAML de correo electrónico -
(&(givenname=%firstname%)(sn=%lastname%))que da como resultado una consulta LDAP para un único registro de usuario LDAP cuyos valores para el atributogivennamey el atributosncoinciden con los valores de los atributos SAML de nombre y apellido -
(&(title=manager)(uid=%fed.nameidvalue%))que da como resultado una consulta LDAP para un único registro de usuario LDAP cuyo valor para el atributo uid coincide con el valor deNameIDy cuyo atributo de título es igual al gestor
-
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:
-
Si no se especifica ningún almacén de identidades específico en las reglas de asignación de afirmaciones, se utiliza el almacén de identidades de OAM por defecto
-
Si no se especifica ningún DN de la base de búsqueda de usuarios específico en las reglas de asignación de afirmaciones, se utilizará el DN de la base de búsqueda de usuarios configurado en el almacén de identidades
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:
-
Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole -
Vaya a Identity Federation, Service Provider Administration.
-
Haga clic en el botón Crear partner de proveedor de identidad.
-
En la pantalla Crear:
-
Introduzca un nombre para el partner
-
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.
-
Seleccione SAML 2.0 como Protocolo
-
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:
-
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.
-
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.
-
-
Seleccione cómo se produce la asignación Nota: En el ejemplo, estamos asignando la afirmación mediante
NameIDal atributo de correo LDAP -
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.
-
-
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:
-
La configuración definida en la pantalla anterior se puede modificar
-
Se muestra una sección de configuración avanzada:
-
Activar desconexión global: indica si OAM debe ejecutar o no el intercambio de desconexión de SAML 2.0 con el partner como parte del proceso de desconexión.
-
Enlace de respuesta HTTP POST SSO: indica cómo OAM/SP solicita IdP para devolver la afirmación al SP. Si se activa, OAM/SP solicita IdP para enviar la afirmación mediante el enlace HTTP-POST; de lo contrario, solicita el enlace de artefacto.
-
Autenticación HTTP básica: si se utiliza el enlace de artefacto, OAM/SP necesita conectarse a IdP directamente a través de SOAP para recuperar la afirmación de SAML. A veces, IdP activa la autenticación básica HTTP en el canal SOAP y OAM/SP debe proporcionar el nombre de usuario/contraseña a IdP (estas credenciales se acuerdan entre los administradores de IdP y SP).
-
Formato NameID de solicitud de autenticación: indica si OAM/SP debe solicitar mediante AuthnRequest de SAML una NameID específica para su uso. Si se define en Ninguno, OAM/SP no solicitará nada y IdP selecciona el formato NameID acordado fuera de banda. Si define un valor, asegúrese de que se corresponda con lo acordado entre los administradores de IDP y SP (se puede dejar en blanco).

-
WLST
Para crear un nuevo partner IdP de SAML 2.0 con metadatos mediante los comandos WLST de OAM, realice los siguientes pasos:
-
Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh -
Conéctese al servidor de administración de WLS:
connect() -
Navegue a la rama Domain Runtime:
domainRuntime() -
Cree el partner IdP de SAML 2.0 con metadatos denominado
acmeIdPen OAM:addSAML20IdPFederationPartner("acmeIdP", "/tmp/acme-idp-metadata-saml20.xml") -
Por defecto, el nuevo partner IdP está configurado para:
-
Utilizar el almacén de identidades de OAM por defecto
-
Utilizar el DN base de búsqueda de usuario del almacén de identidades (no sustituido)
-
Asigne la afirmación de SAML mediante
NameID, que coincida con el atributo de correo de LDAP -
Defina el formato
NameIDde la solicitud de autenticación en Ninguno -
Utilizar HTTP-POST como enlace de respuesta SSO por defecto
-
Usar Perfil de Atributo de Proveedor de Identidad por Defecto
-
-
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):
-
Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole -
Vaya a Identity Federation, Service Provider Administration.
-
Haga clic en el botón Crear partner de proveedor de identidad.
-
En la pantalla Crear:
-
Introduzca un nombre para el partner
-
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.
-
Seleccione SAML 2.0 como Protocolo
-
Seleccionar introducción manual
-
Introduzca
Issuer/ProviderIDdel partner IdP -
Si
SuccinctIDse deja en blanco, OAM/SP lo calcula resumiendo el ID de proveedor mediante el algoritmo SHA-1 (debe dejarse en blanco) -
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.
-
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
-
Si el partner admite el protocolo de desconexión de SAML 2.0:
-
Introduzca la URL de solicitud de desconexión de SAML 2.0 donde el partner puede procesar un mensaje
LogoutRequestde SAML 2.0 -
Introduzca la URL de respuesta de desconexión de SAML 2.0 donde el partner puede procesar un mensaje
LogoutResponsede SAML 2.0
-
-
Cargue el archivo de certificado de firma IdP:
-
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--)
-
o en formato DER donde el certificado se almacena en codificación binaria
-
-
Si IdP tiene un certificado de cifrado, cargue el archivo:
-
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--)
-
o en formato DER donde el certificado se almacena en codificación binaria
-
-
Sección Assertion Mapping:
-
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.
-
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.
-
-
Seleccione cómo se produce la asignación Nota: En el ejemplo, estamos asignando la afirmación mediante
NameIDal atributo de correo LDAP -
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.
-
-
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:
-
La configuración definida en la pantalla anterior se puede modificar
-
Se muestra una sección de configuración avanzada:
-
Activar desconexión global: indica si OAM debe ejecutar o no el intercambio de desconexión de SAML 2.0 con el partner como parte del proceso de desconexión.
-
Enlace de respuesta HTTP POST SSO: indica cómo OAM/SP solicita IdP para devolver la afirmación al SP. Si se activa, OAM/SP solicita IdP para enviar la afirmación mediante el enlace HTTP-POST; de lo contrario, solicita el enlace de artefacto.
-
Autenticación HTTP básica: si se utiliza el enlace de artefacto, OAM/SP necesita conectarse a IdP directamente a través de SOAP para recuperar la afirmación de SAML. A veces, IdP activa la autenticación básica HTTP en el canal SOAP y OAM/SP debe proporcionar el nombre de usuario/contraseña a IdP (estas credenciales se acuerdan entre los administradores de IdP y SP).
-
Formato NameID de solicitud de autenticación: indica si OAM/SP debe solicitar mediante AuthnRequest de SAML una NameID específica para su uso. Si se define en Ninguno, OAM/SP no solicitará nada y IdP selecciona el formato NameID acordado fuera de banda. Si define un valor, asegúrese de que se corresponda con lo acordado entre los administradores de IDP y SP (se puede dejar en blanco).

Descripción de la ilustración Edit_Partner_withAdvOption_Screen.jpg
-
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):
-
Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh -
Conéctese al servidor de administración de WLS:
connect() -
Navegue a la rama Domain Runtime:
domainRuntime() -
Cree el partner IdP de SAML 2.0 sin metadatos que llamen a
acmeIdPen OAM:addSAML20IdPFederationPartnerWithoutMetadata("acmeIdP","https://acme.com/idp", "https://acme.com/saml20/sso", "https://acme.com/saml20/soap") -
De manera predeterminada, el nuevo socio de SP está configurado para:
-
Utilizar el almacén de identidades de OAM por defecto
-
Utilizar el DN base de búsqueda de usuario del almacén de identidades (no sustituido)
-
Asigne la afirmación de SAML mediante
NameID, que coincida con el atributo de correo de LDAP -
Defina el formato
NameIDde la solicitud de autenticación en Ninguno -
Utilizar HTTP-POST como enlace de respuesta SSO por defecto
-
Usar Perfil de Atributo de Proveedor de Identidad por Defecto
-
No se ha cargado ningún certificado para este partner IdP
-
-
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:
-
Configuración de asignación de afirmación de SAML
-
Almacén de identidades de OAM y DN de base de búsqueda de usuarios para desconexión de SAML 2.0 de asignación de afirmación de SAML
-
Certificado de firma de SAML
-
Certificado de cifrado de SAML
-
Perfil de atributo de partner IdP para un partner IdP
-
Enlaces de solicitud y respuesta SSO de SAML
Supongamos que ya está en el entorno WLST y conectado mediante:
-
Introduzca el entorno WLST ejecutando:
$IAM_ORACLE_HOME/common/bin/wlst.sh -
Conéctese al servidor de administración de WLS:
connect() -
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:
-
Utilice el siguiente comando para asignar la afirmación mediante 1:
setIdPPartnerMappingNameID(partnerName, userstoreAttr)-
partnerNamees el nombre utilizado para crear el partner IdP -
userstoreAttr: atributo de usuario de LDAP que coincide con el valorNameID.
-
-
Utilice el siguiente comando para asignar la afirmación mediante un atributo SAML: setIdPPartnerMappingAttribute(partnerName, assertionAttr, userstoreAttr)
-
partnerNamees el nombre utilizado para crear el partner IdP -
assertionAttr: nombre del atributo de SAML. -
userstoreAttr: atributo de usuario de LDAP que coincide con el valor de atributo de SAML.
-
-
Utilice el siguiente comando para asignar la afirmación mediante una consulta LDAP:
setIdPPartnerMappingAttributeQuery(partnerName, attrQuery)-
partnerNamees el nombre utilizado para crear el partner IdP -
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():
-
Utilice el siguiente comando para definir solo el almacén de identidades de OAM:
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid")-
partnerNamees el nombre utilizado para crear el partner IdP -
idpindica el tipo de socio -
storeName: hace referencia al almacén de identidades de OAM que se va a utilizar
-
-
Utilice el siguiente comando para definir solo el DN de base de búsqueda:
setPartnerIDStoreAndBaseDN(partnerName,"idp",searchBaseDN="ou=managers,dc=acme,dc=com")-
partnerNamees el nombre utilizado para crear el partner IdP -
idpindica el tipo de socio -
searchBaseDN: indica el DN de base de búsqueda que se va a utilizar
-
-
Utilice el siguiente comando para definir el almacén de identidades de OAM y el DN de base de búsqueda:
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid",searchBaseDN="ou=managers,dc=acme,dc=com")-
partnerNamees el nombre utilizado para crear el partner IdP -
idpindica el tipo de socio -
storeName: hace referencia al almacén de identidades de OAM que se va a utilizar -
searchBaseDN: indica el DN de base de búsqueda que se va a utilizar
-
-
Utilice el siguiente comando para eliminar el almacén de identidades de OAM y el DN de base de búsqueda de la entrada de partner IdP:
setPartnerIDStoreAndBaseDN(partnerName,"idp", delete="true")-
partnerNamees el nombre utilizado para crear el partner IdP -
idpindica el tipo de socio
-
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:
-
El comando configureSAML20Logout():
configureSAML20Logout("acmeIdP", "idp","true",saml20LogoutRequestURL="https://acme.com/saml20/logoutReq",saml20LogoutResponseURL="https://acme.com /saml20/logoutResp")-
Con
acmeIdPcomo nombre del partner creado anteriormente -
idpindica el tipo de socio -
true indica que la desconexión de SAML 2.0 está activada.
saml20LogoutRequestURLhace referencia al punto final del partnerIdPque puede procesar un mensaje LogoutRequest de SAML 2.0 -
saml20LogoutResponseURLhace referencia al punto final de partnerIdPque puede procesar un mensajeLogoutResponsede SAML 2.0
-
Para desactivar la desconexión de SAML 2.0 para el partner IdP, ejecute:
-
El comando
configureSAML20Logout():configureSAML20Logout("acmeIdP", "idp","false")-
Con
acmeIdPcomo nombre del partner creado anteriormente -
idpindica el tipo de socio -
false indica que la desconexión de SAML 2.0 está activada
-
Certificados SAML
Hay varios comandos WLST disponibles para gestionar certificados de firma y cifrado:
-
getFederationPartnerSigningCert()que imprime el certificado de firma del partner en formato codificado Base64:getFederationPartnerSigningCert("acmeIdP","idp")-
Con
acmeIdPcomo nombre del partner creado anteriormente -
idpindica el tipo de socio
-
-
setFederationPartnerSigningCert()que carga el archivo de certificado de firma transferido como parámetro a la configuración del partnerIdP:setFederationPartnerSigningCert("acmeIdP","idp", "/tmp/cert.file")-
Con
acmeIdPcomo nombre del partner creado anteriormente -
idpindica el tipo de socio -
el tercer parámetro indica la ubicación en el sistema de archivos del archivo que contiene el certificado:
-
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--)
-
o en formato DER donde el certificado se almacena en codificación binaria
-
-
-
deleteFederationPartnerSigningCert()que elimina el certificado de firma de la entrada de partner IdP:deleteFederationPartnerSigningCert("acmeIdP","idp")-
Con
acmeIdPcomo nombre del partner creado anteriormente -
idpindica el tipo de socio
-
-
Los comandos
getFederationPartnerEncryptionCert(),setFederationPartnerEncryptionCert()ydeleteFederationPartnerEncryptionCert()son similares a los anteriores, excepto que gestionan el certificado de cifrado del partner:-
getFederationPartnerEncryptionCert("acmeIdP","idp")(Fin de creación) -
setFederationPartnerEncryptionCert("acmeIdP","idp", "/tmp/cert.file")(Fin de creación) -
deleteFederationPartnerEncryptionCert("acmeIdP","idp")(Fin de creación)
-
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:
-
setIdPPartnerAttributeProfile(partnerName, attrProfileID)(Fin de creación)-
partnerNamees el nombre utilizado para crear el partner IdP -
attrProfileIDes el ID de perfil de atributo de socio IdP
-
-
Para mostrar los perfiles de atributo de partner IdP existentes, ejecute:
listIdPPartnerAttributeProfileIDs()
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")
-
partnerNamees el nombre utilizado para crear el partner IdP -
partnerTypese debe definir en "idp", ya que el socio es un SP -
binding: enlace para utilizarhttppostpara el enlaceHTTPPOSTohttpredirectpara el enlace HTTP-Redirect para los mensajes AuthnRequest yLogoutRequest/LogoutResponsede SAML 2.0. Solo SAML 2.0 -
ssoResponseBinding: enlace que se va a utilizar para devolver la afirmación de SAML a IdP; httppost para el enlace HTTP-POST o artefacto para el enlace de artefacto
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.
Create SAML 2.0 IdP Partners in OAM and SP
F59901-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.