Alteración temporal del sujeto RunAs en la hebra para JAAS

Para ampliar la función proporcionada por las API (interfaces de programación de aplicaciones) JAAS (Java™ Authentication and Authorization Service), puede establecer el sujeto RunAs, o sujeto de invocación, con una entrada válida diferente que se utiliza en las solicitudes de salida de esta hebra de ejecución.

Antes de empezar

Necesita los siguientes permisos de seguridad de Java 2 para ejecutar estas API:
  • permission javax.security.auth.AuthPermission "wssecurity.getRunAsSubject"
  • permission javax.security.auth.AuthPermission "wssecurity.getCallerSubject"
  • permission javax.security.auth.AuthPermission "wssecurity.setRunAsSubject"

Acerca de esta tarea

Con esta extensión tiene la flexibilidad de asociar el sujeto a todas las llamadas remotas de esta hebra incluso si utiliza un método WSSubject.doAs para asociar el sujeto con la acción remota.

[z/OS]Un desarrollador de aplicaciones puede utilizar el método WSSubject.doAs para establecer un sujeto JAAS autenticado por un módulo de inicio de sesión JAAS como la identidad de seguridad activa que debe utilizar el tiempo de ejecución de WebSphere Application Server mientras realiza la acción especificada. WSSubject.doAs sólo sincroniza la identidad de hebra cuando se lo llama dentro de un componente que esté configurado para la sincronización con la hebra. Cuando se utiliza conjuntamente con la opción Sincronizar con hebra de OS de la aplicación habilitada, esta identidad se establece en la hebra del sistema operativo para el ámbito de dicha acción.

Procedimiento

  1. Establezca un nuevo sujeto RunAs para la hebra, alterando temporalmente el establecido declarativamente.
    com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(caller_subject);  	 	 
  2. Realice algunas llamadas remotas.
  3. Restaure el sujeto RunAs anterior.
    com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(runas_subject);

Ejemplo

try { javax.security.auth.Subject runas_subject, caller_subject; runas_subject = com.ibm.websphere.security.auth.WSSubject.getRunAsSubject(); caller_subject = com.ibm.websphere.security.auth.WSSubject.getCallerSubject();   // establecer un nuevo
sujeto RunAs para la hebra, alterando temporalmente el establecido de forma declarativa com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(caller_subject);   // realizar algunas llamadas
remotas   // volver a restaurar al runAsSubject anterior com.ibm.websphere.security.auth.WSSubject.setRunAsSubject(runas_subject); } catch (WSSecurityException e) { // log error } catch (Exception e) { // log error }


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_override
File name: tsec_override.html