Elemento <identity>
Controla la identidad de aplicación de la aplicación Web. Este elemento puede declararse en cualquier nivel (equipo, sitio, aplicación, subdirectorio o página).
<configuration>
<system.web>
<identity>
<identityimpersonate="true|false" userName="domain\username" password="password"/>
Atributos requeridos
Atributo | Opción | Descripción |
---|---|---|
impersonate | Especifica si se utiliza la suplantación del cliente en cada solicitud. | |
true | Especifica que se utiliza la suplantación del cliente. | |
false | Especifica que no se utiliza la suplantación del cliente. |
Atributos opcionales
Atributo | Descripción |
---|---|
userName | Especifica el nombre de usuario cuando impersonate tiene el valor true.
userName y password se almacenan en texto no cifrado en el archivo de configuración. Aunque IIS no transmitirá archivos .config en respuesta a la solicitud de un agente de usuario, los archivos de configuración se pueden leer de otros modos, por ejemplo, por un usuario autenticado con credenciales apropiadas en el dominio que contiene el servidor. Para aumentar la seguridad, la sección de identidad admite el almacenamiento de atributos userName y password codificados en el registro. Las credenciales deben estar en el formato REG_BINARY cifradas mediante las funciones de codificación de la API de protección de datos (DPAPI, Data Protection API) de Windows 2000 y Windows XP. Para obtener más información, vea las secciones Comentarios y Ejemplo siguientes. |
password | Especifica la contraseña cuando impersonate tiene el valor true. Para obtener información sobre cómo almacenar credenciales de procesos de trabajo codificadas en el registro, vea userName. |
Comentarios
Almacenar un nombre de usuario y una contraseña en el registro
Para codificar el nombre de usuario y la contraseña, y almacenarlos en el registro, establezca userName y password del modo siguiente.
userName="registry:HKLM\Software\AspNetProcess,Name"
password="registry:HKLM\Software\AspNetProcess,Pwd"
La parte de la cadena situada entre la palabra clave registry y la coma indica el nombre de la clave del registro que abre ASP.NET. La parte situada tras la coma contiene un nombre de valor de cadena único del que ASP.NET leerá las credenciales. La coma es imprescindible, y las credenciales deben estar almacenadas en el subárbol HKLM. Si el formato de configuración no es correcto, ASP.NET no iniciará el proceso de trabajo y se seguirá la ruta de acceso al código de error de creación de cuenta.
Las credenciales deben estar en formato REG_BINARY e incluir el resultado de una llamada a la función de la API de Windows CryptProtectData. Para crear las credenciales codificadas y almacenarlas en el registro se puede utilizar la aplicación de consola Establecer registro de ASP.NET (Aspnet_setreg.exe), que usa CryptProtectData para realizar el cifrado. Para descargar Aspnet_setreg.exe, junto con el código fuente y la documentación de Visual C++, visite el sitio Web www.asp.net y busque "aspnet_setreg". Para configurar el acceso a la clave, almacene las credenciales cifradas de modo que se conceda acceso únicamente a los administradores (Administrators) y al SISTEMA (SYSTEM).
Dado que la clave la leerá el proceso de ASP.NET que se ejecuta como SISTEMA (SYSTEM), establezca los siguientes permisos:
Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount:R
Esto proporciona dos líneas de defensa para proteger los datos:
- Los permisos ACL requieren que la identidad que tiene acceso a los datos sea un administrador.
- Un atacante deberá ejecutar código en el servidor (CryptUnprotectData) para recuperar las credenciales de la cuenta.
Ejemplo
En el ejemplo siguiente se especifica la representación de la identidad del cliente.
<configuration>
<system.web>
<identity impersonate="true"/>
</system.web>
</configuration>
El ejemplo siguiente especifica que el nombre de usuario y la contraseña codificados se almacenan en el registro, en la clave definida por el usuario AspNetIdentity
.
<configuration>
<system.web>
<identity>
userName="registry:HKLM\Software\AspNetIdentity,Name"
password="registry:HKLM\Software\AspNetIdentity,Pwd"
</identity>
</system.web>
</configuration>
Requisitos
Contenido dentro de: <system.web>
Plataforma Web: IIS 5.0, IIS 5.1, IIS 6.0
Archivo de configuración: Machine.config, Web.config
Controlador de la sección de configuración: System.Web.Configuration.IdentityConfigHandler
Vea también
Configuración de ASP.NET | Esquema de configuración de ASP.NET