Proxy de Federación en OAM y IdP

En este artículo se explica el concepto de proxy de federación y cómo IdP se puede configurar fácilmente para convertirse en un SP y delegar la autenticación a otro IdP remoto en lugar de autenticar al usuario localmente.

El proxy de federación se utiliza normalmente cuando un hub de federación actúa como:

Este enfoque tiene la ventaja de:

Modelo de confianza directa

En este modelo, los distintos servidores de Federation confían directamente entre sí y no hay entidades intermedias que actúen como proxy.

Este modelo tiene la ventaja de reducir la complejidad de los flujos de federación, porque solo dos servidores están implicados en la operación de SSO, pero a veces tiene el inconveniente de crear una enorme sobrecarga de gestión que los partners podrían no estar de acuerdo.

Tomemos un ejemplo de una empresa global llamada ACME Corp, que tiene oficinas en todo el mundo. La estructura de la compañía está formada por tres organizaciones principales que representan una región diferente del mundo, y cada organización está a cargo de su dominio de seguridad:

Cada organización tiene su propio dominio de seguridad, lo que significa:

Ahora, digamos que ACME Corp quiere tener un acuerdo de federación con algunos proveedores de servicios, algunos de los cuales son proveedores, otros son servicios comprados por ACME Corp, como un servicio de conferencia telefónica, así como un servicio Webex.

Para establecer la federación entre las distintas organizaciones de ACME Corp y los SP, el servidor de federación de cada organización debe establecer la confianza con cada SP remoto:

Este diagrama representa todos los acuerdos que deberían establecerse:

Descripción de la ilustración Direct_Trust_Model.jpg

Este enfoque se suele evitar, ya que publica al partner la complejidad interna de la infraestructura de ACME Corp.

Se han definido SSO de federación y SAML para permitir que dos dominios de seguridad distintos realicen SSO entre dominios de forma que un partner no necesite saber sobre la implantación y el despliegue de seguridad del otro partner. En este caso, se hace evidente que esta promesa se ha incumplido y que la complejidad de las opciones de seguridad de ACME Corp está afectando a los partners de SP.

Modelo de confianza con corretaje

En este modelo, existe el concepto de proxy de federación en el que se deben utilizar algunas entidades para actuar como proxies/SP para realizar operaciones de SSO de federación en nombre de otros SP.

Si volvemos a tomar nuestro ejemplo de ACME Corp, el enfoque correcto para implementar SSO de federación con otros partners de SP es a través de un modelo de confianza con corretaje o proxy de federación, donde:

Este enfoque está más en línea con la filosofía de federación/SAML, donde los partners externos desconocen la infraestructura de seguridad y los componentes de ACME Corp, e interactúan solo con un único IdP.

Esta solución también resuelve los altos gastos generales de gestión en los que el número de acuerdos era particularmente elevado y hacía que las actualizaciones del acuerdo fueran un proceso largo. Con este enfoque:

Este diagrama representa los acuerdos de federación necesarios en un modelo de confianza con corretaje (o proxy de federación):

Descripción de la ilustración Brokered_Trust_Model.jpg

Proxy de Federación en OAM

El objetivo de un proxy de federación es convertir IdP en un SP para que, al recibir una solicitud de SSO desde un primer SP remoto, en lugar de desafiar al usuario localmente, IdP se convierta en un SP y dispare una nueva operación de SSO de federación con un segundo IdP remoto.

Una vez finalizada correctamente la segunda operación de SSO de federación, el proxy IdP habrá identificado al usuario y podrá crear una respuesta de SSO para el SP original.

OAM soporta el proxy de federación ahora para todos los protocolos:

Por lo tanto, un SP podría realizar SSO de federación con IdP a través de SAML 1.1, y IdP se convierte en SP y SSO de federación con un segundo IdP remoto a través de SAML 2.0. El SP original no necesita conocer el protocolo utilizado entre OAM/SP y el segundo IdP o incluso que se haya realizado una segunda operación de SSO de federación.

En un proxy de federación Ahora, IdP se puede configurar para "reenviar" el método de autenticación de federación especificado en el segundo SSO de federación al SP original.

Configuración de OAM para Proxy de Federación

Como se ha explicado anteriormente, IdP aprovecha OAM para la autenticación de usuario: cada vez que se realiza una operación de SSO de federación, IdP llama a OAM especificando un esquema de autenticación, para asegurarse de que el usuario está autenticado correctamente y, si es necesario, lo desafía.

Como sabe, OAM define esquemas específicos vinculados a OAM/SP: si un usuario no autenticado solicita acceso a un recurso protegido por FederationScheme (o esquema que utiliza un módulo de autenticación similar a FederationPlugin), OAM llama a OAM/SP que dispara una operación SSO de federación con un IdP remoto.

Por lo tanto, para que IdP realice un proxy de federación ahora, en lugar de que IdP llame a OAM con un esquema de autenticación local, debe tener IdP llamado a OAM con FederationScheme. Desde allí:

Comando WLST

Para configurar IdP para utilizar SSO de federación para autenticar un usuario en lugar de un mecanismo de autenticación local, ejecute uno de los siguientes comandos:

Consulte el artículo sobre autenticación en IdP para obtener más información sobre cómo configurar OAM para la autenticación. En este ejemplo, configure IdP de forma global para utilizar el SSO de federación como mecanismo de autenticación por defecto:

  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. Ejecute el comando setIdPDefaultScheme(): setIdPDefaultScheme("FederationScheme").

  5. Salga del entorno WLST: exit().

Con este cambio, se utiliza FederationScheme para autenticar usuarios.

Se pueden utilizar otros esquemas de federación para autenticar al usuario; OAM se configura en el nivel global (todos los usuarios de todos los SP se autentican mediante ese esquema de federación) o en el nivel de partner de SP (todos los usuarios que realizan SSO de federación con ese SP específico se autentican mediante ese esquema de federación). Recuerde que puede crear un esquema de federación para un IdP específico, ya sea mediante el comando WLST createAuthnSchemeAndModule de OAM o mediante la sección Editar Partner IdP de la Consola de Administración de OAM.

Determinación del segundo IdP que se va a utilizar

Cuando se utiliza un esquema de federación para la autenticación en OAM, OAM/SP deberá determinar qué IdP utilizar para la operación SSO de federación:

Para definir un partner IdP como el SSO por defecto IdP:

Proxion de Métodos de Autenticación de Federación

Como se explica en un artículo anterior, cuando IdP crea una afirmación, asigna el esquema OAM local utilizado para autenticar el usuario a un método de autenticación de federación.

En el caso de un proxy SSO de federación Ahora, esto significa que se asigna FederationScheme a un método de autenticación de federación. Por ejemplo, si el esquema se debe asignar a urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport para SAML 2.0, el administrador utiliza un comando similar a:

En algunos casos, puede ser preferible reenviar el método de autenticación de federación recibido del segundo IdP en lugar de asignar localmente el esquema de federación a un método de autenticación de federación.

Configurar IdP para reenviar los métodos de autenticación de federación en un proxy SSO de federación.

Ahora, utilice el comando useProxiedFedAuthnMethod():

  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. Ejecute el comando useProxiedFedAuthnMethod(): useProxiedFedAuthnMethod(enabled="true/false",authnSchemeToAdd="SCHEME", authnSchemeToRemove="SCHEME").

  5. Salga del entorno WLST: exit().

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.