Propiedades personalizadas del interceptor de asociación de confianza (TAI) de inicio de sesión único (SSO) web SAML
Las tablas siguientes listan las propiedades personalizadas para el interceptor de asociación de confianza (TAI) de Security Assertion Markup Language (SAML). Puede definir estas propiedades en el panel de propiedades personalizadas para el TAI de SAML utilizando la consola administrativa.
Para asignar nombres de propiedades exclusivos que identifiquen a cada socio de proveedor de servicios (SP) de inicio de sesión único (SSO) posible, se incorpora un sso_<id> en el nombre de propiedad y se utiliza para agrupar las propiedades asociadas a cada socio de SSO. Los sso_<id> están numerados de forma secuencial para cada socio de proveedor de servicios de SSO.
- Propiedades globales - estas propiedades son aplicables a todos los socios de SSO que se han configurado para el TAI de SAML.
- Propiedades de IdP - estas propiedades son aplicables a los proveedores de identidades que se han configurado para el TAI de SAML. Para asignar nombres de propiedades exclusivos que identifiquen a cada socio de proveedor de identidades, se incorpora un idp_<id> en el nombre de propiedad y se utiliza para agrupar las propiedades asociadas a cada socio de IdP de SSO.
- Propiedades del proveedor de servicios - estas propiedades son aplicables a un proveedor de servicios y se agrupan para cada socio proveedor de servicios de SSO bajo un único sso_<id>.
En la tabla siguiente se describen las propiedades personalizadas del TAI de SAML global:
Nombre de propiedad | Valores | Descripción |
---|---|---|
targetUrl | Puede especificar cualquier valor de URL. | Esta propiedad es alterada temporalmente por sso_<id>.sp.targetUrl. Éste es el URL de destino predeterminado después de la validación satisfactoria de SAMLResponse cuando no se recibe ningún RelayState del IdP. |
useRelayStateForTarget | Puede especificar uno de los siguientes valores:
|
Esta propiedad se altera temporalmente mediante sso_<id>.sp. useRelayStateForTarget. Se utiliza para indicar si RelayState se debe utilizar como URL de destino. |
allowedClockSkew | Puede especificar cualquier número positivo. El valor predeterminado es tres minutos. | Esta propiedad se altera temporalmente mediante sso_<id>.sp. allowedClockSkew. Se utiliza para especificar el desfase horario permitido en minutos cuando se valida la señal SAML. |
enforceTaiCookie | Puede especificar uno de los siguientes valores:
|
Esta propiedad se altera temporalmente mediante sso_<id>.sp. enforceTaiCookie. Se utiliza para indicar si el TAI de SAML debe comprobar si una cookie LTPA se correlaciona con un sujeto creado para el socio de SSO. |
preventReplayAttackScope | Esta propiedad no tiene un valor predeterminado. Puede especificar el siguiente valor:
|
De forma predeterminada, el TAI de SAML utiliza una memoria caché distribuida para almacenar los ID de aserción SAML para evitar un ataque por reproducción. Si establece esta propiedad en server, el TAI de SAML utiliza la memoria caché local en su lugar. |
replayAttackTimeWindow | Puede especificar cualquier valor entero. El valor predeterminado es 30. | Esta propiedad especifica el tiempo, en minutos, dentro del cual la segunda solicitud se rechaza si el TAI recibe dos señales SAML idénticas. Consulte también sso_<id>.sp. preventReplayAttack. |
retryOnceAfterTrustFailure | Puede especificar uno de los siguientes valores:
|
Establezca esta propiedad en true para permitir que el tiempo de ejecución vuelva a cargar el almacén de confianza cuando falle la validación de confianza. Esto permite actualizar el almacén de confianza con certificados de IdP nuevos mientras se ejecuta el servidor de aplicaciones. |
redirectToIdPonServerSide | Puede especificar uno de los siguientes valores:
|
Esta propiedad se altera temporalmente mediante sso_<id>.sp. redirectToIdPonServerSide. Esta propiedad se utiliza para indicar que el TAI debe direccionarse al propio IdP. Establezca esta propiedad en false para realizar una redirección al lado de cliente. Establezca esta propiedad en false si los fragmentos de URL se pierden en la redirección; el TAI realizará una redirección al lado de cliente. |
En la tabla siguiente se describen las propiedades personalizadas del TAI de SAML de IdP:
Nombre de propiedad | Valores | Descripción |
---|---|---|
sso_<id>.idp_<id>.SingleSignOnUrl | Puede especificar cualquier valor de URL. | Esta propiedad personalizada especifica el URL del servicio de inicio de sesión único de IdP. |
sso_<id>.idp_<id>.allowedIssuerDN | Esta propiedad personalizada no tiene un valor predeterminado. | Esta propiedad personalizada especifica el DN de sujeto del certificado que está autorizado a firmar la señal SAML enviada por el IdP. Si la señal SAML no está firmada por este certificado, la señal se rechaza. Si se especifica esta propiedad, la propiedad personalizada sso_<id>.sp.wantAssertionSigned debe ser true. Utilice esta propiedad cuando, en lugar del certificado de firmante del IdP, tiene el emisor del certificado de firmante en el almacén de confianza. Esto impedirá que se admitan todos los firmantes con certificados emitidos por el mismo emisor. |
sso_<id>.idp_<id>.allowedIssuerName | Esta propiedad personalizada no tiene un valor predeterminado. | Esta propiedad personalizada especifica el valor del elemento de emisor <saml:Issuer> en la señal SAML. La señal SAML recibida del IdP se rechaza si el emisor en la señal no coincide con este valor. |
En la tabla siguiente se describen las propiedades personalizadas del TAI de SAML del proveedor de servicios:
Nombre de propiedad | Valores | Descripción |
---|---|---|
sso_<id>.sp.acsUrl | Esta propiedad no tiene un
valor predeterminado. Puede especificar uno de los siguientes valores:
|
Esta es la única propiedad necesaria para cada sso_<id>.
Especifica el URL de la aplicación empresarial o ACS. Si necesita tener varios puntos de entrada similares para los flujos de trabajo de SAML, puede especificar un URL con un comodín al final de la serie, en lugar de una serie de patrón de URI específica para esta propiedad. Por ejemplo:
|
sso_<id>.sp.cookiegroup | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica el distintivo que se va a añadir a una cookie ltpa para el socio de SSO SAML configurado. Cuando se recibe una solicitud web con una cookie ltpa, la cookie ltpa sólo es válida si el distintivo coincide con este valor. |
sso_<id>.sp.EntityID | De forma predeterminada, esta propiedad se establece en sso_<id>.sp.aclUrl. | Esta propiedad se utiliza para verificar AudienceRestriction en la aserción SAML. |
sso_<id>.sp.targetUrl | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica el URL de la aplicación de destino. Se utiliza cuando RelayState no está presente en la solicitud del cliente. |
sso_<id>.sp.useRelayStateForTarget | Puede especificar uno de los siguientes valores:
|
Esta propiedad especifica si el valor de RelayState recibido en la solicitud de cliente se debe utilizar como URL de la aplicación de destino o no. Si esta propiedad se establece en false, la propiedad sso_<id>.sp.targetUrl se utiliza como URL de la aplicación de destino. |
sso_<id>.sp.login.error.page | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica la página de error, la página de inicio de sesión IdP o la clase de correlación personalizada a la que se redirige una solicitud de cliente no autenticado. Si se especifica una clase de correlación personalizada en esta propiedad personalizada, el archivo .jar que contiene la clase personalizada debe colocarse en el directorio (WAS_HOME)/lib o (WAS_HOME)/lib/ext. |
sso_<id>.sp.acsErrorPage | Esta propiedad no tiene un valor predeterminado. | Esta propiedad se utiliza para sustituir sso_<id>.sp.login.error.page. |
sso_<id>.sp.allowedClockSkew | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica, en minutos, el tiempo que se añade a la hora de caducidad de la señal SAML enviada por el IdP. |
sso_<id>.sp.trustStore | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica el almacén de confianza para validar la firma SAML. Especifica el nombre de un almacén de claves gestionado. |
sso_<id>.sp.trustAnySigner | Puede especificar uno de los siguientes valores:
|
Esta propiedad especifica si se verifica el certificado de firmante de la señal SAML para la validación de confianza. Si esta propiedad se establece en true, se confía en cualquier certificado de firmante. |
sso_<id>.sp.keyStore | Esta propiedad es necesaria para recibir y procesar EncryptedAssertions y no tiene valor predeterminado. | Esta propiedad especifica el nombre del almacén de claves gestionado que contiene la clave privada para descifrar una aserción SAML cifrada. Ejemplos:
|
sso_<id>.sp.keyName | Esta propiedad es necesaria para recibir y procesar EncryptedAssertions y no tiene valor predeterminado. | Esta propiedad especifica el nombre de clave para descifrar la aserción SAML. |
sso_<id>.sp.keyPassword | Esta propiedad es necesaria para recibir y procesar EncryptedAssertions y no tiene valor predeterminado. | Esta propiedad especifica la contraseña de clave para descifrar la aserción SAML. |
sso_<id>.sp.keyAlias | Esta propiedad es necesaria para recibir y procesar EncryptedAssertions y no tiene valor predeterminado. | Esta propiedad especifica el alias de clave para descifrar la aserción SAML. |
sso_<id>.sp.wantAssertionsSigned | Puede especificar uno de los siguientes valores:
|
Si esta propiedad se establece en false, no es necesario que la aserción SAML esté firmada y la firma no se valida. |
sso_<id>.sp.preserveRequestState | Puede especificar uno de los siguientes valores:
|
Cuando el proveedor de servicios redirige la solicitud del cliente al inicio de sesión IdP, esta propiedad especifica si el estado del cliente debe guardarse y restaurarse después de que se haya completado la solicitud del cliente. |
sso_<id>.sp.enforceTaiCookie | Puede especificar uno de los siguientes valores:
|
Esta propiedad se utiliza para indicar si el TAI de SAML debe comprobar si una cookie LTPA se correlaciona con un sujeto creado para el socio de SSO. |
sso_<id>.sp.realmName | Puede ser cualquier valor de serie. De forma predeterminada, esta propiedad se establece en el nombre de emisor SAML. | Esta propiedad especifica cualquier atributo SAML y se utiliza junto con realmNameRange. El valor de este atributo se utiliza como reino del sujeto. Si este reino no existe en la lista de reinos especificados por realmNameRange, el reino se rechaza. |
sso_<id>.sp.realmNameRange | Esta propiedad no tiene valor predeterminado. | Esta propiedad especifica una lista de nombres de reino permitidos y se utiliza junto con realmName. Establezca la descripción de sso_<id>.sp.realmName. |
sso_<id>.sp.retryOnceAfterTrustFailure | Puede especificar uno de los siguientes valores:
|
Establezca esta propiedad en true para permitir que el tiempo de ejecución vuelva a cargar el almacén de confianza cuando falle la validación de confianza. Esto permite actualizar el almacén de confianza con certificados de IdP nuevos mientras se ejecuta el servidor de aplicaciones. |
sso_<id>.sp.principalName | Puede ser cualquier valor de serie. De forma predeterminada, esta propiedad se establece en el ID de nombre del sujeto- | Esta propiedad especifica cualquier valor de SAML. El valor de este atributo se utiliza como principal del sujeto. |
sso_<id>.sp.uniqueId | Puede ser cualquier valor de serie. De forma predeterminada, esta propiedad se establece en el ID de nombre del sujeto- | Esta propiedad especifica cualquier valor de SAML. El valor de este atributo se utiliza como ID exclusivo del asunto. |
sso_<id>.sp.groupName | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica cualquier valor de SAML. El valor de este atributo se utiliza como grupos del sujeto. |
sso_<id>.sp.defaultRealm | Puede especificar uno de los siguientes valores:
|
Esta propiedad personalizada especifica si el emisor o el NameQualifier de la aserción SAML se utiliza como reino predeterminado. |
sso_<id>.sp.useRealm | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica un nombre de reino y se utiliza para alterar temporalmente el reino predeterminado. Esta propiedad también sustituye la a realmName. |
sso_<id>.sp.idMap | Puede especificar uno de los siguientes valores:
|
Esta propiedad especifica cómo se correlaciona la señal SAML con el asunto. |
sso_<id>.sp.groupMap | Puede especificar uno de los siguientes valores:
|
Esta propiedad se utiliza con IDAssertion y especifica cómo se correlaciona la señal SAML con los grupos. |
sso_<id>.sp.userMapImpl | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica el nombre de una clase de módulo de correlación de usuarios personalizada. Se utiliza para correlacionar un ID de usuario de la señal SAML con otro ID de usuario que existe en el registro de usuarios local. La clase de correlación personalizada debe implementar la interfaz com.ibm.wsspi.security.web.saml.UserMapping. El archivo .jar que contiene la clase personalizada debe colocarse en el directorio (WAS_HOME)/lib o (WAS_HOME)/lib/ext. |
sso_<id>.sp.X509PATH | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica el almacén de certificados que se utiliza para los certificados de intermediario utilizados para la validación de la firma SAML. |
sso_<id>.sp.CRLPATH | Esta propiedad no tiene un valor predeterminado. | Esta propiedad especifica el almacén de certificados que se utiliza para las listas de revocación de certificados (CRL) utilizadas para la validación de la firma SAML. |
sso_<id>.sp.filter | Esta propiedad no tiene un valor predeterminado. | Esta propiedad se utiliza para especificar una condición que se compara con la solicitud HTTP, para determinar si la solicitud HTTP está seleccionada o no para un socio de inicio de sesión web SAML. Consulte la sección Propiedad de filtro TAI de SAML para obtener más información sobre esta propiedad. |
sso_<id>.sp.preventReplayAttack | Puede especificar uno de los siguientes valores:
|
Esta propiedad se utiliza para especificar si el TAI de SAML debe evitar que se envíen dos señales SAML idénticas en las solicitudes de cliente. Esta propiedad se utiliza junto con la propiedad global replayAttackTimeWindow. |
sso_<id>.sp.preventReplayAttackScope | Esta propiedad no tiene un valor predeterminado. Puede especificar el siguiente valor:
|
De forma predeterminada, el TAI de SAML utiliza una memoria caché distribuida para almacenar los ID de aserción SAML para evitar un ataque por reproducción. Si establece esta propiedad en server, el TAI de SAML utiliza la memoria caché local en su lugar. |
sso_<id>.sp.trustedAlias | Esta propiedad no tiene un valor predeterminado. | Si se especifica esta propiedad, sólo se utiliza la clave especificada por este alias para validar la firma en la aserción SAML. Si la firma de la aserción SAML de entrada de SAMLResponse no incluye el elemento KeyInfo, especifique esta propiedad para resolver el elemento KeyInfo. |
sso_<id>.sp.redirectToIdPonServerSide | Puede especificar uno de los siguientes valores:
|
Esta propiedad se utiliza para indicar que el TAI debe direccionarse al propio IdP. Establezca esta propiedad en false si los fragmentos de URL se pierden en la redirección; el TAI realizará una redirección al lado de cliente. |
Propiedad de filtro TAI de SAML
La propiedad de filtro TAI de SAML sp.filter se utiliza cuando un cliente invoca una aplicación de proveedor de servicios protegida directamente, sin autenticarse en el IdP. La propiedad de filtro suele utilizarse junto con la propiedad sp.login.error.page para redirigir una solicitud de cliente no autenticada a la dirección URL especificada por la propiedad sp.login.error.page. Las propiedades sp.filter no se aplican a una SAMLResponse. El URL de solicitud en una SAMLResponse se evalúa con sp.acsURL.
- se requiere entrada - el elemento de entrada normalmente especifica un nombre de cabecera HTTP, pero también se pueden utilizar request-url y remote-address como elementos especiales
- operator - el operador del elemento especifica uno de los valores siguientes: ==, !=, %=, ^=, < y >
- valor de comparación - este elemento normalmente especifica una serie, pero también se permiten rangos de direcciones IP
Las condiciones se evalúan de izquierda a derecha, tal como especifica el valor de comparación. Si se cumplen todas las condiciones de filtro especificadas por un proveedor de servicios de inicio de sesión único en una solicitud HTTP, el socio del proveedor de servicios de inicio de sesión único se selecciona para la solicitud HTTP.
El elemento de entrada identifica un campo de cabecera de solicitud HTTP para extraerlo de la solicitud y comparar su valor con el valor especificado en la propiedad de filtro según la especificación del operador. Si el campo de cabecera identificada mediante el elemento de entrada no está presente en la solicitud HTTP, se considera que no se cumple la condición. Cualquiera de los campos de cabecera de solicitud HTTP estándar se puede utilizar como el elemento de entrada en la condición de filtro. Consulte la especificación HTTP para obtener la lista de cabeceras válidas.
- request-url - el valor de comparación de esta entrada se compara con la dirección de URL que la aplicación cliente utiliza para realizar la solicitud
- remote-address - el valor de comparación de esta entrada se compara con la dirección TCP/IP de la aplicación cliente que ha enviado la solicitud HTTP
Ejemplos
sso_1.sp.filter=From==samluser@xyz.com
En este caso, si una solicitud de cliente contiene un campo de cabecera HTTP From con un valor de samluser@xyz.com, el TAI de SAML selecciona el socio proveedor de servicios de inicio de sesión único de este filtro sso_1 para procesar la solicitud del cliente. sso_2.sp.filter=request-url%=ivtlanding.jsp
En este caso, si el URL de la aplicación de destino invocada por el cliente contiene la serie ivtlanding.jsp, el TAI de SAML selecciona el socio de inicio de sesión único de este filtro sso_2 para procesar la solicitud del cliente. sso_3.sp.filter=applicationNames==DefaultApplication
En este caso, si el nombre de la aplicación de destino invocada por la aplicación cliente es DefaultApplication, el TAI de SAML selecciona el socio de inicio de sesión único de este filtro sso_3 para procesar la solicitud del cliente. Operador | Condición | Ejemplo |
---|---|---|
== | Este operador especifica una coincidencia exacta. El elemento de entrada debe ser igual al valor de comparación. | From==jones@my.company.com |
%= | Este operador especifica una coincidencia parcial. El elemento de entrada contiene el valor de comparación. | user-agent%=IE 6request-url%=company.com/urlApp1 |
^= | El elemento de entrada contiene uno de los valores de comparación. Éste es el único operador que se puede combinar con el operador |. | request-url^=urlApp1|urlApp2| urlApp3 |
!= | El elemento de entrada no contiene el valor de comparación. | request-url!=test105 |
> | El elemento de entrada es mayor que el valor de comparación. | remote-address>192.168.255.130 |
< | El elemento de entrada es menor que el valor de comparación. | remote-address<192.168.255.135 |
; | Operador lógico AND | request-url!=test105;From==jones@my.company.com5 |