Servidor web IIS en Windows 2016 amb ASP.NET

Disposar d’un servidor web IIS, basat en Internet Information Services, per allotjar i donar servei a aplicacions ASP.NET comença a ser molt habitual en els entorns empresarials. De fet, no només un, sinó van proliferant en grup en les nostres xarxes.
Aquests servidors ja són el suport vital de moltes aplicacions. Aplicacions que mitjançant un navegador web i l’adreça del servidor web, l’usuari ja hi pot treballar. De fet, crec que és la tendència natural de les aplicacions, abandonar els clients pesats, més monolítics dels sistemes operatius, per anar a entorns més oberts, universals i accessibles per a qualsevol dispositiu i des de qualsevol lloc. Avui dia, no tot és transformable directament al format web, les aplicacions més pesades o tasques concretes continuen utilitzant els clients pesats, però els nous projectes haurien d’abordar-se, en el possible, amb aquesta infraestructura.
Perquè la web funcioni, com he esmentat, es requereix d’un servei que la mantingui i gestioni. No n’hi ha prou en tenir els fitxers web, s’han de servir d’alguna forma i, en aquest cas, us explicaré com muntar el servidor web IIS, basat en Internet Information Services (IIS) sobre Microsoft Windows 2016 Server, que interpreti les aplicacions escrites amb ASP.NET.
Internet Information Services és el servidor web de Microsoft disponible des de la versió Windows NT 3.51, d’això fa molt de temps i ha plogut molt al respecte. No m’ho recordeu, que ens fem grans. És un entorn que, segurament pel temps que fa que hi treballo, sempre m’hi he trobat còmode. Tot és qüestió d’acostumar-se, tenir una necessitat i saber tocar l’entramat que hi pugui haver per a sota. És cert que el meu llenguatge de programació és el .NET i segurament d’aquí que m’hi trobi més còmode, però no per això s’ha de deixar de banda altres servidors web com poden ser Apache o Nginx.
Per on comencem? Per disposar d’un servidor amb Windows Server, 2016 amb entorn gràfic per comprendre millor el què estem fent. En sistemes productius us recomano utilitzar l’entorn core per aquest tipus de servei!
Instal·lar el servei de Internet Information Server
Per disposar del nostre servidor web IIS comencem instal·lant el servei. Des de l’Administrador del servidor, en el menú de la part superior dreta, clicar a Administrar > Afegir rols i característiques.
Seleccionar la instal·lació basada en un rol o característica i clicar el botó Següent.
Seleccionar el servidor on instal·lar el rol o característica i clicar el botó Següent.
Del llistat de rols, marcar el piscu de servidor web (IIS). Se’ns demana, en una finestra a banda, afegir les eines d’administració, clicar el botó Afegir característica. Clicar el botó Següent per continuar.
Del llistat de característiques, depèn la plataforma .NET que es necessiti per a executar l’aplicació Web. En el cas de les aplicacions heretades de ASP.NET 2.0 i 3 és necessari habilitar el .NET Framework 3.5 per suportar-les. Per assegurar el funcionament complet del servidor, marcar el piscu de la característica .NET Framework 3.5. I per les aplicacions amb la versió 4, desplegar el .NET Framework 4.6 i marcar el piscu ASP.NET 4.6. Clicar el botó Següent.
S’inicia l’assistent de configuració del rol de servidor web IIS, clicar el botó Següent.
Seleccionar les característiques que ha d’oferir el servidor web IIS. Com no, les justes i necessàries.
Com més característiques habilitem més exposem el servei. Per tant, si una cosa no es necessita no s’habilita!
La configuració que se’ns proposa ja serveix, fent alguna petita modificació:
Web Server Common HTTP features Default Document - OK Directory browsing - Millor no desplegar-la. HTTP Errors - OK Static Content - OK HTTP Redirection WebDAV Diagnostics Health and Diagnostics HTTP Logging - OK Custom Logging Logging Tools ODBC Logging Request Monitor Tracing Performance Static Content Compression - OK Dynamic Content Compression Security Request Filtering - OK Basic Authentication Centralized SSL Certificate Support Client Certificate Mapping Authentication Digest Authentication IIS Client Certificate Mapping Authentication IP and Domain Restrictions - OK URL Authorization Windows Authentication – OK per aplicacions d’Intranet Application Development .NET Extensibility 3.5 - OK .NET Extensibility 4.6 - OK Application Initialization ASP – Per aplicacions heretades de la versió 2.0 de .NET ASP.NET 3.5 - OK ASP.NET 4.6 - OK CGI ISAPI Extensions - OK ISAPI Filters - OK Server Side Includes WebSocket Protocol Management Tools IIS Management Console - OK
Clicar el botó Següent per continuar.
Marcar el piscu de reiniciar el servidor, si és necessari, automàticament durant la instal·lació. Com que en aquest cas s’ha especificat la instal·lació del .NET Framework 3.5 és probable que es vulgui indicar la ruta de la ISO de instal·lació, sinó s’utilitzarà Internet per descarregar el paquet.
Clicar el botó Instal·lar per procedir a habilitar el servidor web IIS.
Acabada la instal·lació dels components necessaris, es reinicia l’equip i es torna a l’administrador del servidor, per acabar d’afegir les característiques necessàries fins que s’indica que la instal·lació s’ha completat. Clicar el botó Tancar.
Ja es disposa d’un servidor web IIS operatiu. Des del servidor, amb un navegador web, es fa la crida a l’adreça http://localhost. El servidor web IIS ens dóna la benvinguda.
Accedir a la consola del servidor web IIS
Des de l’administrador del servidor, al menú de la part superior dreta, clicar a Eines > Administrador de Internet Information Server (IIS).
S’inicia la consola d’administració. A la part esquerra, trobem el servidor web IIS amb el grup d’aplicacions (ja veurem perquè serveixen) i els llocs web. A la dreta, les diferents opcions segons on ens trobem de la part esquerra: servidor, grups d’aplicacions, llocs web, etc…
El lloc web que es crea per defecte s’ubica a la ruta: c:\Inetpub\wwwroot. Diguem que no és massa aconsellable deixar un lloc en producció en aquesta ruta. El normal és disposar d’un altre disc dur on allotjar el/s diferent/s lloc/s web i alerta amb els permisos que s’hi assignen, ja què d’ells pot dependre la seguretat del lloc web.
Crear un lloc web en un servidor IIS
Amb l’Explorador de Windows crear una nova carpeta a l’arrel de l’altre disc dur, per exemple, principal i dues més (app1 i app2) per aplicacions. Botó dret a l’espai en blanc de l’arrel del disc dur, clicar a Nova i Carpeta. Per tenir les coses endreçades, dins es pot crear una carpeta per cada lloc web.
Important els permisos que es concedeixen a aquesta carpeta, ja què té relació amb la seguretat de la web!
Comprovar els permisos de la carpeta arrel, botó dret damunt de Web Sites i clicar a Propietats.
Clicar a la pestanya Seguretat.
Es poden visualitzar els permisos per defecte del volum on s’ha creat la carpeta, anem a modificar-los una mica per allotjar una aplicació corporativa.
La idea és que l’arrel del lloc web sigui accessible per a tothom, sense necessitat de validar-se. El lloc web contindrà dues aplicacions (app1 i app2) en la què serà necessari la validació com usuari de Windows, amb pertinença a un grup de seguretat diferent per a cada aplicació.
Clicar el botó Avançades per canviar aquests permisos.
Desactivar l’herència de permisos en aquesta carpeta. Clicar el botó Desactivar l’herència.
Se’ns demana per convertir els permisos heretats en explícits o començar de nou. Per facilitar les coses, seleccionar Convertir els permisos heretats en explícits.
Eliminar el grup d’usuaris del domini, seleccionar el grup i clicar el botó Eliminar.
Afegir els usuaris identificats com accés anònim (usuari i grup) al servidor. Clicar el botó Afegir.
Seleccionar l’objecte principal, millor cercar-lo amb el cercador clicant el botó Avançat i el botó Buscar ara. Localitzar el grup IIS_IUSRS i clicar el botó OK, a les dues finestres, per afegir-lo com a objecte principal.
Deixar els permisos amb només LECTURA i EXECUCIÓ, LLISTAR CONTINGUT i LECTURA. Clicar el botó OK per continuar.
Repetir el procés per l’objecte IUSR, corresponent a l’identificador de l’usuari anònim de Internet Information Server.
Acceptar les modificacions de permisos de la carpeta clicant el botó OK a les dues finestres que queden obertes.
Comprovar els permisos de les carpetes de dins Web Sites. Han d’haver heretat les modificacions fetes a la carpeta principal. Botó dret damunt el nom de la carpeta, clicar Propietats. Pestanya Seguretat i ha d’aparèixer el grup IIS_IUSR i l’usuari IUSR, sense el grup de Usuaris del domini.
Crear un fitxer de defecte per lloc web: default.htm, amb un contingut simple, per exemple:
<html> <head> <title>Welcome to IIS</title> </head> <body> <H1>Servidor Web Internet Information Server - IntraNET</H1> <H2><a href="/app1/">App1</a></H2> <H2><a href="/app2/">App2</a></H2> </body> </html>
Tornar a la consola d’administració del servidor web IIS per crear el nou lloc web amb les dues aplicacions. Botó dret damunt el lloc existent per deixar-ho tot net i clicar a l’acció Esborrar, del plafó d’accions de la banda dreta, per eliminar-lo.
Confirmar l’eliminació del lloc web. Tranquils, clicar el botó Si!
Botó dret damunt la carpeta Llocs i seleccionar Afegir un lloc web.
Indicar els paràmetres corresponents:
- Nom del lloc, per exemple, Intranet.
- Grup d’aplicacions. El sistema automàticament crea un nou grup d’aplicacions amb el nom del nou lloc web, deixem que el creï ja què és una bona pràctica aïllar l’execució d’aplicacions en grups així, si una aplicació es queda penjada, reiniciant el seu grup n’hi ha prou, sense posar en perill tot el servei.
- Ruta física on allotjar el nou web. Indicar la ruta que correspongui. Seguint l’exemple pel nou lloc web (la unitat que correspongui \Web Sites\principal).
- Protocol: http o https (aquest últim requereix del certificat corresponent).
- Adreça IP: Si contesta per totes les adreces IP del servidor o només per una en concret.
- Port: El port per on oferirà el servei. Recordar que el de defecte en entorn web és el TCP 80.
- Nom de l’amfitrió. Si el servidor ha d’allotjar més un lloc web independent de l’altre, és necessari especificar l’adreça FQDN de cada lloc web per obrir el que correspongui. Si es deixa en blanc i els altres amb un nom especificat, sempre que es demana una adreça que no correspon als altres obrirà aquest.
- Iniciar el lloc web immediatament després de crear-lo. Es pot marcar per posar en funcionament ja.
Clicar el botó OK quan tot sigui correcte.
S’ha creat el nou lloc web!
Comprovar que el sistema arrencarà la pàgina correcta? Clicar damunt el nou lloc web i a la banda dreta a la icona Document per defecte.
Per seguretat, eliminar tots els fitxers que no corresponguin. En el cas de l’exemple, tots menys Default.htm. Seleccionar i al plafó d’accions de la banda dreta, clicar a Eliminar.
Comprovar que el nou lloc web funciona. Amb el navegador accedir a l’adreça web del servidor (http://localhost). Apareix la pàgina que s’ha creat. Si us surt un error de permisos és que alguna cosa us heu deixat! Reviseu que hi tingueu el grup d’usuaris IIS_IUSR i l’usuari IUSR. Naturalment, els accessos a les dues aplicacions encara no funcionaran perquè no les hem creat.
Tornant a la consola d’administració del servidor web IIS, botó dret damunt del lloc Web que s’acaba de crear i seleccionar Afegir aplicació.
Indicar:
- Àlies de l’aplicació, com ha de ser cridada.
- Grup d’aplicacions. Per defecte agafarà l’herència del lloc principal. Si us convé se’n pot crear un de nou, ara o més endavant, segons el rendiment i problemes que pugui donar l’aplicació.
- Ruta física on s’allotja l’aplicació. Seguint l’exemple, és la carpeta App1 que s’ha creat.
- Precarregar l’aplicació. En aplicacions pesades pot ser convenient per una millor resposta de la web de cara a l’usuari final.
Clicar el botó OK quan tot sigui correcte.
Seleccionar l’aplicació nova que s’acaba de crear. A la banda dreta, clicar a Document per defecte per canviar-lo a default.aspx.
Clicar el botó Afegir per afegir el nom default.aspx. Seleccionar el nom Default.htm i clicar el botó Eliminar.
Repetir el procés per App2.
Per fer la prova de concepte, copiar el fitxer Default.htm de la carpeta arrel, modificar-lo lleugerament per indicar si es troba en una aplicació o en l’altra:
<html> <head> <title>Welcome to APP1</title> </head> <body> <H1>Servidor Web Internet Information Server - APP1</h1> </body> </html>
I intentem accedir al lloc de l’aplicació, segurament ens trobarem amb una pàgina en blanc.
El motiu? Que el servidor està buscant el fitxer .aspx en comptes de .htm. Tingueu-ho present! Canviar els noms dels fitxers per default.aspx, els dos llocs s’han de visualitzar correctament.
Però aquesta no era pas la intenció, sinó que han de validar usuaris de Windows. Com? Traient de les propietats de seguretat de la carpeta l’usuari IUSR (recordo que correspon a l’anònim de Internet Information Server). Botó dret damunt de la carpeta que conté l’aplicació, clicar a Propietats. Clicar a la pestanya Seguretat. Clicar al botó Editar. Afegir el grup amb permisos per aquesta aplicació (en el meu cas APP1) i eliminar l’usuari anònim (IUSR) de Internet Information Server, seleccionant-lo i clicar el botó eliminar. Clicar OK a les finestres obertes per aplicar els canvis.
Tornar a l’administrador de Internet Information Server. A la banda esquerra, seleccionar l’aplicació. De la banda dreta, clicar a la icona de Autenticació.
Se’ns mostra els mètodes d’autenticació que permet el servidor. Els que s’han habilitat al donar d’alta el rol, sempre es poden modificar afegint-ne de més o eliminant els que ja no s’utilitzen. Ara ens hem de quedar amb l’autenticació anònima, que no demanarà nom d’usuari i és la que hi ha activada; i la de Windows que és la què volem activar. Si s’ha de demanar qualsevol tipus d’autenticació, sempre, s’ha de deshabilitar l’anònima perquè es faci aquesta validació.
Botó dret damunt d’autenticació anònima i clicar a Desactivar per forçar que es demani un mètode d’autenticació per part del Internet Information Server.
Seleccionar autenticació de Windows, botó dret i clicar a Activar. Comprovar ara és l’únic mètode acceptat.
Si s’accedeix a l’aplicació web mitjançant un navegador de web des del propi servidor, o d’un equip del domini, aparentment no passa res, però per sota, el sistema està validant l’usuari que té la sessió iniciada de Windows a l’aplicació, és el què es coneix com el single sign-on.
Per comprovar-ho, en el fitxer default.aspx que hi ha al directori de l’aplicació, afegir una línia perquè ens ensenyi el nom d’usuari logat:
<H2>Logon: <%Response.Write(HttpContext.Current.User.Identity.Name.Tostring())%> </H2>
Si accedim de nou a la pàgina web se’ns mostra l’usuari amb el qual s’ha fet l’autenticació de la sessió HTTP i per tant es pot establir un nivell de permisos. Des del servidor, estant logats com administrador i com que aquest té permisos d’accés al directori mostra la pàgina correctament.
En cas de fer-ho des d’un equip extern al del servidor Web o del domini (si s’utilitzen permisos de domini), a l’accedir a la web se’ns demana les credencials. Introduir les correctes per a l’aplicació.
El sistema ens identifica correctament amb les credencials que s’acaben de proporcionar. Si l’usuari que té iniciada la sessió coincideix amb els permisos a l’aplicació no es demana cap credencial.
Si s’està en un equip fora del domini, si s’intenta accedir a l’altra aplicació amb el primer usuari (usrapp1), que no hi té permís, al estar fora del domini, torna a demanar unes credencials vàlides. Si estigués al domini simplement no em deixaria entrar perquè està passant contínuament les credencials de l’usuari que ha iniciat sessió, sense poder-lo canviar.
Canviant d’usuari permet accedir a l’altre aplicació, ensenyant el nom d’usuari correcte.
A partir d’aquí ja depèn de la necessitat de cada aplicació. Diguem que hem posat els fonaments per construir qualsevol cosa a sobre.
T’ha agradat l’article? El pots compartir a les xarxes socials. També pots deixar la teva opinió, comentari o suggeriment. Gràcies!
Similar Posts by The Author:
- Microsoft SQL Server con SMB3
- Microsoft SQL Server amb SMB3
- Containers en Linux
- Containers amb Linux
- Migrar el servidor de archivos a Windows Server 2019
- Migrar el servidor de fitxers a Windows Server 2019
- Puerta enlace a Azure en el Windows Admin Center
- Porta enllaç a Azure en el Windows Admin Center
- Hola mundo! WordPress 5 y Gutenberg
- Hola món! WordPress 5 i Gutenberg
confos pel significat DOMINI.
es una xarxa local amb OS server? o voleu dir ? .net o .cat
si son diferents , com passar el meu site web local a un domini internet . es posible? i com
Merci, soc un DUMMY.
En aquest cas es tracta del domini de seguretat al estar en un context de validació d’usuari en les aplicacions Web. La resposta correcte és xarxa local amb OS server.
Els dominis .net o .cat, són dominis de resolució de noms DNS, és per trobar el servidor a la xarxa, no per autenticar usuaris.
No entenc massa la últim pregunta. Si disposo d’un servidor intern, en una xarxa local, naturalment, no es resoldrà des dels equips que hi ha a Internet, perquè l’àmbit de resolució de noms només es produeix dins la xarxa local. En cas de voler fer accessible el servidor web és necessari publicar el/s port/s, en aquest cas el TCP 80, en l’encaminador (o millor el tallafocs) de la xarxa. Un cop fet això, cal donar d’alta el registre de host o CNAME en el DNS públic del domini d’Internet (per exemple http://www.prova.com apuntant a la IP pública de la connexió). Pots revisar les entrades referents a configuració de tallafocs: https://www.jmsolanes.net/tallafocs/ i https://www.jmsolanes.net/petit-tallafocs-amb-linux/ .
Salut,