Gestión de Kerberos y otros servicios de autenticación en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Apilamiento del PAM

Si los archivos de configuración contienen solamente un módulo, el resultado de ese módulo determina el resultado de la operación. Por ejemplo, la operación de autenticación predeterminada para la aplicación passwd contiene un módulo, pam_passwd_auth.so.1 en el archivo /etc/pam.d/passwd.

auth required           pam_passwd_auth.so.1

Si, por otro lado, varios módulos implementan un servicio, se dice que esos módulos están apilados, es decir, existe una pila del PAM para ese nombre de servicio. Por ejemplo, tenga en cuenta las entradas de un servicio /etc/pam.d/login de ejemplo:

auth definitive         pam_user_policy.so.1
auth requisite          pam_authtok_get.so.1
auth required           pam_unix_auth.so.1
auth required           pam_dhkeys.so.1
auth required           pam_unix_cred.so.1
auth required           pam_dial_auth.so.1

Estas entradas crean una pila auth para el nombre de servicio login. Para determinar el resultado de esta pila, los códigos de resultado de los módulos individuales requieren un proceso de integración.

En el proceso de integración, los módulos se ejecutan en orden del archivo. Cada código de éxito o error se integra en el resultado general según el indicador de control del módulo. El indicador de control puede provocar la finalización anticipada de la pila. Por ejemplo, el fallo de un módulo requisite o definitive termina la pila. Si no hay fallos anteriores, el éxito de un módulo sufficient, definitive o binding también finaliza la pila. Después del procesamiento de la pila, los resultados individuales se combinan en un único resultado general que se proporciona a la aplicación. Para obtener una representación gráfica, consulte Figure 1–2 y Figure 1–3.

    El indicador de control señala el rol que un módulo del PAM tiene en la determinación del acceso al servicio. Los indicadores de control y sus efectos son:

  • Binding: el éxito en el cumplimiento de los requisitos de un módulo binding devuelve inmediatamente un valor de éxito a la aplicación si no se han registrado fallos anteriores. Si se cumplen estas condiciones, no se produce ninguna ejecución adicional de módulos.

    Un fallo provoca el registro de un fallo de required y la continuación del procesamiento de los módulos.

  • Definitive: el éxito en el cumplimiento de los requisitos de un módulo definitive devuelve inmediatamente un valor de éxito a la aplicación si no se han registrado fallos anteriores.

    Si se registró un módulo anterior, ese fallo se devuelve inmediatamente a la aplicación, sin ejecuciones adicionales de módulos. Un fallo provoca la devolución inmediata de error un sin ejecuciones adicionales de módulos.

  • Include: agrega líneas de un archivo de configuración del PAM independiente que se utilizará en este momento en la pila del PAM. Este indicador no controla el comportamiento de éxito o error. Cuando se lee un archivo nuevo, la pila del PAM include aumenta. Cuando finaliza la comprobación de la pila en el nuevo archivo, el valor de la pila include disminuye. Cuando se llega al final de un archivo y la pila del PAM include es 0, finaliza el procesamiento de la pila. El número máximo para la pila del PAM include es 32.

  • Optional: el éxito en el cumplimiento de los requisitos de un módulo optional no es necesario para utilizar el servicio.

    Un fallo provoca el registro de un fallo de optional.

  • Required: el éxito en el cumplimiento de los requisitos de un módulo required es necesario para que la pila sea correcta. El éxito final de la pila se devuelve solamente si ningún módulo binding o required ha informado fallos.

    Un fallo provoca la devolución de un error tras la ejecución de los módulos restantes de este servicio.

  • Requisite: el éxito en el cumplimiento de los requisitos de un módulo requisite es necesario para que la pila sea correcta. Todos los módulos requisite de una pila deben devolver un valor de éxito para que la pila pueda devolver un valor de éxito a la aplicación.

    Un fallo provoca la devolución inmediata de error un sin ejecuciones adicionales de módulos.

  • Sufficient: si no se han registrado fallos anteriores de required, el éxito de un módulo sufficient devuelve un valor de éxito a la aplicación inmediatamente, sin ejecuciones adicionales de módulos.

    Un fallo provoca el registro de un fallo de optional.

    Los dos diagramas conectados siguientes muestran cómo se determina un resultado en el proceso de integración.

  • El primer diagrama muestra cómo se registra el éxito o error para cada tipo de indicador de control. Los resultados se muestran en el segundo diagrama.

  • El segundo diagrama muestra cómo se determina el valor integrado. El fallo opcional y el fallo requerido devuelven error, y el éxito devuelve éxito. La aplicación determina cómo controlar estos códigos de retorno.

Figura 1-2  Apilamiento PAM: efecto de los indicadores de control

image:El diagrama de flujo muestra cómo los indicadores de control afectan el apilamiento PAM.

Figura 1-3  Apilamiento PAM: cómo se determina el valor integrado

image:El diagrama de flujo muestra cómo se determinan los valores integrados en el apilamiento PAM.