Está en la página 1de 17

Crear aplicaciones

ASP.NET seguras
Autenticacin, autorizacin y
comunicacin segura
Captulo 2 - Moelo e
seguria para
aplicaciones ASP.NET
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 las caracter'sticas comunes de las aplicaciones (eb .)&*
desde la perspecti+a de la se$uridad y presenta el modelo de se$uridad de estas
aplicaciones. "resenta tambi,n el con-unto de tecnolo$'as b#sicas de
implementaci%n .ue utili/ar# para crear aplicaciones (eb .)&* se$uras.
Contenido
Aplicaciones (eb .)&*
*ecnolo$'as de implementaci%n
Ar.uitectura de se$uridad
0dentidades y principales
Conclusi%n
&ste cap'tulo contiene una introducci%n a la se$uridad de las aplicaciones (eb .)&*.
"roporciona informaci%n $eneral acerca de las caracter'sticas y ser+icios de
se$uridad .ue se aplican a todos los ni+eles de una aplicaci%n (eb .)&* t'pica.
&l ob-eti+o del cap'tulo es1
2 "roporcionar un marco de referencia para las aplicaciones (eb .)&* t'picas
2 0dentificar las caracter'sticas de se$uridad de autenticaci%n, autori/aci%n y
comunicaci%n se$ura ofrecidas por las di+ersas tecnolo$'as de
implementaci%n utili/adas en la creaci%n de aplicaciones (eb .)&*
2 0dentificar $uardianes y puertas .ue pueden utili/arse en la aplicaci%n para
imponer l'mites de confian/a.

Aplicaciones Web .NET
&sta secci%n contiene una introducci%n bre+e a las aplicaciones (eb .)&* y
describe sus caracter'sticas desde un punto de +ista tanto l%$ico como f'sico.
Contiene adem#s una introducci%n a las di+ersas tecnolo$'as de implementaci%n
utili/adas en la creaci%n de aplicaciones (eb .)&*.
Niveles lgicos
3a ar.uitectura l%$ica de aplicaciones considera todos los sistemas como con-untos
de ser+icios en cooperaci%n .ue se encuentran a$rupados en los ni+eles si$uientes1
2 Ser+icios de usuarios
2 Ser+icios empresariales
2 Ser+icios de datos

&l +alor de este punto de +ista de la ar.uitectura l%$ica radica en la identificaci%n de
los tipos $en,ricos de ser+icios .ue siempre est#n presentes en cual.uier sistema,
para $aranti/ar la se$mentaci%n adecuada y para impulsar la definici%n de interfaces
entre ni+eles. &sta se$mentaci%n le permite tomar decisiones m#s discretas acerca
de la ar.uitectura y del dise4o al implementar cada ni+el, y crear una aplicaci%n m#s
f#cil de mantener.
3os ni+eles pueden describirse tal y como se explica a continuaci%n1
2 3os Servicios de usuarios se encar$an de la interacci%n de clientes con el
sistema y proporcionan un puente com5n a la l%$ica empresarial b#sica
encapsulada por componentes del ni+el de Ser+icios empresariales.
*radicionalmente, los Ser+icios de usuarios suelen asociarse a los usuarios
interacti+os. )o obstante, tambi,n lle+an a cabo el procesamiento inicial de
peticiones pro$ramables de otros sistemas, en las .ue no participa una interfa/
de usuario +isible. 3a autenticaci%n y la autori/aci%n, cuya naturale/a exacta
+ar'a en funci%n del tipo de cliente, suelen reali/arse en el ni+el de Ser+icios
de usuarios.
2 3os Servicios empresariales proporcionan la funcionalidad b#sica del
sistema y encapsulan la l%$ica empresarial. Son independientes del canal de
entre$a, de los sistemas de ser+idor y de los or'$enes de datos. &sto ofrece la
estabilidad y la flexibilidad necesarias para desarrollar el sistema de forma .ue
admita canales y sistemas de ser+idor nue+os y diferentes. )ormalmente, el
procesamiento de una petici%n empresarial concreta re.uiere la participaci%n
de +arios componentes en colaboraci%n del ni+el de Ser+icios empresariales.
2 3os Servicios de datos proporcionan acceso a datos 6alo-ados en los l'mites
del sistema7 y a otros sistemas 6de ser+idor7 a tra+,s de interfaces $en,ricas
.ue resultan sencillas de utili/ar desde componentes del ni+el de Ser+icios
empresariales. 3os Ser+icios de datos compendian la di+ersidad de sistemas
de ser+idor y or'$enes de datos, y encapsulan re$las de acceso y formatos de
datos espec'ficos.

3a clasificaci%n l%$ica de los tipos de ser+icios de un sistema puede corresponderse
con la posible distribuci%n f'sica de los componentes .ue implementan los ser+icios,
aun.ue es relati+amente independiente de la misma.
*ambi,n es importante tener en cuenta .ue los ni+eles l%$icos pueden identificarse
en cual.uier ni+el de a$re$aci%n8 es decir, pueden identificarse para el sistema de
forma $lobal 6en el contexto de su entorno e interacciones externas7 y para cual.uier
subsistema contenido en ellos. "or e-emplo, cada nodo remoto .ue alo-a un ser+icio
(eb se compone de Ser+icios de usuarios 6.ue se ocupan de las peticiones y los
mensa-es entrantes7, Ser+icios empresariales y Ser+icios de datos.
Modelos fsicos de implementacin
3os tres ni+eles de ser+icios l%$icos descritos anteriormente no suponen la existencia
de un n5mero espec'fico de ni+eles f'sicos. 3os tres ser+icios l%$icos pueden estar
ubicados f'sicamente en el mismo e.uipo o distribuidos en di+ersos e.uipos.
El servidor Web como servidor de aplicaciones
9n patr%n de implementaci%n habitual de las aplicaciones (eb .)&* est# diri$ido a
la b5s.ueda de componentes empresariales y de acceso a datos en el ser+idor (eb.
De este modo se reducen al m'nimo los saltos de red, lo .ue puede me-orar el
rendimiento. &ste modelo se muestra en la ilustraci%n .:.
!"nsert #gure$ C%&2 - 'e( Ser)erAsAnAppSer)er.gi*+
0lustraci%n .:
El servidor Web como servidor de aplicaciones
Nivel de aplicaciones remoto
&l ni+el de aplicaciones remoto es un patr%n de implementaci%n habitual, en concreto
para los escenarios de 0nternet en los .ue el ni+el (eb es independiente en una red
perimetral 6tambi,n denominada DM;, /ona desmilitari/ada y subred prote$ida7 y
est# separado de los usuarios finales y del ni+el de aplicaciones remoto por
ser+idores de se$uridad de filtrado de pa.uetes. &l ni+el de aplicaciones remoto se
muestra en la ilustraci%n ..
!"nsert #gure$ C%&2 - ,emoteApplicationTier.gi*+
0lustraci%n .
La introduccin de un nivel de aplicaciones remoto
Tecnologas de implementacin
3as aplicaciones (eb .)&* suelen implementar uno o +arios de los ser+icios l%$icos
mediante el uso de las si$uientes tecnolo$'as1
2 AS".)&*
2 Aplicaci%n de Ser+icios &mpresariales
2 Ser+icios (eb
2 .)&* <emotin$
2 ADO.)&* y Microsoft= S>3 Ser+er? !!!
2 Se$uridad del protocolo 0nternet 60"Sec7
2 Secure Sockets 3ayer 6SS37

AS.NET
AS".)&* suele utili/arse para implementar Ser+icios de usuarios. AS".)&*
proporciona una ar.uitectura conectable .ue puede utili/arse para crear p#$inas
(eb. "ara obtener m#s informaci%n acerca de AS".)&*, consulte los si$uientes
recursos1
2 Cap'tulo @ A BSe$uridad de AS".)&*B
2 BAS".)&*B en la secci%n BCentro de referenciaB de esta $u'a

Servicios Empresariales
3a aplicaci%n de Ser+icios &mpresariales proporciona ser+icios de infraestructura a
las aplicaciones. &ntre ellos, fi$uran las transacciones distribuidas y ser+icios de
administraci%n de recursos como la a$rupaci%n de ob-etos para componentes de
.)&*. "ara obtener m#s informaci%n acerca de la aplicaci%n de Ser+icios
&mpresariales, consulte los si$uientes recursos1
2 Cap'tulo C A BSe$uridad de la aplicaci%n de Ser+icios &mpresarialesB
2 B9nderstandin$ &nterprise Ser+ices 6COMD7 in .)&*B 6en in$l,s7 en MSD)
6http1EEmsdn.microsoft.comElibraryEdefault.aspFurlGElibraryEenA
usEdndotnetEhtmlEentser+.asp7
2 BAplicaci%n de Ser+icios &mpresarialesB en la secci%n BCentro de referenciaB
de esta $u'a

Servicios Web
3os ser+icios (eb permiten el intercambio de datos y la in+ocaci%n remota de l%$ica
de aplicaciones mediante intercambios de mensa-es basados en SOA" para
transmitir datos por ser+idores de se$uridad y entre sistemas hetero$,neos. "ara
obtener m#s informaci%n acerca de los ser+icios (eb, consulte los si$uientes
recursos1
2 Cap'tulo :! A BSe$uridad de ser+icios (ebB
2 BHM3 (eb Ser+ices De+elopment CenterB 6en in$l,s7 en MSD)
6http1EEmsdn.microsoft.comEIebser+icesE7
2 BSer+icios (ebB en la secci%n BCentro de referenciaB de esta $u'a

.NET Remoting
.)&* <emotin$ proporciona un marco de traba-o para el acceso a ob-etos
distribuidos a tra+,s de los l'mites de procesos y e.uipos. "ara obtener m#s
informaci%n acerca de .)&* <emotin$, consulte los si$uientes recursos1
2 Cap'tulo :: A BSe$uridad de .)&* <emotin$B
2 B.)&* <emotin$B en la secci%n BCentro de referenciaB de esta $u'a

A!".NET # S$% Server &'''
ADO.)&* proporciona ser+icios de acceso a datos. Su dise4o es espec'fico para
aplicaciones (eb distribuidas y ofrece compatibilidad para los escenarios inconexos
.ue est#n intr'nsicamente asociados a las aplicaciones (eb. "ara obtener m#s
informaci%n acerca de ADO.)&*, consulte los si$uientes recursos1
2 Cap'tulo : A BSe$uridad del acceso a datosB
2 BADO.)&*B en la secci%n BCentro de referenciaB de esta $u'a

S>3 Ser+er proporciona se$uridad inte$rada .ue utili/a los mecanismos de
autenticaci%n del sistema operati+o 6Jerberos o )*3M7. 3a autori/aci%n la
proporcionan los inicios de sesi%n y los permisos $ranulares .ue se pueden aplicar a
cada uno de los ob-etos de base de datos. "ara obtener m#s informaci%n acerca de
S>3 Ser+er !!!, consulte los si$uientes recursos1
2 Cap'tulo : A BSe$uridad del acceso a datosB

Seguridad del protocolo (nternet )(Sec*
0"Sec ofrece cifrado punto a punto de ni+el de transporte y ser+icios de
autenticaci%n. "ara obtener m#s informaci%n acerca de 0"Sec, consulte los
si$uientes recursos1
2 Cap'tulo K A BComunicaci%n se$uraB
2 IPSec The New Security Standard for the Internet, Intranets and Virtual
Priate Networ!s 6en in$l,s7 de )a$anand DorasIamy y Dan Larkins
6"rentice Lall "*<, 0SM)8 0SM)1 !A:NA!::@C@A78 el cap'tulo K puede
consultarse en *ech)et en
http1EEIII.microsoft.comEtechnetEtree+ieIEdefault.aspF
urlGEtechnetEsecurityEprodtechEnetIorkEipsecarc.aspFframeGtrue

Secure Soc+ets %a#er )SS%*
SS3 ofrece un canal de comunicaci%n punto a punto se$uro. 3os datos en+iados por
el canal se cifran. "ara obtener m#s informaci%n acerca de SS3, consulte los
si$uientes recursos1
2 Cap'tulo K A BComunicaci%n se$uraB
2 "icrosoft# $indows# %&&& and IIS '.& Ad(inistrator)s Poc!et Consultant 6en
in$l,s7 6Microsoft "ress, 0SM)1 !AONPQA:!KAH78 el cap'tulo Q puede
consultarse en *ech)et en
http1EEIII.microsoft.comEtechnetEtree+ieIEdefault.aspF
urlGE*ech)etEprodtechnolEiisEmaintainEfeatusabilityEc!Qiis.asp

Ar,uitectura de seguridad
3a ilustraci%n .N muestra el modelo de ni+eles de aplicaciones remoto -unto con el
con-unto de ser+icios de se$uridad proporcionados por las di+ersas tecnolo$'as .ue
se presentaron anteriormente. 3a autenticaci%n y la autori/aci%n tienen lu$ar en
muchos puntos independientes de todos los ni+eles. &stos ser+icios los proporcionan
principalmente los Ser+icios de 0nternet 0nformation Ser+er 600S7, AS".)&*, la
aplicaci%n de Ser+icios &mpresariales y S>3 Ser+er. 3os canales de comunicaci%n
se$ura se aplican tambi,n en todos los ni+eles y se extienden desde el explorador o
dispositi+o cliente directamente hasta la base de datos. 3os canales se prote$en con
una combinaci%n de Secure Sockets 3ayer 6SS37 o 0"Sec.
!"nsert #gure$ C%&2 - SecurityArc-itecture.gi*+
0lustraci%n .N
Arquitectura de seguridad
Seguridad en los niveles
3as caracter'sticas de autenticaci%n, autori/aci%n y comunicaci%n se$ura
proporcionadas por las tecnolo$'as mencionadas anteriormente aparecen resumidas
en la tabla .:.
*abla .:1 Caracter*sticas de seguridad
*ecnolo$'a Autenticaci%n Autori/aci%n Comunicaci%n
se$ura
00S An%nima
M#sica
0mpl'cita
0nte$rada en
(indoIs
6JerberosE)*3M7
Certificados
<estricciones de
direcciones 0"ED)S
"ermisos (eb
"ermisos )*RS8 listas
de control de acceso
6AC37 de (indoIs en
archi+os solicitados
SS3
AS".)&* )in$una
6personali/ada7
(indoIs
Rormularios
"assport
Autori/aci%n de
archi+os
Autori/aci%n de
direcciones 9<3
"ermisos de
principales
Runciones de .)&*
Ser+icios (eb (indoIs
)in$una
6personali/ada7
Autenticaci%n de
mensa-es
Autori/aci%n de
archi+os
Autori/aci%n de
direcciones 9<3
"ermisos de
principales
Runciones de .)&*
Cifrado SS3 y de
mensa-es
<emotin$ (indoIs Autori/aci%n de
archi+os
Autori/aci%n de
direcciones 9<3
"ermisos de
principales
Runciones de .)&*
Cifrado SS3 y de
mensa-es
Ser+icios
&mpresariales
(indoIs Runciones de
Ser+icios
&mpresariales
6COMD7
"ermisos )*RS
Cifrado de llamada
a procedimiento
remoto 6<"C7
S>3 Ser+er
!!!
(indoIs
6JerberosE)*3M7
Autenticaci%n de S>3
0nicios de sesi%n en el
ser+idor
0nicios de sesi%n en la
base de datos
Runciones fi-as de
base de datos
Runciones definidas
por el usuario
Runciones de
aplicaci%n
"ermisos de ob-etos
SS3
(indoIs !!! Jerberos
)*3M
AC3 de (indoIs 0"Sec

Autenticacin
.)&* RrameIork en (indoIs !!! proporciona las si$uientes opciones de
autenticaci%n1
2 Modos de autenticaci%n de AS".)&*
2 Autenticaci%n de la aplicaci%n de Ser+icios &mpresariales
2 Autenticaci%n de S>3 Ser+er

Modos de autenticacin de AS.NET
3a autenticaci%n de AS".)&* incluye (indoIs, Rormularios, "assport y )in$una.
2 Autenticacin de Windo-s. Con este modo de autenticaci%n, AS".)&*
depende de 00S para la autenticaci%n de usuarios y la creaci%n de un testi$o de
acceso de (indoIs para representar la identidad autenticada. 00S ofrece los
si$uientes mecanismos de autenticaci%n1
2 Autenticacin b.sica. 3a autenticaci%n b#sica re.uiere .ue el usuario
proporcione credenciales en forma de nombre de usuario y contrase4a
para probar su identidad. Se trata de una propuesta de est#ndar de
0nternet basada en <RC Q:O1 http1EEIII.fa.s.or$ErfcsErfcQ:O.html. *anto
)etscape )a+i$ator como Microsoft 0nternet &xplorer admiten la
autenticaci%n b#sica. 3as credenciales del usuario se transmiten del
explorador al ser+idor (eb en un formato codificado en MaseQK no cifrado.
"uesto .ue el ser+idor (eb obtiene las credenciales del usuario sin cifrar,
puede emitir llamadas remotas 6por e-emplo, para obtener acceso a
e.uipos y recursos remotos7 con las credenciales del usuario.
Nota/ la autenticaci%n b#sica debe utili/arse 5nicamente de forma
con-unta con un canal se$uro 6.ue se suele establecer mediante SS37. De
lo contrario, los nombres de usuario y las contrase4as podr'an robarse
f#cilmente con softIare de super+isi%n de redes. Si utili/a la autenticaci%n
b#sica, deber# utili/ar SS3 en todas las p#$inas 6y no s%lo en p#$inas de
inicio de sesi%n7 por.ue las credenciales se transmiten en todas las
peticiones posteriores. "ara obtener m#s informaci%n acerca de c%mo
utili/ar la autenticaci%n b#sica con SS3, consulte el cap'tulo @, BSe$uridad
de AS".)&*B.
2 Autenticacin implcita. 3a autenticaci%n impl'cita, .ue se introdu-o con
00S P.!, es parecida a la autenticaci%n b#sica, excepto en .ue en lu$ar de
transmitir las credenciales del usuario sin cifrar del explorador al ser+idor
(eb, se transmite un hash de las credenciales. Como consecuencia, es
m#s se$ura, aun.ue re.uiere un cliente 0nternet &xplorer P.! o posterior y
una confi$uraci%n espec'fica de ser+idor.
2 Autenticacin de Windo-s integrada. 3a autenticaci%n de (indoIs
inte$rada 6Jerberos o )*3M en funci%n de la confi$uraci%n de cliente y
ser+idor7 utili/a un intercambio cripto$r#fico con el explorador (eb 0nternet
&xplorer del usuario para confirmar la identidad del usuario. S%lo es
compatible con 0nternet &xplorer 6no con )etscape )a+i$ator7 y, por lo
tanto, suele utili/arse solamente en escenarios de intranet, en los .ue se
puede controlar el softIare de cliente. 3a utili/a 5nicamente el ser+idor
(eb cuando se deshabilita el acceso an%nimo o cuando se denie$a el
acceso an%nimo mediante permisos de sistema de archi+os de (indoIs.
2 Autenticacin de certificados. 3a autenticaci%n de certificados utili/a
certificados de cliente para confirmar la identidad de los usuarios. &l
certificado de cliente se transmite del explorador del usuario 6o aplicaci%n
cliente7 al ser+idor (eb. 6&n el caso de los ser+icios (eb, el cliente de
ser+icios (eb transmite el certificado mediante la propiedad
ClientCertificates del ob-eto Lttp(eb<e.uest.7 A continuaci%n, el ser+idor
(eb extrae la identidad del usuario del certificado. &ste enfo.ue depende
de la instalaci%n de un certificado de cliente en el e.uipo del usuario y, por
lo tanto, suele utili/arse casi siempre en escenarios de intranet o extranet
en los .ue la poblaci%n de usuarios se conoce bien y est# controlada. *ras
la recepci%n de un certificado de cliente, 00S puede asi$nar el certificado a
una cuenta de (indoIs.
2 Autenticacin annima. Si no necesita autenticar los clientes 6o
implementa un es.uema de autenticaci%n personali/ado7, puede
confi$urar 00S para .ue utilice la autenticaci%n an%nima. &n este caso, el
ser+idor (eb crea un testi$o de acceso de (indoIs para representar a
todos los usuarios an%nimos con la misma cuenta an%nima 6o de in+itado7.
3a cuenta an%nima predeterminada es 09S<S)OMM<&&>90"O, en la .ue
)OMM<&&>90"O es el nombre )etM0OS del e.uipo .ue se especific%
durante la instalaci%n.
2 Autenticacin de assport. &n este modo de autenticaci%n, AS".)&* utili/a
los ser+icios de autenticaci%n centrali/ados de Microsoft "assport. AS".)&*
proporciona una pr#ctica funcionalidad de empa.uetador expuesta por el Jit
de desarrollo de softIare 6SDJ7 de Microsoft "assport, .ue debe estar
instalado en el ser+idor (eb.
2 Autenticacin mediante 0ormularios. &ste enfo.ue utili/a la redirecci%n de
cliente para en+iar usuarios no autenticados a un formulario L*M3
especificado .ue les permite introducir sus credenciales 6normalmente el
nombre de usuario y la contrase4a7. A continuaci%n, se +alidan las
credenciales y se $enera y de+uel+e al cliente un +ale de autenticaci%n. &l +ale
de autenticaci%n mantiene la identidad del usuario y, opcionalmente, una lista
de funciones de las .ue es miembro el usuario durante toda la sesi%n del
mismo.
3a autenticaci%n mediante Rormularios se utili/a en ocasiones s%lo para la
personali/aci%n de sitios (eb. &n este caso, no necesitar# escribir demasiado
c%di$o personali/ado, puesto .ue AS".)&* reali/a la mayor parte del proceso
de forma autom#tica con una confi$uraci%n sencilla. &n los escenarios de
personali/aci%n, la cookie s%lo necesita contener el nombre de usuario.
Nota/ la autenticaci%n mediante Rormularios en+'a el nombre de usuario y la
contrase4a al ser+idor (eb en texto sin formato. "or lo tanto, deber# utili/ar la
autenticaci%n mediante Rormularios con-untamente con un canal prote$ido con
SS3. "ara mantener la protecci%n de la cookie de autenticaci%n transmitida en
peticiones posteriores, deber# considerar la posibilidad de utili/ar SS3 en
todas las p#$inas de la aplicaci%n y no s%lo la p#$ina de inicio de sesi%n.
2 Ninguna. 0ndica .ue no desea autenticar usuarios o .ue utili/a un protocolo de
autenticaci%n personali/ado.

M.s informacin
"ara obtener m#s informaci%n acerca de la autenticaci%n de AS".)&*, consulte el
cap'tulo @, BSe$uridad de AS".)&*B.
Autenticacin de la aplicacin de Servicios Empresariales
3a autenticaci%n de la aplicaci%n de Ser+icios &mpresariales se lle+a a cabo
mediante la infraestructura de transporte de llamada a procedimiento remoto 6<"C7
subyacente, .ue a su +e/ utili/a la 0nterfa/ del pro+eedor de ser+icios de se$uridad
6SS"0, Security Serice Proider Interface7 del sistema operati+o. "ara autenticar los
clientes de aplicaciones de Ser+icios &mpresariales, puede utili/arse la autenticaci%n
Jerberos o )*3M.
9n componente re+isado puede estar alo-ado en una aplicaci%n de biblioteca o de
ser+idor. 3as aplicaciones de biblioteca se alo-an en procesos de cliente y, por lo
tanto, asumen la identidad del cliente. 3as aplicaciones de ser+idor se e-ecutan en
procesos de ser+idor independientes con su propia identidad. "ara obtener m#s
informaci%n acerca de las identidades, consulte la secci%n B0dentidades y principalesB
m#s adelante en este cap'tulo.
3as llamadas entrantes a un componente re+isado pueden autenticarse en los
si$uientes ni+eles1
1 redeterminado1 se utili/a el ni+el de autenticaci%n predeterminado para el
pa.uete de se$uridad.
1 Ninguno1 no se lle+a a cabo nin$una autenticaci%n.
1 Cone2in1 la autenticaci%n se reali/a s%lo cuando se establece la conexi%n.
1 %lamada1 la autenticaci%n se lle+a a cabo al inicio de cada llamada a
procedimiento remoto.
1 a,uete1 autentica y +erifica la recepci%n de todos los datos de llamada.
1 (ntegridad de pa,uete1 autentica y +erifica .ue no se ha modificado nin$5n
dato durante la transmisi%n.
1 rivacidad de pa,uete1 autentica y cifra el pa.uete, incluidos los datos y la
identidad y la firma del remitente.

M.s informacin
"ara obtener m#s informaci%n acerca de la autenticaci%n de la aplicaci%n de
Ser+icios &mpresariales, consulte el cap'tulo C, BSe$uridad de la aplicaci%n de
Ser+icios &mpresarialesB.
Autenticacin de S$% Server
S>3 Ser+er puede autenticar usuarios mediante la autenticaci%n de (indoIs 6)*3M
o Jerberos7 o utili/ar su propio es.uema de autenticaci%n inte$rado, .ue se
denomina autenticaci%n de S>3. &st#n disponibles estas dos opciones1
2 S$% Server # Windo-s. 3os clientes pueden conectarse a una instancia de
Microsoft S>3 Ser+er mediante la autenticaci%n de S>3 Ser+er o la
autenticaci%n de (indoIs. Se denomina en ocasiones autenticaci%n de modo
mixto.
2 Slo Windo-s. &l usuario debe conectarse a la instancia de Microsoft S>3
Ser+er mediante la autenticaci%n de (indoIs.

M.s informacin
3as +enta-as relati+as de cada enfo.ue se tratan en el cap'tulo :, BSe$uridad del
acceso a datosB.
Autori3acin
.)&* RrameIork en (indoIs !!! proporciona las si$uientes opciones de
autori/aci%n1
2 Opciones de autori/aci%n de AS".)&*
2 Autori/aci%n de la aplicaci%n de Ser+icios &mpresariales
2 Autori/aci%n de S>3 Ser+er

"pciones de autori3acin de AS.NET
3as opciones de autori/aci%n de AS".)&* pueden utili/arlas las aplicaciones (eb
AS".)&*, los ser+icios (eb y los componentes remotos. AS".)&* proporciona las
si$uientes opciones de autori/aci%n1
2 Autori3acin de direcciones 4R%. Se trata de un mecanismo de autori/aci%n
establecido por opciones de confi$uraci%n de archi+os de confi$uraci%n de
e.uipos y aplicaciones. 3a autori/aci%n de direcciones 9<3 permite restrin$ir
el acceso a determinados archi+os y carpetas del espacio de nombres del
0dentificador de recursos uniforme 69<07 de la aplicaci%n. "or e-emplo, puede
dene$ar o permitir el acceso de forma selecti+a de determinados usuarios a
carpetas o archi+os espec'ficos 6indicados por medio de una direcci%n 9<37.
*ambi,n puede restrin$ir el acceso en funci%n de la pertenencia a funciones
del usuario y el tipo de +erbo L**" utili/ado para emitir una petici%n 6T&*,
"OS*, etc.7.
3a autori/aci%n de direcciones 9<3 re.uiere una identidad autenticada. "ara
obtenerla, puede utili/arse un es.uema de autenticaci%n de (indoIs o
basado en +ales.
2 Autori3acin de arc5ivos. 3a autori/aci%n de archi+os se aplica solamente si
se utili/a uno de los mecanismos de autenticaci%n de (indoIs proporcionados
por 00S para autenticar llamadores y si AS".)&* se ha confi$urado para utili/ar
la autenticaci%n de (indoIs.
"uede utili/arla para restrin$ir el acceso a archi+os espec'ficos de un ser+idor
(eb. 3os permisos de acceso los determinan las listas de control de acceso
de (indoIs ad-untas a los archi+os.
2 eticiones de permisos de principales. 3as peticiones de permisos de
principales pueden utili/arse 6mediante declaraciones o pro$ramaci%n7 como
mecanismo de control de acceso adicional espec'fico. "ermiten controlar el
acceso a clases, m,todos o blo.ues de c%di$o indi+iduales en funci%n de la
identidad y la pertenencia a $rupos de cada usuario.
2 0unciones de .NET. 3as funciones de .)&* sir+en para a$rupar usuarios .ue
tienen los mismos permisos en la aplicaci%n. Conceptualmente, se parecen a
las implementaciones anteriores basadas en funciones, como por e-emplo, los
$rupos de (indoIs y las funciones de COMD. )o obstante, a diferencia de
estos enfo.ues pre+ios, las funciones de .)&* no re.uieren identidades de
(indoIs autenticadas y pueden utili/arse con es.uemas de autenticaci%n
basados en +ales tales como la autenticaci%n mediante Rormularios.
3as funciones de .)&* pueden ser+ir para controlar el acceso a recursos y
operaciones y pueden confi$urarse mediante declaraciones y mediante
pro$ramaci%n.

M.s informacin
"ara obtener m#s informaci%n acerca de la autori/aci%n de AS".)&*, consulte el
cap'tulo @, BSe$uridad de AS".)&*B.
Autori3acin de la aplicacin de Servicios Empresariales
&l acceso a la funcionalidad de los componentes re+isados de aplicaciones de
Ser+icios &mpresariales depende de la pertenencia a funciones de los Ser+icios
&mpresariales. &stas funciones son distintas de las funciones de .)&* y pueden
contener cuentas de $rupo o de usuario de (indoIs. 3a pertenencia a funciones se
define en el cat#lo$o COMD y se administra con la herramienta Ser+icios de
componente.
M.s informacin
"ara obtener m#s informaci%n acerca de la autori/aci%n de la aplicaci%n de Ser+icios
&mpresariales, consulte el cap'tulo C, BSe$uridad de la aplicaci%n de Ser+icios
&mpresarialesB.
Autori3acin de S$% Server
S>3 Ser+er acepta permisos espec'ficos .ue pueden aplicarse a ob-etos de base de
datos indi+iduales. 3os permisos pueden estar basados en la pertenencia a
funciones 6S>3 Ser+er proporciona funciones fi-as de base de datos, funciones
definidas por el usuario y funciones de aplicaci%n7 o se puede conceder permiso a
cuentas de $rupo y de usuario indi+iduales de (indoIs.
M.s informacin
"ara obtener m#s informaci%n acerca de la autori/aci%n de S>3 Ser+er, consulte el
cap'tulo :, BSe$uridad del acceso a datosB.
6uardianes # puertas
&l t,rmino guardi+n se utili/a en el resto del documento para identificar la tecnolo$'a
de la .ue depende una puerta. 9na puerta representa un punto de control de acceso
6.ue prote$e un recurso7 de una aplicaci%n. "or e-emplo, un recurso podr'a ser una
operaci%n 6representada por un m,todo de un ob-eto7 o un recurso de base de datos
o de sistema de archi+os.
*odas las tecnolo$'as b#sicas mencionadas anteriormente proporcionan $uardianes
para la autori/aci%n de acceso. 3as peticiones deben pasar por distintas puertas
antes de permit'rseles el acceso a la operaci%n o al recurso solicitado. A
continuaci%n, se describen las puertas por las .ue deben pasar las solicitudes.
2 00S proporciona una puerta cuando se autentican usuarios 6es decir, cuando de
deshabilita la autenticaci%n an%nima7. 3os permisos (eb de 00S pueden
utili/arse como mecanismo de control de acceso para restrin$ir la capacidad
de acceso de los usuarios (eb a carpetas y archi+os espec'ficos. A diferencia
de los permisos de archi+os )*RS, los permisos (eb se aplican a todos los
usuarios (eb, en lu$ar de a usuarios o $rupos indi+iduales. 3os permisos de
archi+os )*RS ofrecen toda+'a m#s restricciones para recursos (eb tales
como las p#$inas (eb, los archi+os de ima$en, etc. &stas restricciones se
aplican a usuarios o $rupos indi+iduales.
00S comprueba primero los permisos (eb y despu,s los permisos de archi+os
)*RS. &l usuario debe estar autori/ado por ambos mecanismos para poder
obtener acceso al archi+o o carpeta. Si se produce un error en la
comprobaci%n de permisos (eb, 00S de+uel+e una respuesta L**" K!N A
Acceso prohibido, mientras .ue si se produce un error en la comprobaci%n de
permisos )*RS, 00S de+uel+e L**" K!: A Acceso dene$ado.
2 AS".)&* proporciona +arias puertas confi$urables y pro$ramables. &ntre ellas
fi$uran la autori/aci%n de direcciones 9<3, la autori/aci%n de archi+os, las
peticiones de permisos de principales y las funciones de .)&*.
2 &l $uardi#n de la aplicaci%n de Ser+icios &mpresariales utili/a funciones de
Ser+icios &mpresariales para autori/ar el acceso a la funcionalidad
empresarial.
2 S>3 Ser+er !!! incluye +arias puertas con inicios de sesi%n en el ser+idor,
inicios de sesi%n en la base de datos y permisos de ob-etos de base de datos.
2 (indoIs !!! incluye puertas .ue utili/an AC3 conectadas a recursos
se$uros.

&n resumen, los $uardianes lle+an a cabo la autori/aci%n en funci%n de la identidad
del usuario o del ser+icio .ue llama a la puerta e intenta obtener acceso a un recurso
espec'fico. 3a +enta-a del uso de +arias puertas reside en un mayor ni+el de
se$uridad $racias a la m5ltiples l'neas de defensa .ue proporciona. 3a tabla .
resume el con-unto de $uardianes e identifica para cada uno de ellos las puertas de
las .ue se encar$an.
*abla .1 ,esponsa-ilidades de los guardianes y las puertas .ue proporcionan
Tuardi#n "uertas
Sistema operati+o
(indoIs
Derechos de inicio de sesi%n 6positi+os y ne$ati+os, como por
e-emplo BDene$ar el inicio de sesi%n localmenteB7
Otros pri+ile$ios 6por e-emplo BActuar como parte del sistema
operati+o7
Controles de acceso de recursos prote$idos como el re$istro y
el sistema de archi+os 3os controles de acceso utili/an AC3
conectadas a los recursos se$uros .ue especifican los usuarios
.ue pueden o no pueden tener acceso al recurso y tambi,n los
tipos de operaciones .ue pueden reali/ar.
Riltrado *C"E0"
Se$uridad 0"
00S Autenticaci%n 6an%nima, b#sica, impl'cita, inte$rada,
certificados7
<estricciones de direcciones 0" y nombres de dominio 6pueden
utili/arse como l'nea de defensa adicional, pero no se debe
depender de ellas debido a la facilidad con .ue se pueden
falsificar las direcciones 0"7
"ermisos (eb
"ermisos )*RS
AS".)&* Autori/aci%n de direcciones 9<3
Autori/aci%n de archi+os
"eticiones de permisos de principales
Runciones de .)&*
Ser+icios Autenticaci%n de (indoIs 6)*3M E Jerberos7
&mpresariales Runciones de Ser+icios &mpresariales 6COMD7
)i+eles de suplantaci%n
Ser+icios (eb 9tili/a puertas proporcionadas por 00S y AS".)&*.
<emotin$ 9tili/a puertas proporcionadas por el host. &n caso de estar
alo-ado en AS".)&*, utili/a las puertas proporcionadas por 00S y
AS".)&*. Si est# alo-ado en un ser+icio de (indoIs, deber#
desarrollar una soluci%n personali/ada.
ADO.)&* Cadenas de conexi%n. 3as credenciales pueden ser expl'citas o
puede utili/ar autenticaci%n de (indoIs 6por e-emplo, si se
conecta a S>3 Ser+er7.
S>3 Ser+er 0nicios de sesi%n en el ser+idor
0nicios de sesi%n en la base de datos
"ermisos de ob-etos de base de datos

Al usar las distintas puertas en todos los ni+eles de la aplicaci%n, puede filtrar
usuarios .ue deben poder tener acceso a los recursos de ser+idor. &l alcance del
acceso se +e reducido por la presencia de puertas sucesi+as .ue se +uel+en cada
+e/ m#s $ranulares a medida .ue la petici%n pasa por la aplicaci%n a los recursos de
ser+idor.
&xamine el e-emplo de aplicaci%n basado en 0nternet con 00S .ue se muestra en la
ilustraci%n .K.
!"nsert #gure$ C%&2 . /ate0eeper 1iltering.gi*+
0lustraci%n .K
Filtrado de usuarios con guardianes
3a ilustraci%n .K demuestra lo si$uiente1
2 "uede deshabilitar la autenticaci%n an%nima en 00S. Como consecuencia, s%lo
se permite el acceso de cuentas .ue puede autenticar 00S. De este modo, se
podr'a reducir el n5mero de posibles usuarios a :!.!!!.
2 A continuaci%n, se utili/a la autori/aci%n de direcciones 9<3 en AS".)&*, lo
.ue podr'a disminuir el n5mero de usuarios a :.!!!.
2 3a autori/aci%n de archi+os podr'a reducir el acceso toda+'a m#s a :!!
usuarios.
2 Rinalmente, el c%di$o de la aplicaci%n (eb podr'a permitir el acceso al recurso
restrin$ido solamente a :! usuarios en funci%n de la pertenencia a funciones
espec'ficas.

(dentidades # principales
3a se$uridad de .)&* se compone de capas superpuestas sobre la se$uridad de
(indoIs. &l concepto de se$uridad centrado en los usuarios, en (indoIs, se basa
en el contexto de se$uridad proporcionado por una sesi%n de inicio, mientras .ue la
se$uridad de .)&* se basa en ob-etos (rincipal e ((dentit#.
&n la pro$ramaci%n de (indoIs, cuando se desea conocer el contexto de se$uridad
en el .ue se e-ecuta el c%di$o, se consulta la identidad del propietario del proceso o
del subproceso en e-ecuci%n. Con la pro$ramaci%n de .)&*, si desea consultar el
contexto de se$uridad del usuario actual, tendr# .ue recuperar el ob-eto (rincipal
actual de T5read.Currentrincipal.
.)&* RrameIork utili/a ob-etos de identidad y de principal para representar a los
usuarios mientras se e-ecuta c%di$o de .)&*8 ambos tipos de ob-etos constituyen la
espina dorsal de la autori/aci%n basada en funciones de .)&*.
3os ob-etos de identidad y de principal implementan las interfaces ((dentit# e
(rincipal respecti+amente. &stas interfaces se definen en el espacio de nombres
S#stem.Securit#.rincipal. 3as interfaces comunes permiten a .)&* RrameIork
tratar a los ob-etos de identidad y de principal de modo polim%rfico,
independientemente de la informaci%n de implementaci%n subyacente.
3a interfa/ (rincipal le permite probar la pertenencia a funciones mediante un
m,todo (s(nRole y proporciona adem#s acceso a un ob-eto ((dentit# asociado.
public interface IPrincipal
{
bool IsInRole( string role );
IIdentity Identity {get;}
}
3a interfa/ ((dentit# proporciona informaci%n adicional de autenticaci%n, como el
nombre y el tipo de autenticaci%n.
public interface IIdentity
{
string authenticationType {get;}
bool IsAuthenticated {get;}
string Name {get;}
}
.)&* RrameIork incluye +arias implementaciones concretas de (rincipal e
((dentit#, tal y como se muestra en la ilustraci%n .P, .ue se describen en las
si$uientes secciones.
!"nsert #gure$ C%&2 . "Principal an ""entity "mplementations.gi*+
0lustraci%n .P
Clases de implementacin de IPrincipal e IIdentity
Windo-srincipal # Windo-s(dentit#
3a +ersi%n de .)&* de un contexto de se$uridad de (indoIs est# di+idida en dos
clases1
2 Windo-srincipal. &sta clase almacena las funciones asociadas con el
usuario actual de (indoIs. 3a implementaci%n Windo-srincipal trata los
$rupos de (indoIs como funciones. &l m,todo (rncipal.(s(nRole de+uel+e
BtrueB o BfalseB en funci%n de la pertenencia del usuario a $rupos de (indoIs.
2 Windo-s(dentit#. &sta clase almacena la parte de la identidad del contexto
de se$uridad del usuario actual y puede obtenerse mediante el m,todo
est#tico Windo-s(dentit#.6etCurrent)*. Uste de+uel+e un ob-eto
Windo-s(dentit# con una propiedad To+en .ue a su +e/ de+uel+e, al testi$o
de acceso asociado con el subproceso en e-ecuci%n, un +alor de tipo (nttr
.ue representa un identificador de (indoIs. &ste testi$o puede pasarse
entonces a funciones nati+as de la interfa/ de pro$ramaci%n de aplicaciones
6A"07 de (inN=, como 6etTo+en(nformation, SetTo+en(nformation,
C5ec+To+enMembers5ip, etc., para recuperar informaci%n de se$uridad
acerca del testi$o.
Nota/ el m,todo est#tico Windo-s(dentit#.6etCurrent)* de+uel+e la identidad
del subproceso en e-ecuci%n, .ue podr'a tratarse o no de una suplantaci%n. Se
parece en este sentido a la A"0 6et4serName de (inN.

6enericrincipal # ob7etos de identidad asociados
&stas implementaciones son muy sencillas y las utili/an las aplicaciones .ue no usan
la autenticaci%n de (indoIs y cuando la aplicaci%n no necesita representaciones
comple-as de un principal. "ueden crearse f#cilmente mediante pro$ramaci%n y, por
lo tanto, deber# existir una cierto $rado de confian/a cuando una aplicaci%n use un
ob-eto 6enericrincipal.
Si +a a basarse en el uso del m,todo (s(nRole de 6enericrincipal para tomar
decisiones de autori/aci%n, deber# confiar en la aplicaci%n .ue le en+'a el ob-eto
6enericrincipal. &sto contrasta con el uso de ob-etos Windo-srincipal, con los
.ue debe confiar en .ue el sistema operati+o proporcione un ob-eto
Windo-srincipal +#lido con una identidad autenticada y nombres de $rupo o de
funci%n +#lidos.
3os tipos si$uientes de ob-eto de identidad pueden asociarse a la clase
6enericrincipal1
2 0orms(dentit#. &sta clase representa a una identidad .ue se ha autenticado
con la autenticaci%n mediante Rormularios. Contiene un
0ormsAut5enticationTic+et .ue a su +e/ contiene informaci%n acerca de la
sesi%n de autenticaci%n del usuario.
2 assport(dentit#. &sta clase representa a una identidad .ue se ha
autenticado mediante la autenticaci%n de "assport y .ue contiene informaci%n
de perfil de "assport.
2 6eneric(dentit#. &sta clase representa a un usuario l%$ico .ue no est#
asociado a nin$una tecnolo$'a de sistema operati+o concreta y .ue se suele
utili/ar de forma con-unta con mecanismos de autenticaci%n y autori/aci%n
personali/ados.

AS.NET # 8ttpConte2t.4ser
)ormalmente, T5read.Currentrincipal se comprueba en el c%di$o de .)&* antes
de tomar cual.uier decisi%n de autori/aci%n. )o obstante, AS".)&* proporciona el
contexto de se$uridad del usuario autenticado mediante 8ttpConte2t.4ser.
&sta propiedad acepta y de+uel+e una interfa/ (rincipal. 3a propiedad contiene un
usuario autenticado para la petici%n actual. AS".)&* recupera 8ttpConte2t.4ser
cuando toma decisiones de autori/aci%n.
Al utili/ar la autenticaci%n de (indoIs, el m%dulo de autenticaci%n de (indoIs
construye de forma autom#tica un ob-eto Windo-srincipal y lo almacena en
8ttpConte2t.4ser. Si utili/a otros mecanismos de autenticaci%n, como Rormularios o
"assport, deber# construir un ob-eto 6enericrincipal y almacenarlo en
8ttpConte2t.4ser.
(dentidades de AS.NET
&n cual.uier punto de la e-ecuci%n de una aplicaci%n (eb AS".)&*, pueden estar
presentes +arias identidades durante una sola petici%n. &ntre estas identidades,
fi$uran1
1 8ttpConte2t.4ser de+uel+e un ob-eto (rincipal .ue contiene informaci%n de
se$uridad para la petici%n (eb actual. Se trata del cliente (eb autenticado.
2 Windo-s(dentit#.6etCurrent)* de+uel+e la identidad del contexto de
se$uridad del subproceso de (inN en e-ecuci%n. &sta identidad es siempre
AS")&* de forma predeterminada, .ue es la cuenta predeterminada .ue se
utili/a para e-ecutar aplicaciones (eb AS".)&*. )o obstante, si la aplicaci%n
(eb se ha confi$urado para la suplantaci%n, la identidad representa al usuario
autenticado 6.ue es 09S<S&>90"O, si est# acti+ada la autenticaci%n an%nima
de 00S7.
2 T5read.Currentrincipal de+uel+e el principal del subproceso de .)&* en
e-ecuci%n .ue se superpone al subproceso de (inN.

M.s informacin
2 "ara +er un an#lisis detallado de la identidad de AS".)&* para una
combinaci%n de confi$uraciones de aplicaciones (eb 6con y sin suplantaci%n7,
consulte BMatri/ de identidades de AS".)&*B en la secci%n B<eferenciaB de
esta $u'a.
2 "ara obtener m#s informaci%n acerca de c%mo crear su propia implementaci%n
de (rincipal, consulte el cap'tulo @, BSe$uridad de AS".)&*B, y BC%mo
implementar 0"rincipalB en la secci%n B<eferenciaB de esta $u'a.

Remoting # Servicios Web
&n la +ersi%n actual de .)&* RrameIork, <emotin$ y los ser+icios (eb no tienen su
propio modelo de se$uridad. Ambos heredan las caracter'sticas de se$uridad de 00S
y AS".)&*.
Aun.ue la ar.uitectura de remotin$ no tiene inte$rada la se$uridad, s' .ue se dise4%
teniendo en cuenta la se$uridad. 3a incorporaci%n de determinados ni+eles de
se$uridad en las aplicaciones de remotin$ depende del desarrollador o del
administrador. &l paso de ob-etos de principal a tra+,s de los l'mites de remotin$
depende de la ubicaci%n del cliente y del ob-eto remoto. "or e-emplo1
2 Remoting en el mismo proceso. Cuando remotin$ se utili/a entre ob-etos del
mismo dominio o dominios de aplicaci%n o entre dominios independientes, la
infraestructura de remotin$ copia en el contexto del receptor una referencia al
ob-eto (rincipal asociado con el contexto del llamador.
2 Remoting entre procesos. &n este caso, los ob-etos (rincipal no se
transmiten de un proceso a otro. 3as credenciales utili/adas para construir el
ob-eto (rincipal ori$inal deben transmitirse al proceso remoto, .ue puede
estar ubicado en un e.uipo independiente. &sto permite al e.uipo remoto
construir un ob-eto (rincipal adecuado basado en las credenciales
suministradas.

Conclusin
&ste cap'tulo ha presentado el con-unto completo de opciones de autenticaci%n y
autori/aci%n proporcionadas por las distintas tecnolo$'as relacionadas con .)&*.
Tracias al uso de +arios $uardianes en la aplicaci%n (eb .)&*, podr# implementar
una estrate$ia de se$uridad defensi+a a+an/ada. "ara resumir1
2 3as aplicaciones AS".)&* pueden utili/ar las caracter'sticas de se$uridad
existentes proporcionadas por (indoIs e 00S.
2 "uede utili/ar una combinaci%n de SS3 e 0"Sec para proporcionar
comunicaciones se$uras entre las capas de una aplicaci%n (eb .)&*, como
por e-emplo, del explorador a la base de datos.
2 9tilice SS3 para prote$er las credenciales de texto no cifrado .ue se
transmiten por la red al utili/ar la autenticaci%n b#sica o mediante Rormularios.
2 .)&* representa a los usuarios .ue se han identificado con la autenticaci%n de
(indoIs mediante una combinaci%n de las clases Windo-srincipal y
Windo-s(dentit#.
2 3as clases 6enericrincipal y 6eneric(dentit# o 0orms(dentit# sir+en para
representar a usuarios .ue se han identificado con es.uemas de autenticaci%n
distintos de los de (indoIs, como la autenticaci%n mediante Rormularios.
2 "uede crear sus propias implementaciones de principal e identidad mediante
la creaci%n de clases .ue implementan (rincipal e ((dentit#.
2 &n las aplicaciones (eb AS".)&*, el ob-eto (rincipal .ue representa al
usuario autenticado se asocia a la petici%n (eb L**" actual mediante la
propiedad 8ttpConte2t.4ser.
2 3as puertas son puntos de control de acceso de la aplicaci%n a tra+,s de las
cuales los usuarios autori/ados pueden obtener acceso a recursos o ser+icios.
3os $uardianes se encar$an de controlar el acceso a las puertas.
2 9tilice +arios $uardianes para proporcionar una estrate$ia defensi+a a+an/ada.

&l cap'tulo si$uiente 6Cap'tulo N A BAutenticaci%n y autori/aci%nB7 proporciona
informaci%n adicional para ayudarle a seleccionar la estrate$ia de autenticaci%n y
autori/aci%n m#s adecuada a su escenario de aplicaciones concreto.

También podría gustarte