Está en la página 1de 17

Crear aplicaciones

ASP.NET seguras
Autenticacin, autorizacin y
comunicacin segura
Captulo 7 - Seguridad de
nternet
J.D. Meier, Alex Mackman, Michael Dunner y Srinath Vasireddy
Microsoft Corporation
Octubre de !!
Consulte la "#$ina de entrada como punto de partida y para obtener una descripci%n
completa del documento Crear aplicaciones ASP.NET seguras.
Resumen
&ste cap'tulo describe c%mo prote$er los escenarios m#s comunes de las
aplicaciones de (nternet. "resenta las caracter'sticas de cada escenario y describe
los pasos necesarios para establecer la se$uridad de los mismos. )ambi*n se
incluyen secciones de an#lisis con el fin de proporcionar m#s informaci%n.
Contenido
De AS".+&) a S,- Ser.er
De AS".+&) a Ser.icios &mpresariales remotos a S,- Ser.er
/esumen
-as aplicaciones de (nternet cuentan con un p0blico muy extenso, ofrecen una $ran
.ariedad de usos posibles y exi$en una serie de re1uisitos de se$uridad. "ueden
presentare en forma de aplicaciones de portal 1ue no re1uieren autenticaci%n de
usuario o aplicaciones 2eb 1ue ofrecen contenido para usuarios re$istrados o
aplicaciones de comercio electr%nico a $ran escala 1ue exi$en autenticaci%n
completa, autori3aci%n y .alidaci%n de tar4etas de cr*dito e incluso una comunicaci%n
se$ura de la informaci%n importante tanto a tra.*s de redes p0blicas como internas.
-os desarrolladores de aplicaciones de (nternet se hallan ante el reto de $aranti3ar
1ue sus aplicaciones utilicen los mecanismos de defensa adecuados y ten$an un
dise5o con capacidad de ampliaci%n, de ele.ado rendimiento y se$uro. 6stos son
al$unos de los retos mencionados7
Seleccionar un almac*n de credenciales de usuario adecuado como, por
e4emplo, una base de datos personali3ada o un ser.icio de directorio Acti.e
Directory8.
Conse$uir 1ue la aplicaci%n funcione a tra.*s de los ser.idores de se$uridad.
9 )ransferir las credenciales de se$uridad a tra.*s de los distintos ni.eles de la
aplicaci%n.
9 -le.ar a cabo la autori3aci%n.
9 :aranti3ar la inte$ridad y pri.acidad de los datos conforme se distribuyen a
tra.*s de redes p0blicas e internas.
9 :aranti3ar la se$uridad del estado de la aplicaci%n con una base de datos.
9 Ase$urar la inte$ridad de los datos de la aplicaci%n.
9 (mplementar una soluci%n 1ue pueda escalarse para admitir un mayor n0mero
de usuarios.

&n este cap'tulo se describen los dos escenarios m#s comunes de las aplicaciones
de (nternet, y 1ue tambi*n se utili3an para ilustrar las t*cnicas recomendadas de
autenticaci%n, autori3aci%n y comunicaci%n se$ura7
9 De AS".+&) a S,- Ser.er
9 De AS".+&) a Ser.icios &mpresariales remotos a S,- Ser.er

De ASP.NET a SQL Server
&n este escenario con dos ni.eles f'sicos, los usuarios re$istrados inician una sesi%n
de forma se$ura en la aplicaci%n basada en 2eb a tra.*s del explorador 2eb. -a
aplicaci%n 2eb basada en AS".+&) establece conexiones se$uras con una base de
datos de Microsoft8 S,- Ser.er; a fin de administrar b#sicamente las tareas de
recuperaci%n de datos. <n e4emplo de estos escenarios son las aplicaciones de
portal, 1ue ofrecen contenidos de noticias a los suscriptores re$istrados. -a
ilustraci%n =.> es un claro e4emplo.
!nsert "gure# C$%7 & nternet & ASPNET to S'( Ser)er.gi*+
(lustraci%n =.>
Escenario de Internet de una aplicacin Web basada en ASP.NET con conexin a
SQL Server
Caractersticas
&ste escenario tiene las si$uientes caracter'sticas7
9 -os usuarios cuentan con distintos tipos de exploradores.
9 -os usuarios an%nimos pueden explorar las p#$inas no restrin$idas de la
aplicaci%n.
9 -os usuarios deben re$istrarse o iniciar una sesi%n ?a tra.*s de un formulario
@)M-A para .er las p#$inas restrin$idas.
9 -as credenciales de usuario se .alidan con una base de datos de S,- Ser.er.
9 )oda la informaci%n suministrada por el usuario ?como las credencialesA 1ue se
utili3a en las consultas a la base de datos se .alida a fin de reducir la amena3a
de ata1ues de inyecci%n S,-.
9 -a aplicaci%n 2eb cliente se ubica en una red perimetral ?tambi*n conocida
como DMB, 3ona desmilitari3ada, y subred apantalladaA, con ser.idores de
se$uridad 1ue la separan de (nternet y la red empresarial interna ?y la base de
datos de S,- Ser.erA.
9 -a aplicaci%n re1uiere una se$uridad extrema, altos ni.eles de escalabilidad y
un proceso de auditor'a exhausti.o.
9 -a base de datos conf'a en la aplicaci%n para lle.ar a cabo correctamente la
autenticaci%n de los usuarios ?es decir, la aplicaci%n efect0a llamadas a la
base de datos en nombre de los usuariosA.
9 -a aplicaci%n 2eb se conecta a la base de datos mediante la cuenta de
proceso AS" .+&).
9 Se utili3a una 0nica funci%n de base de datos definida por el usuario en S,-
Ser.er para la autori3aci%n de la base de datos.

Proteger el escenario
&n este escenario, la aplicaci%n 2eb presenta una p#$ina de inicio de sesi%n para
aceptar las credenciales. -os usuarios 1ue obten$an la .alidaci%n tendr#n permiso
para continuarC el resto .er# como se les denie$a el acceso. -a base de datos lle.a a
cabo la autenticaci%n mediante la identidad de proceso predeterminada de AS"
.+&), una cuenta con pri.ile$ios m'nimos ?es decir, la base de datos conf'a en la
aplicaci%n AS" .+&)A.
)abla =.>7 Resumen de seguridad
Cate$or'a Detalles
Autenticaci%n ((S se confi$ura para permitir el acceso an%nimoC
la aplicaci%n 2eb de AS" .+&) autentica los
usuarios a tra.*s de la autenticaci%n mediante
Dormularios para obtener las credenciales. -a
.alidaci%n se efect0a con una base de datos de
S,- Ser.er.
-as contrase5as de los usuarios no se almacenan
en la base de datos. &n cambio, s' se almacenan
los al$oritmos hash de las contrase5as con los
.alores salt. &l .alor salt reduce la amena3a
asociada a los ata1ues de diccionario.
-a autenticaci%n de 2indoEs8 se emplea para
establecer la conexi%n con la base de datos 1ue
utili3a la cuenta con pri.ile$ios m'nimos para
e4ecutar la aplicaci%n 2eb de AS".+&).
Autori3aci%n -a cuenta de proceso AS".+&) recibe
autori3aci%n para obtener acceso a los recursos
de sistema del ser.idor 2eb. -os recursos est#n
prote$idos mediante listas AC- de 2indoEs.
-a autori3aci%n para el acceso a la base de datos
se efect0a mediante la identidad de aplicaci%n de
AS" .+&).
Comunicaci%n se$ura "rote4a el en.'o de datos importantes de los
usuarios a la aplicaci%n 2eb mediante SS-.
"rote4a el en.'o de datos importantes del ser.idor
2eb al ser.idor de bases de datos mediante
("Sec.
El resultado
-a ilustraci%n =. muestra la confi$uraci%n de se$uridad recomendada para este
escenario.
!nsert "gure# C$%7 - nternet & ASP.NET to S'( Ser)er ,Solution-.gi*+
(lustraci%n =.
Confuracin de seuridad reco!endada para el escenario de Internet de
ASP.NET a SQL Server
Pasos para configurar la seguridad
Antes de empe3ar, debe consultar la forma de7
9 Crear cuentas de AS".+&) personali3adas ?consulte FC%mo crear una cuenta
personali3ada para e4ecutar AS".+&)F en la secci%n /eferencia de esta $u'aA
9 Crear una cuenta de base de datos con pri.ile$ios m'nimos ?consulte el
cap'tulo >, FSe$uridad del acceso a datosFA
9 Confi$urar SS- en un ser.idor 2eb ?consulte FC%mo confi$urar SS- en un
ser.idor 2ebF en la secci%n de referencia de este manualA
9 Confi$urar ("Sec ?consulte FC%mo utili3ar ("Sec para proporcionar
comunicaciones se$uras entre dos ser.idoresF en la secci%n /eferencia de
esta $u'aA

Configurar el servidor e!
Confi$urar ((S
"aso M#s informaci%n
@abilitar el acceso an%nimo
para el directorio ra'3 .irtual
de la aplicaci%n 2eb
"ara traba4ar con la confi$uraci%n de autenticaci%n de ((S,
utilice el complemento MMC de ((S. @a$a clic con el bot%n
secundario del mouse ?rat%nA en el directorio .irtual de la
aplicaci%n y, a continuaci%n, ha$a clic en Propiedades.
@a$a clic en la ficha Seguridad de directorios y despu*s
ha$a clic en Editar en el $rupo Control de autenticaci"n
# acceso an"nimo.

Confi$urar AS".+&)
"aso M#s informaci%n
/establecer la contrase5a
de la cuenta AS"+&) ?1ue
se utili3a para e4ecutar
AS".+&)A a una
contrase5a se$ura
conocida
&sto le permite crear una cuenta local duplicada ?con el
mismo nombre de usuario y la misma contrase5aA en el
ser.idor de bases de datos. &sto es necesario para
permitir a la cuenta AS"+&) responder a desaf'os de
autenticaci%n de red del ser.idor de base de datos cuando
se conecte mediante autenticaci%n de 2indoEs.
<na alternati.a es utili3ar una cuenta de dominio con
pri.ile$ios m'nimos ?si se permite la autenticaci%n de
2indoEs a tra.*s del ser.idor de se$uridadA.
"ara obtener m#s informaci%n, consulte F(dentidad del
proceso de AS".+&)F en el cap'tulo G, FSe$uridad de
AS".+&)F.
&dite el archi.o Machine.confi$, 1ue se encuentra en
HEindirHIMicrosoft.+&)IDrameEorkI.>.!.J=!KICO+D(:
&stable3ca los atributos del nombre de usuario y la
contrase5a de la cuenta personali3ada en el elemento
Lprocess$odelM.
Valor predeterminado
<!-- userName="machine" password="AutoGenerate"
-->
Se con.ierte en
<!-- userName="machine"
password="YourStrongPassword" -->
Confi$urar la aplicaci%n
2eb AS".+&) para utili3ar
la autenticaci%n mediante
Dormularios ?con SS-A
Modifi1ue el archi.o 2eb.confi$ de la ra'3 del directorio
.irtual de la aplicaci%n.
&stable3ca el elemento Laut%enticationM en7
<authentication mode="Forms" >
<forms name="MyAppFormsAuth"
loginUrl="login.aspx"
protection="All"
timeout="20"
path="/" >
</forms>
</authentication>
Si desea obtener m#s informaci%n acerca de la
autenticaci%n mediante Dormularios con bases de datos
de S,- Ser.er, consulte FC%mo utili3ar la autenticaci%n
mediante Dormularios con S,- Ser.er !!!F en la
secci%n de referencia de este manual.

Configurar SQL Server
"aso M#s informaci%n
Crear una cuenta de
2indoEs en el e1uipo de
S,- Ser.er 1ue coincida
con la cuenta de proceso
AS".+&)
&l nombre de usuario y la contrase5a deben coincidir con
la cuenta personali3ada de la aplicaci%n AS".+&) o bien
debe tratarse de una cuenta AS"+&) si toda.'a se utili3a
la cuenta predeterminada.
Confi$urar S,- Ser.er
para la autenticaci%n de
2indoEs
Crear un inicio de sesi%n
de S,- Ser.er para la
cuenta personali3ada de la
aplicaci%n AS".+&)
&sto concede acceso al ser.idor S,- Ser.er.
Crear un nue.o usuario de
la base de datos y asi$nar
el nombre de inicio de
sesi%n al usuario de la
base de datos
"ermite obtener acceso a la base de datos especificada.
Crear una nue.a funci%n de
base de datos definida por
el usuario en la base de
datos y colocar el usuario
de la base de datos en esa
funci%n
&stablecer permisos de
base de datos para la
funci%n de base de datos
&ste paso concede permisos m'nimos.
Si desea obtener m#s informaci%n, consulte el cap'tulo >,
FSe$uridad del acceso a datos.F

Configurar la seguridad de las comunicaciones
"aso M#s informaci%n
Confi$urar el sitio 2eb para
SS-
Consulte FC%mo confi$urar SS- en un ser.idor 2ebF en la
secci%n de referencia de este manual.
Confi$urar ("Sec entre el
ser.idor de aplicaciones y
el ser.idor de bases de
datos
Consulte FC%mo utili3ar ("Sec para proporcionar
comunicaciones se$uras entre dos ser.idoresF en la
secci%n /eferencia de esta $u'a.
An&lisis
9 -a autenticaci%n mediante Dormularios resulta id%nea en este escenario
puesto 1ue los usuarios no disponen de cuentas de 2indoEs. -a p#$ina de
inicio de sesi%n por formularios se utili3a para obtener las credenciales de
usuario. -a .alidaci%n de dichas credenciales debe reali3arse mediante el
c%di$o de la aplicaci%n. "uede utili3arse cual1uier tipo de datos almacenado.
-a soluci%n m#s habitual son las bases de datos de S,- Ser.er, a pesar de
1ue Acti.e Directory tambi*n puede utili3arse como almac*n de credenciales.
9 -a autenticaci%n mediante Dormularios exi$e prote$er las credenciales de
inicio de sesi%n iniciales mediante SS-. )ambi*n es necesario prote$er el .ale
de la autenticaci%n mediante Dormularios ?1ue se transmite como si se tratara
de una cookie en las solicitudes 2eb posteriores del cliente autenticadoA.
"odr'a utili3arse SS- para todas las p#$inas a fin de prote$er el .ale, o bien
cifrar el .ale de la autenticaci%n mediante Dormularios mediante la
confi$uraci%n del atributo protection del elemento LformsM ?establecerlo en
All o Encr#ptA y el empleo del m*todo Encr#pt de la clase
'ormsAut%entication para cifrar el .ale.
&l atributo protection()All) especifica 1ue cuando la aplicaci%n llama a
'ormsAut%entication.Encr#pt, el .ale debe .alidarse ?debe comprobarse la
inte$ridadA y cifrarse. Debe llamar a este m*todo cuando cree el .ale de
autenticaci%n ?normalmente, en el controlador de e.entos del bot%n (nicio de
sesi%n de la aplicaci%nA.
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
"ara obtener m#s informaci%n sobre la autenticaci%n mediante Dormularios y
el cifrado del .ale, consulte el cap'tulo G, FSe$uridad de AS".+&)F.
9 AS".+&) se e4ecuta como la cuenta AS"+&) local con pri.ile$ios m'nimos, de
modo 1ue se reducen las probabilidades de da5os ocasionados por una
posible exposici%n.
9 -a autori3aci%n de direcciones </- en el ser.idor 2eb permite 1ue los
usuarios no autenticados puedan explorar p#$inas 2eb no restrin$idas
adem#s de exi$ir la autenticaci%n para las p#$inas restrin$idas.
9 Dado 1ue no est# habilitada la suplantaci%n, cual1uier acceso a recursos
locales o remotos 1ue efect0e la aplicaci%n basada en 2eb se lle.a a cabo
mediante el contexto de se$uridad de la cuenta AS"+&). -as listas AC- de
2indoEs de los recursos se$uros deber'an confi$urarse como corresponda.
9 -as credenciales de usuario se .alidan con relaci%n a una base de datos de
S,- Ser.er personali3ada. -as contrase5as hash ?con .alor saltA se
almacenan en la base de datos. Si desea obtener m#s informaci%n, consulte
FAutenticar usuarios en una base de datosF en el cap'tulo >, FSe$uridad de
acceso a datos.F
9 &l uso de la autenticaci%n de 2indoEs en S,- Ser.er e.ita tener 1ue
almacenar las credenciales en archi.os del ser.idor 2eb, adem#s de
transferirlas por la red.
9 Si su aplicaci%n utili3a la autenticaci%n de S,-, es preciso 1ue almacene de
forma se$ura la cadena de conexi%n con la base de datos por1ue contiene los
nombres de usuario y las contrase5as. Valore la posibilidad de utili3ar D"A"(.
"ara obtener m#s informaci%n, consulte FAlmacenar cadenas de conexi%n a
bases de datos de forma se$uraF, en el cap'tulo >, FSe$uridad del acceso a
datosF.
9 &l uso de una cuenta de 2indoEs duplicada en el ser.idor de bases de datos
?una cuenta 1ue coincida con la cuenta de proceso AS".+&)A se traduce en
una mayor car$a de administraci%n. Si se cambia una contrase5a de un
e1uipo, por e4emplo, es preciso sincroni3arla y actuali3arla en el resto de los
e1uipos. Al$unos escenarios ofrecen la posibilidad de utili3ar una cuenta de
dominio con pri.ile$ios m'nimos a fin de a$ili3ar la administraci%n.
9 ("Sec entre el ser.idor 2eb y el ser.idor de bases de datos $aranti3a la
pri.acidad de los datos 1ue se en.'an desde la base de datos y hacia la
misma.
9 -a implementaci%n de SS- entre el explorador y el 2eb prote$e las
credenciales y cual1uier otro tipo de datos cuya se$uridad sea importante
como, por e4emplo, los n0meros de las tar4etas de cr*dito.
9 Si utili3a una bater'a de ser.idores 2eb, ase$0rese de 1ue las cla.es de
cifrado, por e4emplo las utili3adas para cifrar el .ale de la autenticaci%n
mediante Dormularios ?y especificadas mediante el elemento Lmac%ine*e#M
del archi.o Machine.confi$A, son coherentes en todos los ser.idores de la
bater'a. Consulte el cap'tulo G, FSe$uridad de AS".+&)F, para obtener m#s
informaci%n acerca de c%mo utili3ar AS".+&) en un escenario de bater'as de
ser.idores 2eb.

Desventa+as
-a aplicaci%n debe transmitir la identidad ori$inal del llamador hasta la base de datos
para satisfacer los re1uisitos de auditor'a. -a identidad del llamador puede
transferirse mediante los par#metros de procedimiento almacenado.
Escenarios relacionados
Autenticaci"n mediante 'ormularios # Active Director#
-as credenciales de usuario aceptadas desde la p#$ina de inicio de sesi%n de
Dormularios pueden autenticarse con distintos almacenes. Acti.e Directory es una
alternati.a a las bases de datos de S,- Ser.er.
$&s informaci"n
Si desea obtener m#s informaci%n, consulte FC%mo utili3ar la autenticaci%n mediante
Dormularios con Acti.e DirectoryF en la secci%n de referencia de este manual.
'unciones .NET para la autori,aci"n
&l escenario pre.io no tiene en consideraci%n los distintos tipos de usuarios 1ue
obtienen acceso a la aplicaci%n. "or e4emplo, un ser.idor de portal podr'a tener
diferentes ni.eles de suscripci%n como, por e4emplo7 est#ndar, especial y
empresarial.
Si la informaci%n de funci%n se conser.a en el almac*n del usuario ?base de datos de
S,- Ser.erA, la aplicaci%n puede crear un ob4eto -enericPrincipal en el 1ue pueda
almacenarse la informaci%n de la funci%n y la identidad. <na .e3 creado el ob4eto
-enericPrincipal y despu*s de incluirlo en el contexto de la solicitud 2eb ?mediante
.ttpConte/t.0serA, puede a$re$ar comprobaciones de funci%n mediante
pro$ramaci%n para $enerar c%di$o met%dico o bien insertar atributos
PrincipalPermission en los m*todos y las p#$inas a fin de solicitar la pertenencia a
la funci%n.
$&s informaci"n
9 Si desea obtener m#s informaci%n acerca de c%mo crear ob4etos
-enericPrincipal 1ue conten$an listas de funciones, consulte FC%mo utili3ar
la autenticaci%n mediante Dormularios con ob4etos :eneric"rincipalF en la
secci%n de referencia de este manual.
9 Si desea obtener m#s informaci%n acerca de las peticiones
PrincipalPermission y las comprobaciones de funci%n mediante
pro$ramaci%n, consulte el cap'tulo G, FSe$uridad de AS".+&)F.

0tili,ar una cuenta de dominio an"nima en el servidor e!
&n esta .ariaci%n del escenario, la cuenta de usuario an%nima predeterminada de
(nternet ?una cuenta local denominada (<S/NMAC@(+&A se sustituye por una cuenta
de dominio. -a cuenta de dominio se confi$ura con los pri.ile$ios m'nimos
necesarios para e4ecutar la aplicaci%n ?puede empe3arse sin pri.ile$io al$uno e ir
a$re$ando pri.ile$ios pro$resi.amenteA. Si dispone de .arias aplicaciones basadas
en 2eb, puede utili3ar diferentes cuentas de dominio ?una para cada aplicaci%n
basada en 2eb o directorio .irtualA.
"ara transmitir el contexto de se$uridad de la cuenta de dominio an%nima desde ((S
a AS".+&) es preciso habilitar la suplantaci%n para la aplicaci%n basada en 2eb
mediante la si$uiente confi$uraci%n del archi.o 2eb.confi$.
<identity impersonate="true" />
Si la aplicaci%n basada en 2eb se comunica con un recurso remoto como puede ser
una base de datos, la cuenta de dominio debe tener concedidos los permisos
necesarios para el recurso en cuesti%n. "or e4emplo, si la aplicaci%n obtiene acceso
a un sistema de archi.os remoto, deben confi$urarse correctamente las AC- para
ofrecer acceso de lectura ?como m'nimoA a la cuenta de dominio. Si la aplicaci%n
obtiene acceso a la base de datos de S,- Ser.er, la cuenta de dominio deber#
asi$narse a un inicio de sesi%n de base de datos mediante un inicio de sesi%n de
S,-.
Dado 1ue el contexto de se$uridad 1ue se transmite a tra.*s de la aplicaci%n
corresponde al de una cuenta an%nima, la identidad ori$inal del llamador ?capturada
$racias a la autenticaci%n mediante DormulariosA debe transferirse al ni.el de la
aplicaci%n de ni.el en ni.elC por e4emplo, mediante m*todos y par#metros de
procedimiento almacenados.
$&s informaci"n
9 Si desea obtener m#s informaci%n acerca de este enfo1ue, consulte F<tili3ar la
cuenta an%nima de usuario de (nternetF en el cap'tulo G, OSe$uridad de
AS".+&)F.
9 Antes de implementar este escenario, consulte el art'culo ,KPJKJ, FMust
&nter "assEord Manually After Qou Set "assEord Synchroni3ationF ?en in$l*sA
de la RnoEled$e Sase de Microsoft.

De ASP.NET a Servicios Empresariales remotos a
SQL Server
&n este escenario, un ser.idor 2eb 1ue e4ecuta p#$inas AS".+&) establece
conexiones se$uras con los componentes re.isados, ubicados en un ser.idor de
aplicaciones remoto 1ue, a su .e3, se conecta a una base de datos de S,- Ser.er.
Al i$ual 1ue muchas infraestructuras de aplicaciones de (nternet, el ser.idor 2eb y el
ser.idor de aplicaciones se hallan separados por un ser.idor de se$uridad ?el
ser.idor 2eb se ubica en una red perimetralA. -os componentes re.isados
establecen conexiones se$uras con S,- Ser.er.
A modo de e4emplo, piense en una aplicaci%n de banca por (nternet 1ue ofre3ca a los
usuarios informaci%n importante ?como por e4emplo informaci%n financiera personalA.
)odas las transacciones bancarias 1ue efect0e el cliente con relaci%n a la base de
datos deben tener $aranti3ada la se$uridad, del mismo modo 1ue resulta
fundamental mantener la inte$ridad de los datos. +o s%lo debe $aranti3arse la
se$uridad del tr#fico entrante y saliente del usuario, sino tambi*n el tr#fico relati.o a
la base de datos. -a ilustraci%n =.J refle4a este escenario.
!nsert "gure# C$%7 - nternet & ASPNET to .emote Enterprise Ser)ices to
S'( Ser)er.gi*+
(lustraci%n =.J
Escenario de Internet de ASP.NET a Servicios E!presariales " SQL Server
Caractersticas
9 -os usuarios cuentan con distintos tipos de exploradores.
9 -os usuarios an%nimos pueden explorar las p#$inas no restrin$idas de la
aplicaci%n.
9 -os usuarios deben re$istrarse o iniciar una sesi%n ?a tra.*s de un formulario
@)M-A para .er las p#$inas restrin$idas.
9 -a aplicaci%n 2eb cliente se ubica en una red perimetral con ser.idores de
se$uridad 1ue la separan de (nternet y la red empresarial interna ?y el ser.idor
de aplicacionesA.
9 -a aplicaci%n re1uiere una se$uridad extrema, ele.ados ni.eles de
escalabilidad y un proceso de auditor'a exhausti.o.
9 -a aplicaci%n basada en 2eb utili3a SOA" para conectarse al ni.el de
ser.icios 2eb, 1ue ofrece una interfa3 para los componentes re.isados de una
aplicaci%n de ser.icios empresariales del ser.idor de aplicaciones. &s
preferible utili3ar SOA" en .e3 de DCOM debido a las restricciones del
ser.idor de se$uridad.
9 S,- Ser.er utili3a una funci%n de base de datos exclusi.a definida por el
usuario para fines de autori3aci%n.
9 -a se$uridad de los datos es importante y debe $aranti3arse la inte$ridad y
pri.acidad de los mismos en la red y en todos los almacenes de datos
permanentes.
9 -as transacciones de Ser.icios &mpresariales ?COMTA se utili3an para refor3ar
la inte$ridad de los datos.

Proteger el escenario
&n este escenario, el ser.icio 2eb acepta las credenciales de la p#$ina de inicio de
sesi%n mediante formularios y autentica al llamador con relaci%n a una base de datos
de S,- Ser.er. -a p#$ina de inicio de sesi%n utili3a SS- para la protecci%n de las
credenciales del usuario cuando se transfieren por (nternet.
-a aplicaci%n basada en 2eb se comunica con un ser.icio 2eb, 1ue incluye una
interfa3 con los ser.icios empresariales implementados en los componentes
re.isados &l ser.icio 2eb conf'a en la aplicaci%n basada en 2eb ?incluida en la red
perimetralA y autentica la identidad de proceso AS".+&). -a identidad del usuario se
transfiere a tra.*s de todos los ni.eles de aplicaci%n mediante par#metros de m*todo
y procedimiento almacenados. &sta informaci%n se utili3a para reali3ar una auditor'a
de las acciones de los usuarios en todos los ni.eles.
)abla =.7 medidas de seguridad
Cate$or'a Detalles
Autenticaci%n "roporciona una autenticaci%n se$ura en el
ser.idor 2eb.
Autentica la identidad de la aplicaci%n Ser.icios
&mpresariales en la base de datos.
((S se confi$ura para permitir el acceso an%nimo y
la aplicaci%n basada en 2eb autentica los
usuarios con la autenticaci%n mediante
Dormularios ?con una base de datos de S,-
Ser.erA.
Se confi$ura el directorio .irtual del ser.icio 2eb
para la autenticaci%n de 2indoEs inte$rada. -os
ser.icios 2eb autentican la identidad de proceso
de la aplicaci%n basada en 2eb.
Se utili3a la autenticaci%n de 2indoEs para
reali3ar la conexi%n a la base de datos. -a base
de datos autentica la cuenta de 2indoEs con
pri.ile$ios m'nimos utili3ada para e4ecutar la
aplicaci%n Ser.icios &mpresariales.
Autori3aci%n Se utili3a el modelo de subsistema de confian3a y
se lle.a a cabo la autori3aci%n por usuario
0nicamente en la aplicaci%n 2eb.
&l acceso de los usuarios a las p#$inas del
ser.idor 2eb se controla mediante la autori3aci%n
de direcciones </-.
-a cuenta de proceso AS".+&) recibe
autori3aci%n para obtener acceso a los recursos
de sistema del ser.idor 2eb. -a protecci%n de los
recursos se lle.a a cabo mediante las listas AC-.
-os permisos de la base de datos se controlan
mediante una funci%n definida por el usuario. -a
identidad de la aplicaci%n de Ser.icios
&mpresariales es miembro de la funci%n.
-a cuenta de proceso de Ser.icios &mpresariales
recibe autori3aci%n para obtener acceso a los
recursos de sistema del ser.idor de aplicaciones.
-a protecci%n de los recursos se lle.a a cabo
mediante las AC-.
Comunicaci%n se$ura -a se$uridad del en.'o de datos importantes entre
usuarios y la aplicaci%n basada en 2eb se
prote$e mediante SS-.
-a se$uridad del en.'o de datos importantes entre
el ser.idor 2eb y el ser.icio 2eb se $aranti3a
mediante SS-.
-a se$uridad del en.'o de datos importantes entre
componentes re.isados y la base de datos se
$aranti3a mediante ("Sec.
El resultado
-a ilustraci%n =.U muestra la confi$uraci%n de se$uridad recomendada para este
escenario.
!nsert "gure# nternet - ASP.NET to .emote Enterprise Ser)ices to S'(
Ser)er ,Solution-.gi*+
(lustraci%n =.U
Confuracin de seuridad reco!endada para el escenario de Internet de
ASP.NET a Servicios E!presariales " SQL Server
Pasos para la configuraci"n de la seguridad
Antes de empe3ar es preciso considerar los si$uientes aspectos7
9 Crear una cuenta de base de datos con pri.ile$ios m'nimos ?consulte el
cap'tulo >, FSe$uridad del acceso a datosFA
9 Confi$urar SS- en un ser.idor 2eb ?consulte FC%mo confi$urar SS- en un
ser.idor 2ebF en la secci%n de referencia de este manualA
9 Confi$urar ("Sec ?consulte FC%mo utili3ar ("Sec para proporcionar
comunicaciones se$uras entre dos ser.idoresF en la secci%n de referencia de
ese manualA
9 Confi$urar la se$uridad de los Ser.icios &mpresariales ?consulte FC%mo7
<tili3ar la se$uridad basada en funciones con Ser.icios &mpresarialesF en la
secci%n de referencia de este manualA

Configurar el servidor e!
Confi$urar ((S
"aso M#s informaci%n
@abilitar el acceso an%nimo
para el directorio ra'3 .irtual
de la aplicaci%n 2eb

Confi$urar AS".+&)
"aso M#s informaci%n
/establecer la contrase5a "ermite crear una cuenta local duplicada ?con el mismo
de la cuenta AS"+&) ?1ue
se utili3a para e4ecutar
AS".+&)A a una
contrase5a se$ura
conocida
nombre de usuario y contrase5aA en el ser.idor de
aplicaciones. &ste paso es necesario para 1ue la cuenta
AS"+&) pueda responder a los desaf'os de la
autenticaci%n de red desde el ser.idor de aplicaciones.
&xiste una alternati.a 1ue consiste en utili3ar una cuenta
de dominio con pri.ile$ios m'nimos ?siempre y cuando se
permita la autenticaci%n de 2indoEs a tra.*s del ser.idor
de se$uridadA.
"ara obtener m#s informaci%n, consulte F(dentidad del
proceso de AS".+&)F en el cap'tulo G, FSe$uridad de
AS".+&)F.
&dite el archi.o Machine.confi$, 1ue se encuentra en
HEindirHIMicrosoft.+&)IDrameEorkI.>.!.J=!KICO+D(:
&stable3ca los atributos de nombre de usuario y
contrase5a de la cuenta personali3ada en el elemento
Lprocess$odelM.
Valor predeterminado
<!-- userName="machine" password="AutoGenerate"
-->
Se con.ierte en
<!-- userName="machine"
password="YourStrongPassword" -->
Confi$urar la aplicaci%n
2eb para utili3ar la
autenticaci%n mediante
Dormularios ?con SS-A
Modifi1ue el archi.o 2eb.confi$ de la ra'3 del directorio
.irtual de la aplicaci%n.
&stable3ca el elemento Laut%enticationM en7
<authentication mode="Forms" >
<forms name="MyAppFormsAuth"
loginUrl="login.aspx"
protection="All"
timeout="20"
path="/" >
</forms>
</authentication>
Si desea obtener m#s informaci%n acerca de la
autenticaci%n mediante Dormularios con bases de datos
de S,- Ser.er, consulte FC%mo utili3ar la autenticaci%n
mediante Dormularios con S,- Ser.er !!!F en la
secci%n de referencia de este manual.

Configurar el servidor de aplicaciones
Confi$urar ((S
"aso M#s informaci%n
Deshabilitar el acceso
an%nimo
Confi$urar la autenticaci%n
de 2indoEs inte$rada
((S autentica la identidad de proceso de AS".+&) desde la
aplicaci%n 2eb del ser.idor 2eb.
Confi$urar AS".+&)
"aso M#s informaci%n
<tili3ar la autenticaci%n de
2indoEs
Modifi1ue el archi.o 2eb.confi$ de la ra'3 del directorio
.irtual de la aplicaci%n.
&stable3ca el elemento Laut%enticationM en7
<authentication mode="Windows" />
Confi$urar los Ser.icios &mpresariales
"aso M#s informaci%n
Crear una cuenta
personali3ada con
pri.ile$ios m'nimos para
e4ecutar la aplicaci%n de
Ser.icios &mpresariales
N1TA7 si utili3a una cuenta local, tambi*n deber# crear
una cuenta duplicada en el e1uipo 1ue act0e como
ser.idor de bases de datos.
Confi$urar la aplicaci%n de
Ser.icios &mpresariales
para utili3ar la cuenta
personali3ada
Consulte la secci%n FConfi$urar la se$uridadF del cap'tulo
P, FSe$uridad de la aplicaci%n de Ser.icios
&mpresarialesF.
@abilitar la comprobaci%n
de acceso mediante
funciones
Consulte la secci%n FConfi$urar la se$uridadF del cap'tulo
P, FSe$uridad de la aplicaci%n de Ser.icios
&mpresarialesF.
A$re$ar una 0nica funci%n
de Ser.icios &mpresariales
?COMTA a la aplicaci%n
llamada ?por e4emplo,
ser.icio 2eb de confian3aA
-a autori3aci%n completa de los usuarios finales se lle.a a
cabo mediante la aplicaci%n basada en 2eb. &l ser.icio
2eb ?y los componentes re.isadosA s%lo permite el
acceso a los miembros de la funci%n del ser.icio 2eb de
confian3a.
A$re$ar la cuenta AS"+&)
local a la funci%n de
ser.icio 2eb de confian3a
Consulte la secci%n FConfi$urar la se$uridadF del cap'tulo
P, FSe$uridad de la aplicaci%n de Ser.icios
&mpresarialesF.
Configurar SQL Server
"aso M#s informaci%n
Crear una cuenta de
2indoEs en el e1uipo S,-
Ser.er 1ue coincida con la
cuenta de la aplicaci%n de
Ser.icios &mpresariales
&l nombre de usuario y la contrase5a deben coincidir con
la cuenta personali3ada de Ser.icios &mpresariales.
Confi$urar S,- Ser.er
para la autenticaci%n de
2indoEs
Crear un inicio de sesi%n
de S,- Ser.er para la
cuenta personali3ada de
Ser.icios &mpresariales
&ste paso permite obtener acceso a S,- Ser.er.
Crear un nue.o usuario de
base de datos y asi$nar el
nombre de inicio de sesi%n
al usuario de base de datos
"ermite obtener acceso a la base de datos especificada.
Crear una nue.a funci%n de
base de datos definida por
el usuario y a$re$ar el
usuario de base de datos a
la funci%n
&stablecer permisos de
bases de datos para la
funci%n de base de datos
Concede permisos m'nimos.
Si desea obtener m#s informaci%n, consulte el cap'tulo >,
FSe$uridad del acceso a datos.F

Configurar la seguridad de las comunicaciones
"aso M#s informaci%n
Confi$urar el sitio 2eb para
SS-
Consulte FC%mo confi$urar SS- en un ser.idor 2ebF en la
secci%n de referencia de este manual.
Confi$urar SS- entre el
ser.idor 2eb y el ser.idor
de aplicaciones
Consulte FC%mo llamar a un ser.icio 2eb mediante SS-F
en la secci%n de referencia de este manual.
Confi$urar ("Sec entre el
ser.idor de aplicaciones y
el ser.idor de bases de
datos
Consulte FC%mo utili3ar ("Sec para proporcionar
comunicaciones se$uras entre dos ser.idoresF en la
secci%n /eferencia de esta $u'a.
An&lisis
9 -a autenticaci%n mediante Dormularios resulta id%nea en este escenario
puesto 1ue los usuarios no disponen de cuentas de 2indoEs. -a p#$ina de
inicio de sesi%n de Dormularios se utili3a para obtener las credenciales de
usuario. -a .alidaci%n de dichas credenciales debe reali3arse mediante el
c%di$o de la aplicaci%n. "uede utili3arse cual1uier tipo de datos almacenado.
-a soluci%n m#s habitual son las bases de datos de S,- Ser.er, a pesar de
1ue Acti.e Directory tambi*n puede utili3arse como almac*n de credenciales.
9 -a aplicaci%n basada en 2eb se e4ecuta como la cuenta AS"+&) local con
pri.ile$ios m'nimos, de modo 1ue se reducen los posibles da5os por
exposici%n.
9 -a autori3aci%n de direcciones </- en el ser.idor 2eb permite 1ue los
usuarios no autenticados puedan explorar p#$inas 2eb no restrin$idas
adem#s de exi$ir la autenticaci%n para las p#$inas restrin$idas.
9 Dado 1ue no est# habilitada la suplantaci%n, cual1uier acceso a recursos
locales o remotos 1ue efect0e la aplicaci%n basada en 2eb se lle.a a cabo
mediante el contexto de se$uridad de la cuenta AS"+&). -as AC- deber'an
confi$urarse como corresponda.
9 -as credenciales de usuario se .alidan con relaci%n a una base de datos de
S,- Ser.er personali3ada. -as contrase5as hash ?con .alor saltA se
almacenan en la base de datos. Si desea obtener m#s informaci%n, consulte
FAutenticar usuarios con una base de datosF en el cap'tulo >, FSe$uridad de
acceso a datos.F
9 &l uso de la autenticaci%n de 2indoEs para S,- Ser.er e.ita tener 1ue
almacenar las credenciales en archi.os del ser.idor de aplicaciones, adem#s
de transferirlas por la red.
9 &l uso de una cuenta de 2indoEs duplicada en el ser.idor de bases de datos
?una cuenta 1ue coincida con la cuenta de proceso de Ser.icios
&mpresarialesA se traduce en una mayor car$a de administraci%n. Si se
cambia una contrase5a de un e1uipo, por e4emplo, es preciso sincroni3arla y
actuali3arla en el resto de los e1uipos. Al$unos escenarios ofrecen la
posibilidad de utili3ar una cuenta de dominio con pri.ile$ios m'nimos a fin de
a$ili3ar la administraci%n.
9 Cuando la aplicaci%n 2eb llama al ser.icio 2eb, *ste debe confi$urar el proxy
del ser.icio 2eb mediante DefaultCredentials ?es decir, la cuenta de proceso
AS".+&)C AS"+&)A.
proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
Si desea obtener m#s informaci%n, consulte F)ransferir credenciales para la
autenticaci%n en los Ser.icios 2ebF en el cap'tulo >!, FSe$uridad de ser.icios
2ebF.
9 SS- entre el ser.idor 2eb y el ni.el de ser.icios 2eb ?1ue ofrece ser.icios a
los componentes re.isados del ser.idor de aplicacionesA $aranti3a la
pri.acidad de los datos 1ue se transfieren entre ambos ser.idores.
9 -a aplicaci%n de Ser.icios &mpresariales se confi$ura para la se$uridad
basada en funciones para los ni.eles de aplicaci%n. -a confi$uraci%n permite
1ue 0nicamente la cuenta AS"+&) local ?utili3ada para e4ecutar el ser.icio
2ebA obten$a acceso a los componentes re.isados.
9 ("Sec entre el ser.idor de aplicaciones y el ser.idor de bases de datos
$aranti3a la pri.acidad de los datos 1ue se en.'an desde la base de datos y
hacia la misma.
9 SS- entre el explorador y el ser.idor 2eb prote$e las credenciales y la
informaci%n sobre la cuenta bancaria.

Desventa+as
-a aplicaci%n debe transmitir la identidad ori$inal del llamador hasta la base de datos
para satisfacer los re1uisitos de auditor'a. -a identidad del llamador puede
transferirse mediante los par#metros de procedimiento almacenado.
Escenarios relacionados
Autenticaci"n mediante 'ormularios # Active Director#
-as credenciales de usuario aceptadas desde la p#$ina de inicio de sesi%n de
Dormularios pueden autenticarse con distintos almacenes. Acti.e Directory es una
alternati.a a las bases de datos de S,- Ser.er.
$&s informaci"n
Si desea obtener m#s informaci%n, consulte FC%mo utili3ar la autenticaci%n mediante
Dormularios con Acti.e DirectoryF en la secci%n de referencia de este manual.
0tili,ar DC1$
2indoEs !!! ?S"J o S" con ,D& >G.>A o 2indoEs Ser.er !!J permite
confi$urar una aplicaci%n de Ser.icios &mpresariales para conse$uir 1ue uno de los
extremos del canal de comunicaci%n sea fi4o. Si existe un ser.idor de se$uridad 1ue
separa el cliente del ser.idor, deber# abrir s%lo dos puertos de dicho ser.idor de
se$uridad. &n concreto, deber# abrir el puerto >JK para /"C y un puerto para la
aplicaci%n de Ser.icios &mpresariales.
&sta me4ora hace 1ue la elecci%n del protocolo de comunicaci%n DCOM resulte
id%nea entre el ser.idor 2eb y el ser.idor de aplicaciones y rele$a al pasado la
necesidad de tener 1ue utili3ar un ni.el de ser.icios 2eb.
2mportante3 es obli$atorio utili3ar DCOM si la aplicaci%n empleada re1uiere la
transmisi%n de transacciones distribuidas entre dos ser.idores. -as transacciones
no pueden transferirse mediante SOA". &n un escenario SOA", las transacciones
deben iniciarse mediante los componentes re.isados del ser.idor de aplicaciones.
$&s informaci"n
Si desea obtener m#s informaci%n, consulte el cap'tulo P, FSe$uridad de la aplicaci%n
de Ser.icios &mpresariales.F
0tili,ar .NET Remoting
.+&) /emotin$ puede resultar una elecci%n acertada cuando no se necesitan los
ser.icios 1ue ofrece Ser.icios &mpresariales tales como transacciones,
componentes en cola, a$rupaci%n de ob4etos, etc. -as soluciones +&) /emotin$
tambi*n son compatibles con el e1uilibrio de car$a de la red en el ni.el intermedio.
)en$a en cuenta los si$uientes aspectos cuando utilice +&) /emotin$7
9 "ara disfrutar de un rendimiento excelente, utilice el canal )C" y un host en un
ser.icio de 2indoEs. )en$a en cuenta 1ue este canal no ofrece de manera
predeterminada nin$0n mecanismo de autenticaci%n ni autori3aci%n. &l canal
)C" est# dise5ado para escenarios de subsistemas de confian3a. "uede utili3ar
una directi.a ("Sec para establecer un canal se$uro y $aranti3ar 1ue 0nicamente
el ser.idor 2eb se comuni1ue con el ser.idor de aplicaciones.
9 Si precisa reali3ar comprobaciones de autenticaci%n y autori3aci%n mediante
ob4etos 2Principal, es con.eniente 1ue alber$ue los ob4etos remotos en AS".+&)
y 1ue utilice el canal @))". De este modo podr# utili3ar las funciones de
se$uridad de ((S y AS".+&).
9 &l ob4eto remoto puede conectarse a la base de datos mediante la autenticaci%n
de 2indoEs y puede utili3ar la identidad de proceso del host ?ya sea AS".+&) o
una identidad de ser.icio de 2indoEsA.

$&s informaci"n
Si desea obtener m#s informaci%n acerca de la se$uridad de .+&) /emotin$,
consulte el cap'tulo >>, FSe$uridad de .+&) /emotin$F.
Resumen
&n este cap'tulo se describe c%mo prote$er la se$uridad de los escenarios m#s
comunes de las aplicaciones de (nternet.
Si desea obtener informaci%n complementaria acerca de escenarios de aplicaciones
de intranet y extranet, consulte el cap'tulo K, FSe$uridad de intranetF y el cap'tulo V,
FSe$uridad de extranet.F

También podría gustarte