Creación de socios SP de SAML 2.0 en OAM y IdP
En este artículo se tratan los distintos tipos de información que se deben conocer para configurar un acuerdo de federación entre OAM que actúa como un IdP de SAML 2.0 y un partner SP de SAML 2.0 remoto, incluidos:
-
Configurar un socio SP de SAML 2.0 remoto con metadatos de SAML 2.0
-
Configurar un partner de SP de SAML 2.0 remoto sin metadatos de SAML 2.0
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.
SAML 2.0 con metadatos
La Consola de Administración de OAM
Para crear un nuevo partner de SP 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, Administración de proveedores de identidad.
-
Haga clic en el botón Crear partner de proveedor de servicios.
-
En la pantalla Crear:
-
Introduzca un nombre para el partner.
-
Seleccione SAML 2.0 como Protocolo.
-
Haga clic en Cargar metadatos y cargue el archivo de metadatos de SAML 2.0 para el SP.
-
Seleccione el formato
NameID
que desea definir en la afirmación de SAML 2.0 (por ejemplo, el formato de dirección de correo electrónicoNameID
).
-
-
Introduzca cómo se debe definir el valor
NameID
:-
Si selecciona el atributo de almacén de ID de usuario, significa que el valor
NameID
se debe definir en el atributo LDAP especificado en el campo junto a la lista desplegable. -
Si selecciona Expresión, significa que el valor
NameID
se definirá en función de la expresión especificada en el campo junto a la lista desplegable.
-
-
Seleccione el perfil de atributo que se va a utilizar para rellenar la afirmación de SAML con atributos.
-
Haga clic en Guardar.
Descripción de la ilustración Service_provider_partner_Screen.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:
-
Active la desconexión global para indicar 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.
-
Afirmación de cifrado: si la afirmación enviada por
IdP
se debe cifrar mediante el certificado de cifrado del SP (nota: el SP debe soportar afirmaciones cifradas y el certificado de cifrado del SP debe estar presente en los metadatos del SP de SAML 2.0). -
Enlace de respuesta SSO: cómo se debe enviar la afirmación al SP si el SP no ha solicitado ningún enlace concreto.
Nota: La subsección "Asignación de usuario de consulta de atributo" solo es relevante para el flujo de solicitud/autoridad de atributos de SAML cuando se ejerce el intercambio de consulta de atributos de SAML. Este flujo no forma parte del flujo SSO de federación.
Descripción de la ilustración Edit_Partner_Screen.jpg
WLST
Para crear un nuevo partner de SP 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 un partner de SP de SAML 2.0 con metadatos que se denominarán
acmeSP
en OAM:addSAML20SPFederationPartner("acmeSP", "/tmp/acme-sp-metadata-saml20.xml")
. -
De manera predeterminada, el nuevo socio de SP está configurado para:
-
Utilice la dirección de correo electrónico con el formato
NameID
-
Utilice el atributo de usuario LDAP de correo como valor
NameID
-
No cifrar la afirmación
-
Utilizar HTTP-POST como enlace de respuesta SSO por defecto
-
-
Salga del entorno WLST:
exit()
.
SAML 2.0 sin Metadatos
La Consola de Administración de OAM
Para crear un nuevo partner de SP de SAML 2.0 sin metadatos, ejecute los siguientes pasos (asegúrese primero de tener todos los datos del partner de SP, como certificados, identificadores de SP y URL):
-
Vaya a la consola de administración de OAM:
http(s)://oam-admin-host:oam-adminport/oamconsole
. -
Vaya a Identity Federation, Administración de proveedores de identidad.
-
Haga clic en el botón Crear partner de proveedor de servicios.
-
En la pantalla Crear:
-
Introduzca un nombre para el partner.
-
Seleccione SAML 2.0 como Protocolo.
-
Seleccione Enter Manually.
-
Introduzca el emisor / ProviderID del socio SP.
-
Introduzca la URL del servicio de consumidores de afirmaciones para ese partner de SP: es la URL a la que se redirige al usuario desde IdP con la afirmación de SAML.
-
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
LogoutRequest
de SAML 2.0. -
Introduzca la URL de respuesta de desconexión de SAML 2.0 donde el partner puede procesar un mensaje
LogoutResponse
de SAML 2.0.
-
-
Si el socio del SP firma mensajes SAML, cargue el archivo de certificado de firma:
-
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 es necesario cifrar la afirmación de SAML y el SP 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
-
-
-
Introduzca cómo se debe definir el valor NameID:
-
Si selecciona el atributo de almacén de ID de usuario, significa que el valor
NameID
se debe definir en el atributo LDAP especificado en el campo junto a la lista desplegable. -
Si selecciona Expresión, significa que el valor
NameID
se definirá en función de la expresión especificada en el campo junto a la lista desplegable.
-
-
Seleccione el perfil de atributo que se utiliza para rellenar la afirmación de SAML con atributos.
-
Haga clic en Guardar.
Descripción de la ilustración Create_Service_Provider_Screen.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:
-
Active la desconexión global para indicar 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.
-
Cifrar afirmación: si la afirmación enviada por IdP se debe cifrar mediante el certificado de cifrado del SP. Nota: El SP debe soportar afirmaciones cifradas y el certificado de cifrado del SP debe estar presente en los metadatos del SP de SAML 2.0.
-
Enlace de respuesta SSO: cómo se debe enviar la afirmación al SP si el SP no ha solicitado ningún enlace concreto.
-
Nota: La subsección "Asignación de usuario de consulta de atributo" solo es relevante para el flujo de solicitud/autoridad de atributos de SAML cuando se ejerce el intercambio de consulta de atributos de SAML. Este flujo no forma parte del flujo SSO de federación.
Descripción de la ilustración Edit_Partner_withAdvOption_Screen.jpg
WLST
Para crear un nuevo partner de SP 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 de SP, como certificados, identificadores de SP 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 un partner de SP de SAML 2.0 sin metadatos que se denominarán
acmeSP
en OAM:addSAML20SPFederationPartnerWithoutMetadata("acmeSP","https://sp.com", "https://sp.com/saml20/sso")
-
De manera predeterminada, el nuevo socio de SP está configurado para:
-
Utilice la dirección de correo electrónico con el formato
NameID
-
Utilice el atributo de usuario LDAP de correo como valor
NameID
-
No cifrar la afirmación
-
No realizar desconexión
-
Utilizar HTTP-POST como enlace de respuesta SSO por defecto
-
Usar Perfil de Atributo de Proveedor de Servicios por Defecto
-
No se ha cargado ningún certificado para este partner de SP
-
-
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:
-
Certificado de firma de SAML
-
Certificado de cifrado de SAML
-
Perfil de Atributo de Partner de SP para un Partner de SP
-
Configuración de
NameID
de SAML -
Enlaces de solicitud y respuesta SSO de SAML
-
Afirmación cifrada SAML 2.0
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()
.
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 de SP, ejecute:
-
El comando
configureSAML20Logout()
:configureSAML20Logout("acmeSP", "sp","true",saml20LogoutRequestURL="https://sp.com/saml20/logoutReq",saml20LogoutResponseURL="https://sp.com/saml20/logoutResp")
-
Con
acmeSP
como nombre del partner creado anteriormente -
sp
indica el tipo de socio -
true indica que la desconexión de SAML 2.0 está activada
-
saml20LogoutRequestURL
hace referencia al punto final de partner de SP que puede procesar un mensajeLogoutRequest
de SAML 2.0 -
saml20LogoutResponseURL
hace referencia al punto final de partner de SP que puede procesar un mensajeLogoutResponse
de SAML 2.0
-
Para desactivar el cierre de sesión de SAML 2.0 para el partner de SP, ejecute:
-
El comando
configureSAML20Logout()
:configureSAML20Logout("acmeSP", "sp","false")
-
Con
acmeSP
como nombre del partner creado anteriormente -
sp
indica 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("acmeSP","sp")
-
Con
acmeSP
como nombre del partner creado anteriormente -
sp
indica el tipo de socio
-
-
setFederationPartnerSigningCert()
, que carga el archivo de certificado de firma transferido como parámetro a la configuración del partner de SP:setFederationPartnerSigningCert("acmeSP","sp", "/tmp/cert.file")
-
Con
acmeSP
como nombre del partner creado anteriormente -
sp
indica 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 de SP:deleteFederationPartnerSigningCert("acmeSP","sp")
-
Con
acmeSP
como nombre del partner creado anteriormente -
sp
indica el tipo de socio -
Los comandos
getFederationPartnerEncryptionCert()
,setFederationPartnerEncryptionCert()
ydeleteFederationPartnerEncryptionCert()
son similares a los anteriores, excepto que gestionan el certificado de cifrado del partner:-
getFederationPartnerEncryptionCert("acmeSP","sp")
(Fin de creación) -
setFederationPartnerEncryptionCert("acmeSP","sp", "/tmp/cert.file")
(Fin de creación) -
deleteFederationPartnerEncryptionCert("acmeSP","sp")
(Fin de creación)
-
-
Perfil de Atributo de Partner de Proveedor de Servicios
Para configurar el perfil de atributo de socio de SP para un socio de SP específico, utilice los siguientes comandos:
-
Para configurar un socio de SP para que utilice un perfil de atributo de socio de SP específico, ejecute:
setSPPartnerAttributeProfile(partnerName, attrProfileID)
-
partnerName
es el nombre utilizado para crear el partner de SP -
attrProfileID
es el ID de perfil de atributo de socio de SP
-
-
Para mostrar los perfiles de atributo de socio de SP existentes, ejecute:
listSPPartnerAttributeProfileIDs()
Enlaces de solicitud y respuesta SSO de SAML
Para configurar los enlaces SAML para un partner de SP específico, utilice los siguientes comandos:
-
Para configurar el socio de SP, ejecute:
configureSAMLBinding(partnerName, partnerType, binding, ssoResponseBinding="httppost")
-
partnerName
es el nombre utilizado para crear el partner de SP -
partnerType
se debe definir ensp
porque el partner es un SP -
Enlace: enlace para utilizar
httppost
para el enlace HTTPPOST, ohttpredirect
para el enlaceHTTPRedirect
, para los mensajes AuthnRequest yLogoutRequest
/LogoutResponse
de SAML 2.0. Solo SAML 2.0 -
ssoResponseBinding
: enlace que se va a utilizar para devolver la afirmación de SAML al SP;httppost
para el enlace HTTP-POST o artefacto para el enlace de artefacto
-
Configuración de NameID de SAML
Para configurar los valores de NameID
para un partner de SP de SAML:
-
Utilice el siguiente comando:
setSPSAMLPartnerNameID(partnerName, nameIDFormat, nameIDValue="", customFormat="", nameIDValueComputed="false")
-
partnerName
es el nombre utilizado para crear el partner de SP -
nameIDFormat
: los valores posibles sonorafed-emailaddress
paraurn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress
-
orafed-x509
paraurn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName
-
orafed-winflowsnamequaliRer
paraurn:oasis:names:tc:SAML:1.1:nameidformat:WinflowsDomainQualiRedName
-
orafed-kerberos
paraurn:oasis:names:tc:SAML:2.0:nameidformat:Kerberos
-
orafed-transient
paraurn:oasis:names:tc:SAML:2.0:nameidformat:transient
-
orafed-persistent
paraurn:oasis:names:tc:SAML:2.0:nameidformat:persistent
-
orafed-unspecified
paraurn:oasis:names:tc:SAML:1.1:nameidformat:unspecified
-
orafed-custom
para un formatoNameID
personalizado que se especifica en el parámetrocustomFormat
.
-
-
-
customFormat
que contiene el formato que se va a utilizar, sinameIDFormat
se ha definido enorafedcustom
-
nameIDValueComputed
: verdadero o falso e indica si se debe generarNameID
a partir de un hash deUserID
, sinameIDFormat
está definido enorafed-persistent
(solo SAML 2.0)
Afirmación cifrada SAML 2.0
Para configurar IdP para enviar o no afirmaciones de SAML 2.0 cifradas, ejecute los siguientes comandos:
-
Para configurar IdP para cifrar la afirmación de SAML 2.0 para un partner de SP, ejecute:
updatePartnerProperty(partnerName, "sp", "sendencryptedassertion", "true", "boolean") partnerName
es el nombre que se ha utilizado para crear el partner de SP -
Para configurar IdP para enviar una afirmación de SAML 2.0 sin formato (por defecto) para un partner de SP, ejecute:
updatePartnerProperty(partnerName, "sp", "sendencryptedassertion", "false", "boolean")
partnerName
es el nombre utilizado para crear el partner de SP
Ejemplos
Los siguientes comandos se pueden utilizar para agregar un partner de SP sin metadatos de SAML 2.0:
addSAML20SPFederationPartnerWithoutMetadata("acmeSP","https://sp.com","https://sp.com/saml20/sso")configureSAML20Logout("acmeSP","sp","true",saml20LogoutRequestURL="https://sp.com/saml20/logoutReq",saml20LogoutResponseURL="https://sp.com/saml20/logoutResp")setFederationPartnerSigningCert("acmeSP","sp","/tmp/cert.file")setFederationPartnerEncryptionCert("acmeSP","sp","/tmp/cert.file")setSPSAMLPartnerNameID("acmeSP","orafedemailaddress",nameIDValue="$user.aZr.mail")
Los siguientes comandos se pueden utilizar para agregar un partner de SP con metadatos de SAML 2.0 (en este ejemplo, se utiliza el estilo de identidad de OAM por defecto):
addSAML20SPFederationPartner("acmeSP", "/tmp/acme-sp-metadata-saml20.xml") setSPSAMLPartnerNameID("acmeSP","orafedemailaddress", nameIDValue="$user.attr.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.
Creating SAML 2.0 SP Partners in OAM and IdP
F60926-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.