Autenticar clientes de servicio web con una señala SAML (Security Markup Assertion Language)

Web Services Security SAML Token Profile 1.1 define cómo utilizar las aserciones de Security Assertion Markup Language (SAML) V1.1 y V2.0 con la especificación de seguridad Web Services Security (WSS): SOAP Message Security V1.1. Liberty soporta la aserción de Web Services Security SAML Token Profile 1.1 para SAML v2.0 con el método de confirmación de portador.

Acerca de esta tarea

Liberty soporta SAML v2.0 con el método de confirmación de portador (<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">). Un cliente de servicios web propaga una señal SAML al proveedor de servicios web como medio para identificar el solicitante y el proveedor de servicios web puede utilizar esta información de señal SAML para autenticar al solicitante.

El requisito de una señal SAML se expresa como una de las señales de soporte en la política WS-Security. Puede añadir un requisito SamlToken como una señal necesaria en una de las aserciones de señal de soporte, incluyendo SupportingTokens, SignedSupportingTokens, SignedEncryptedSupportingTokens y EncryptedSupportingTokens.

Procedimiento

  1. Configure un cliente servicios web para propagar la señal SAML.

    Es necesario que exista Saml20Token (com.ibm.websphere.security.saml2.Saml20Token) en el asunto RunAs. Si se configura una aserción de política SamlToken, el tiempo de ejecución de Liberty WS-Security extraerá automáticamente Saml20Token del asunto RunAs y añadirá una aserción SAML a la cabecera SOAP <wsse:Security>. Son necesarios los pasos siguientes:

    1. Añada wsSecuritySaml-1.1 a featureManager en el archivo server.xml.
      <featureManager>
              <feature>wsSecuritySaml-1.1</feature>
      </featuremanager>
    2. La aplicación debe especificar la señal SAML como una señal de soporte (incluyendo la aserción de señal SupportingTokens, SignedSupportingTokens, SignedEncryptedSupportingTokens y EncryptedSupportingTokens) en la política en el archivo .wsdl.
      <wsp:Policy wsu:Id="CallerHttpPolicy">
      	<sp:SupportingTokens>
      		<wsp:Policy>
      			<sp:SamlToken
      				sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
      				<wsp:Policy>
      					<sp:WssSamlV20Token11 />
      				</wsp:Policy>
      			</sp:SamlToken>
      		</wsp:Policy>
      	</sp:SupportingTokens>
      
      </wsp:Policy>
  2. Autentique el servicio web con una señal SAML.

    Cuando el proveedor de servicios web recibe el mensaje SOAP con la señal SAML, valida la primera señal y, después, utiliza los atributos de la señal SAML para completar el proceso de autenticación. Lo que aparece a continuación son los pasos implicados en la validación de la señal SAML:

    1. Añada wsSecuritySaml-1.1 a featureManager en el archivo server.xml.
      <featureManager>
              <feature>wsSecuritySaml-1.1</feature>
      </featuremanager>
    2. La aplicación debe especificar la señal SAML como una señal de soporte en la política dentro del archivo .wsdl.
    3. Los atributos siguientes en la configuración de servidor se utilizan al validar la señal.
      <wsSecurityProvider id="default"
                ..
                ..
                <samltoken
                     wantAssertionsSigned="true"
                     clockSkew="5m"
                     timeToLive="30m"
                     requiredSubjectConfirmationMethod="bearer"
                     audienceRestrictions="https://../aud1"
                     audienceRestrictions="aud2" ..          />
                      
                      
      </wsSecurityProvider>
    • wantAssertionsSigned - especifique si se va a firmar el elemento <saml:Assertion> del mensaje SOAP recibido por el proveedor WS-Security.
    • clockSkew - la diferencia de tiempo permitida entre sistemas que han generado la señal SAML y que han recibido la señal SAML. El valor predeterminado es 5 minutos.
    • timeToLive - el tiempo de vida de una aserción SAML. Este valor es necesario cuando falta la condición NoOnOrAfter en la aserción SAML. El valor predeterminado es 30 minutos.
    • requiredSubjectConfirmationMethod - el método de confirmación del asunto en la aserción SAML. El valor predeterminado es portador.
    • audienceRestrictions - las audiencias permitidas de la aserción SAML. El valor predeterminado es que están permitidas todas las audiencias.

    Si desea más detalles sobre los pasos implicados en la autenticación, consulte Creación de una configuración de interlocutor SAML WS-Security.


Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_auth_saml_token.html