Blog >

Autenticación windows contra usuario local en una web desplegada en Azure


Hay veces donde tenemos que desplegar una web de administración de un sistema complejo formado por varios web roles, worker roles, etc.

Estas webs de administración suelen tener poco tráfico, son utilizadas solo por administradores del sistema y suelen estar protegidas con autenticación windows.

Para proteger de forma sencilla una web en Azure con autenticación windows podemos hacer lo siguiente:

1 – Configurar el web role para que pueda ser accedido mediante escritorio remoto. Para ello, hemos de indicar un usuario y contraseña de acceso.

2 – Crear, en el web role, una startup task que habilite las secciones del IIS donde se configura la autenticación.

<Startup>
    <Task commandLine=»startup.cmd» executionContext=»elevated» />
</Startup >

Comandos del fichero startup.cmd:

%windir%/System32/inetsrv/appcmd.exe unlock config /section:system.webServer/security/authentication/anonymousAuthentication
%windir%/System32/inetsrv/appcmd.exe unlock config /section:system.webServer/security/authentication/windowsAuthentication

3 – Añadir, en el fichero web.config de la aplicación web, la sección donde se indica que ha de usarse la autenticación windows.

<system.webServer>
    <security>
        <authentication>
            <anonymousAuthentication enabled=»false»/>
            <windowsAuthentication enabled=»true»/>
        </authentication>
    </security>
</system.webServer>

Con esto ya tendríamos protegido el acceso a la web con autenticación windows. La primera vez que accedamos a la web, el navegador mostrará la caja para introducir el usuario y contraseña. En esta caja, indicaremos el usuario y contraseña configurados para el escritorio remoto.

En el caso que necesitásemos utilizar autenticación básica habría que modificar los comandos del fichero startup.cmd de la siguiente forma:

ServerManagerCmd.exe -install web-basic-auth
%windir%/System32/inetsrv/appcmd.exe unlock config /section:system.webServer/security/authentication/anonymousAuthentication
%windir%/System32/inetsrv/appcmd.exe unlock config /section:system.webServer/security/authentication/basicAuthentication

y el web.config:

<system.webServer>
    <security>
        <authentication>
            <anonymousAuthentication enabled=»false»/>
            <basicAuthentication enabled=»true»/>
        </authentication>
    </security>
</system.webServer>

El primer comando habilita la autenticación básica en el IIS. Notar que con la autenticación básica las credenciales se envían en texto plano y es recomendable configurar el web role para que utilice HTTPS.

Esta forma de proteger el acceso a una aplicación web solo está recomenda en escenarios de administración como los indicados. Para utilizar autenticación windows en cualquier otro escenario, debemos utilizar WIF y ADFS 2.0.

Suscríbete a nuestra newsletter para enterarte de las novedades más Geek

Newsletter Banner
RGPD

Contenido Relacionado