Vous êtes sur la page 1sur 17

Captulo 13: Solucionar

problemas de seguridad
Crear aplicaciones ASP.NET seguras
Autenticacin, autoriacin ! comunicacin
segura
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
&n esta secci%n se presenta un con'unto de su$erencias para la soluci%n de problemas,
t(cnicas y herramientas )ue facilitan el dia$n%stico de problemas de se$uridad.
Contenido
"roceso de soluci%n de problemas
Solucionar problemas de autenticaci%n
Solucionar problemas de autori*aci%n
AS".+&,
Determinar la identidad
.+&, -emotin$
SS.
/"Sec
Auditor0a y re$istro
1erramientas para solucionar problemas
&n este cap0tulo se presenta un proceso para solucionar problemas y se proporcionan
di2ersas t(cnicas y herramientas )ue puede utili*ar para dia$nosticar problemas de
se$uridad.
3
Proceso de solucin de problemas
&l si$uiente enfo)ue ofrece resultados satisfactorios para solucionar problemas de
se$uridad y de contexto de se$uridad.
3. &mpiece por describir el problema de forma muy clara. Ase$4rese de )ue sabe
exactamente )u( tiene )ue suceder, )u( est# sucediendo y, lo m#s importante,
cu#les son los pasos detallados )ue hay )ue se$uir para reproducir el problema.
. A0sle el problema de la forma m#s precisa )ue pueda. /ntente determinar en )u(
fase del procesamiento de una solicitud se produce el problema. 5Se trata de un
problema de cliente o de un problema de ser2idor6 5Cree )ue es un error de
confi$uraci%n o de c%di$o6 /ntente aislar el problema )uitando capas de la
aplicaci%n. "or e'emplo, considere la posibilidad de crear una aplicaci%n cliente de
prueba basada en consola para reempla*ar a aplicaciones cliente m#s comple'as.
7. Analice los mensa'es de error y los datos de se$uimiento de la pila 8si est#n
disponibles9. .o primero )ue debe hacer siempre es consultar los re$istros de
e2entos y de se$uridad de :indo;s.
<. Consulte Microsoft =no;led$e >ase para 2er si el problema est# documentado en
al$4n art0culo de =no;led$e >ase.
?. Muchos problemas de se$uridad est#n relacionados con la identidad )ue se utili*a
para e'ecutar el c%di$o@ la identidad no siempre es la )ue se espera )ue e'ecute el
c%di$o. Atilice los e'emplos de c%di$o incluidos en la subsecci%n BDeterminar la
identidadB de la secci%n BAS".+&,B de este cap0tulo para recuperar y dia$nosticar
la informaci%n de identidad. Si las identidades obtenidas son incorrectas,
compruebe la confi$uraci%n de los archi2os :eb.confi$ y Machine.confi$, y
compruebe tambi(n la confi$uraci%n de autenticaci%n de //S para el directorio
2irtual de la aplicaci%n. Al$unos factores )ue pueden afectar a la identidad en una
aplicaci%n :eb AS".+&, sonC
D &l elemento EprocessModelF del archi2o Machine.confi$ se utili*a para
determinar la identidad del proceso de traba'o de AS".+&, 8aspnetG;p.exe9.
D Confi$uraci%n de autenticaci%n en //S.
D Confi$uraci%n de autenticaci%n en el archi2o :eb.confi$.
D Confi$uraci%n de suplantaci%n en el archi2o :eb.confi$.

H. Aun)ue pare*ca )ue se est# utili*ando y mostrando la confi$uraci%n correcta, es
posible )ue desee confi$urar expl0citamente un archi2o :eb.confi$ para la
aplicaci%n 8en el directorio 2irtual de la aplicaci%n9 para ase$urarse de )ue no
hereda la confi$uraci%n de una aplicaci%n de ni2el superior 8tal 2e* de un archi2o
:eb.confi$ de un directorio 2irtual de ni2el superior9 o del archi2o Machine.confi$.
I. Atilice las herramientas para solucionar problemas descritas en la secci%n
B1erramientas para solucionar problemasB, m#s adelante en este cap0tulo, para
obtener m#s datos de dia$n%stico.
J. /ntente reproducir el problema en otro e)uipo. &sto puede ayudarle a aislar
problemas relacionados con el entorno y le indicar# si el problema est# en el
c%di$o o en la confi$uraci%n de la aplicaci%n.
K. Si la aplicaci%n tiene problemas de acceso a un recurso remoto, es posible )ue
ten$a problemas de suplantaci%n o dele$aci%n. /dentifi)ue el contexto de
se$uridad )ue se est# utili*ando para tener acceso al recurso remoto y, si utili*a
autenticaci%n de :indo;s, compruebe )ue el e)uipo remoto puede autenticar la
cuenta )ue proporciona el contexto 8por e'emplo, una cuenta de proceso9.

3!. >us)ue en $rupos de noticias para 2er si ya se ha detectado el problema. Si no


encuentra nada, en20e un mensa'e al $rupo de noticias para 2er si al$4n miembro
de la comunidad de desarrollo puede ayudarle.
&l $rupo de noticias en l0nea sobre AS".+&, est# en la direcci%nC
httpCLLcommunities.microsoft.comLne;s$roupsLdefault.asp6
icpMmscomNslcidMASNne;s$roupMmicrosoft.public.dotnet.frame;ork.aspnet
33. .lame al Centro de soporte t(cnico de Microsoft. "ara obtener informaci%n
detallada, consulte Microsoft =no;led$e >ase.

Buscar soluciones de implementacin
Si tiene un problema espec0fico y necesita comprender la me'or la manera de afrontarlo,
utilice el si$uiente enfo)ue.
D >us)ue el escenario 8o un escenario similar9 en los cap0tulos ?, H y I de este
manual.
D Consulte la documentaci%n y los e'emplos de MSD+ .ibrary.
D Visite uno de los muchos sitios :eb de informaci%n sobre AS".+&,, comoC
D ;;;.asp.net
D ;;;.$otdotnet.com
D ;;;.asptoday.com
D >us)ue un art0culo de procedimiento apropiado en Microsoft =no;led$e >ase.
D &n20e pre$untas a $rupos de noticias.
D .lame al Centro de soporte t(cnico de Microsoft.

Solucionar problemas de autenticacin
&l primer paso para solucionar problemas de autenticaci%n es distin$uir entre los
mensa'es de error de autenticaci%n de //S y los de AS".+&,.
D Si recibe un mensa'e de error de //S, no 2er# un c%di$o de error de AS".+&,.
Compruebe la confi$uraci%n de autenticaci%n de //S para el directorio 2irtual de la
aplicaci%n.
Cree una p#$ina 1,M. simple de prueba para )uitar AS".+&, de la soluci%n.
D Si recibe un mensa'e de error de AS".+&,, re2ise la confi$uraci%n de
autenticaci%n AS".+&, del archi2o :eb.confi$ de la aplicaci%n.

Problemas de autenticacin de IIS
Como el proceso de autenticaci%n se inicia con //S, ase$4rese de )ue esta aplicaci%n
est# correctamente confi$urada.
D Ase$4rese de )ue se est# autenticando un usuario. Considere la posibilidad de
habilitar 4nicamente la autenticaci%n b#sica e iniciar sesi%n manualmente para
ase$urarse de )ue conoce el principal )ue se est# autenticando. /nicie una sesi%n
con un nombre de usuario de la forma BdomainOusernameB.
D -einicie //S para ase$urarse de )ue las sesiones iniciadas no se est#n
almacenando en cach(. 8&'ecute //S-eset.exe para reiniciar //S9.
D Cierre el explorador entre pruebas sucesi2as para ase$urarse de )ue el
explorador no almacena en cach( las credenciales.
D Si est# utili*ando la autenticaci%n inte$rada de :indo;s, compruebe la
confi$uraci%n del explorador@ para ello, si$a los pasos si$uientes.
7
D &n el men4 Herramientas, eli'a Opciones de Internet y, a continuaci%n, ha$a
clic en la ficha Opciones avanzadas. Acti2e Habilitar autenticacin
integrada de Windows re!uiere reinicio". A continuaci%n, reinicie el
explorador.
D &n el men4 Herramientas, ha$a clic en Opciones de Internet y, a
continuaci%n, eli'a la ficha Seguridad. Seleccione la *ona de contenido :eb
apropiada y ha$a clic en #ivel personalizado. &n $utenticacin de
usuarios, ase$4rese de )ue el 2alor de /nicio de sesi%n est# establecido
correctamente para la aplicaci%n. &s posible )ue desee acti2ar Preguntar por
el nombre de usuario % la contrase&a para ase$urarse de )ue est#
proporcionando credenciales expl0citas para cada prueba y )ue no se est#
almacenando nada en cach(.
D Si el explorador le pide sus credenciales, puede si$nificar )ue ha iniciado una
sesi%n en un dominio )ue el ser2idor no reconoce 8por e'emplo, puede haber
iniciado una sesi%n en el e)uipo local como administrador9.
D Cuando explora una aplicaci%n en el e)uipo local, se utili*a el testi$o de inicio
de sesi%n interacti2o, ya )ue est# conectado de forma interacti2a al ser2idor
:eb.

D "ruebe con una p#$ina :eb sencilla )ue muestre la informaci%n del contexto de
se$uridad. &ncontrar# una p#$ina de e'emplo m#s adelante en este cap0tulo.
Si esto no funciona, habilite la auditor0a en el archi2o solicitado y compruebe el
re$istro de e2entos de se$uridad. ,ambi(n debe habilitar la auditor0a con la
Directi2a de $rupo 8mediante la herramienta Directi2a de se$uridad local o la
herramienta Directi2a de se$uridad de dominio9. &xamine el re$istro para 2er si
hay nombres de usuario no 2#lidos o intentos de acceso a ob'etos no 2#lidos.
D Si la aplicaci%n :eb tiene problemas de acceso a un recurso remoto, habilite
la auditor0a en el recurso remoto.
D &n $eneral, un nombre de usuario o una contrasePa no 2#lidos si$nifican )ue
la cuenta utili*ada para e'ecutar AS".+&, en el ser2idor :eb no se puede
autenticar correctamente en el e)uipo remoto. Si est# intentando tener acceso
a recursos remotos con la cuenta AS"+&, local predeterminada, compruebe
)ue ha duplicado la cuenta 8y la contrasePa9 en el e)uipo remoto.
D Si 2e un mensa'e de error )ue indica )ue no se ha podido iniciar una sesi%n
correctamente para la cuenta AA,1O-/,QOA+O+QMOAS de +,, esto indica
)ue la identidad en el ser2idor :eb no tiene credenciales de red y est#
intentando tener acceso al e)uipo remoto.
/dentifi)ue la cuenta )ue utili*a la aplicaci%n :eb para tener acceso a un
recurso remoto y 2ea si tiene credenciales de red. Si la aplicaci%n :eb utili*a
suplantaci%n, re)uiere dele$aci%n =erberos 8con cuentas confi$uradas de la
forma apropiada9 o autenticaci%n b#sica en el ser2idor :eb.

'tilizar la autenticacin de Windows
Si el elemento Eaut(enticationF del archi2o :eb.confi$ de la aplicaci%n est#
confi$urado para la autenticaci%n de :indo;s, utilice las l0neas de c%di$o si$uientes en
la aplicaci%n :eb para comprobar si se est# utili*ando acceso an%nimo 8y el usuario
autenticado es la cuenta de usuario de /nternet an%nimo R/AS-GMAC1/+&S9.
WindowsIdentity winId = HttpContext.Current.User.Identity as WindowsIdentity;
if (null != winId)
{
Response.Write(winId.IsAnonymous.ToString());
}
<
'tilizar autenticacin mediante )ormularios
Ase$4rese de )ue se est# recuperando correctamente el nombre de la cookie
especificada en el elemento E*ormsF del controlador de e2entos $lobal.asax
8$pplication+$ut(enticateRe!uest9. Ase$4rese tambi(n de )ue se est# creando la
cookie. Si se de2uel2e continuamente el cliente a la p#$ina de inicio de sesi%n
8especificada por el atributo login'rl del elemento E*ormsF9, si$nifica )ue por al$una
ra*%n no se est# creando la cookie o )ue no se est# colocando en el contexto
8HttpConte,t-'ser9 una identidad autenticada.
Solucionar problemas de .erberos
Atilice las si$uientes herramientas como ayuda para solucionar problemas de =erberos
relacionados con la autenticaci%n y la dele$aci%n.
D .erbtra%-e,e. "uede utili*ar esta utilidad para 2er los 2ales =erberos de la cach(
del e)uipo actual. Torma parte del =it de recursos de :indo;s !!! y se puede
descar$ar desde httpCLL;;;.microsoft.comLdo;nloadsLsearch.asp. >us)ue
B=erbtray.exeB.
D .list-e,e. &s una herramienta de l0nea de comandos similar a =erbtray, pero )ue
adem#s permite 2er y eliminar 2ales de =erberos. ,ambi(n forma parte del =it de
recursos de :indo;s !!! y se puede descar$ar desde
httpCLL;;;.microsoft.comLdo;nloadsLsearch.asp. >us)ue B=list.exeB
D Setspn-e,e. &s una herramienta de l0nea de comandos )ue permite administrar la
propiedad de directorio de nombres principales del ser2icio 8S"+9 para una cuenta
de ser2icio de Acti2e Directory. .os S"+ se utili*an para buscar un nombre
principal de destino para e'ecutar un ser2icio.
Torma parte del =it de recursos de :indo;s !!! y se puede descar$ar desde
httpCLL;;;.microsoft.comLdo;nloadsLsearch.asp. >us)ue Bsetspn.exeB.

Solucionar problemas de autorizacin
Comprobar las $C/ de Windows
Si la aplicaci%n tiene problemas de acceso a un archi2o o una cla2e del -e$istro 8o a
cual)uier ob'eto de :indo;s ase$urable prote$ido mediante AC.9, compruebe las AC.
para ase$urarse de )ue la identidad :eb de la aplicaci%n tiene como m0nimo acceso de
lectura.
Comprobar la identidad
Compruebe tambi(n )ue conoce la identidad )ue est# utili*ando la aplicaci%n :eb de
AS".+&, para tener acceso al recurso. &s probable )ue seaC
D .a identidad del proceso de AS".+&, 8tal y como est# confi$urada en el elemento
EprocessModelF del archi2o :eb.confi$9.
&l 2alor predeterminado es la cuenta AS"+&, local especificada con el nombre de
usuario BmachineB y la contrasePa BAutoUenerateB.
D .a identidad autenticada del llamador 8si la suplantaci%n est# habilitada en el
archi2o :eb.confi$9, como se indica a continuaci%n.
<identity impersonate="true" />
Si no ha deshabilitado el acceso an%nimo en //S, ser# /AS-GMAC1/+&.
D Ana identidad de suplantaci%n especificada, como se indica a continuaci%n
8aun)ue esto no es recomendable9
?
<identity impersonate="true" userName="Bob" password="password" />

M0s in*ormacin
"ara obtener m#s informaci%n sobre la identidad utili*ada para e'ecutar AS".+&, y la
identidad utili*ada para tener acceso a recursos locales y de red, consulte el cap0tulo J,
BSe$uridad de AS".+&,B.

Comprobar el elemento 1aut(orization2
Compruebe )ue los elementos EallowF y Eden%F est#n correctamente confi$urados.
D Si tiene Eden% usersMV6V LF y utili*a autenticaci%n mediante Tormularios o
autenticaci%n de //S, debe colocar expl0citamente un ob'eto IPrincipal en
HttpConte,t-'ser@ si no lo hace, recibir# una respuesta <!3 de acceso dene$ado.
D Ase$4rese de )ue el usuario autenticado pertenece a las funciones especificadas
en los elementos EallowF y Eden%F.

$SP-#34
Habilitar el seguimiento
AS".+&, proporciona un se$uimiento r#pido y simple para mostrar la e'ecuci%n de
e2entos en una p#$ina y los 2alores de 2ariables comunes. &sto puede ser una ayuda de
dia$n%stico muy efecti2a. Atilice la directi2a de ni2el de p#$ina 4race para acti2ar el
se$uimiento, como se indica a continuaci%n.
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false"
Inherits="Test.WebForm1" Trace="true" %>
M0s in*ormacin
"ara obtener m#s informaci%n acerca de la nue2a caracter0stica de se$uimiento en
AS".+&,, consulte el art0culo W7!HI73 de =no;led$e >ase, B/+TOC +e; ,racin$
Teature in AS".+&,B 8en in$l(s9.

5alores de con*iguracin
.a mayor0a de los 2alores de confi$uraci%n de aplicaci%n deben colocarse en el archi2o
:eb.confi$. &n la lista si$uiente se muestran los principales 2alores de confi$uraci%n
relacionados con la se$uridad )ue se pueden colocar en el archi2o :eb.confi$.
<authentication>
<authorization>
<trust>
<identity>
&l si$uiente 2alor de confi$uraci%n, )ue controla la identidad utili*ada para e'ecutar el
proceso de traba'o de AS".+&, 8aspnetG;p.exe9, debe estar en el archi2o
Machine.confi$.
<processModel>
.os 2alores de confi$uraci%n para una aplicaci%n siempre se recuperan del archi2o
:eb.confi$ de la aplicaci%n y reempla*an a los 2alores e)ui2alentes del archi2o
Machine.confi$. Si desea aplicar un 2alor de confi$uraci%n concreto a la aplicaci%n,
confi$4relo expl0citamente en el archi2o :eb.confi$ de la aplicaci%n.
H
&l archi2o :eb.confi$ principal 8y $eneralmente el 4nico9 para una aplicaci%n
determinada se alo'a en su directorio ra0* 2irtual. .os subdirectorios tambi(n pueden
contener archi2os :eb.confi$. .os 2alores de confi$uraci%n de estos archi2os
reempla*an a los 2alores de confi$uraci%n de los archi2os :eb.confi$ de directorios
principales.
6eterminar la identidad
Muchos problemas de se$uridad y de acceso dene$ado est#n relacionados con la
identidad utili*ada para tener acceso al recurso. "uede utili*ar los si$uientes e'emplos de
c%di$os incluidos en esta secci%n como ayuda para determinar la identidad en p#$inas
:eb, ob'etos COM y ser2icios :eb.
"ara obtener m#s informaci%n sobre las 2ariables de identidad de .+&,, consulte BMatri*
de identidades de AS".+&,B en la secci%n -eferencia de esta $u0a.
6eterminar la identidad en una p0gina Web
.a si$uiente secuencia de comandos puede utili*arse para recopilar datos relati2os al
contexto de se$uridad e indica la identidad )ue se est# utili*ando para e'ecutar una
p#$ina :eb.
"ara utili*ar este c%di$o, c%pielo y p($uelo para crear un archi2o con una extensi%n
.aspx. Copie el archi2o a un directorio 2irtual de //S y 2ea la p#$ina desde un explorador.
<%@ Page language="c#" AutoEventWireup="true" %>
<%@ Import Namespace="System.Threading" %>
<%@ Import Namespace="System.Security.Principal" %>
<HTML>
<HEAD>
<title>WhoAmI</title>
</HEAD>
<body>
<form id="WhoAmI" method="post" runat="server">
<TABLE id=contextTable border=1>
<TR>
<TD align=middle colSpan=3 rowSpan="">
HttpContext.Current.User.Identity</TD>
</TR>
<TR>
<TD><b>Name</b></TD>
<TD><asp:Label ID="contextName" Runat=server /></TD>
</TR>
<TR>
<TD><b>IsAuthenticated</b></TD>
<TD><asp:Label ID="contextIsAuth" Runat=server /></TD>
</TR>
<TR>
<TD><b>AuthenticationType</b></TD>
<TD><asp:Label ID="contextAuthType" Runat=server /></TD>
</TR>
</TABLE>
<br><br>
I

<TABLE id=windowsIdentityTable border=1>
<TR>
<TD align=middle colSpan=3 rowSpan="">WindowsIdentity.GetCurrent()</TD>
</TR>
<TR>
<TD><b>Name</b></TD>
<TD><asp:Label ID="windowsName" Runat=server /></TD>
</TR>
<TR>
<TD><b>IsAuthenticated</b></TD>
<TD><asp:Label ID="windowsIsAuth" Runat=server /></TD>
</TR>
<TR>
<TD><b>AuthenticationType</b></TD>
<TD><asp:Label ID="windowsAuthType" Runat=server /></TD>
</TR>
</TABLE>
<br><br>

<TABLE id=threadIdentityTable border=1>
<TR>
<TD align=middle colSpan=3
rowSpan="">Thread.CurrentPrincipal.Identity</TD>
</TR>
<TR>
<TD><b>Name</b></TD>
<TD><asp:Label ID="threadName" Runat=server /></TD>
</TR>
<TR>
<TD><b>IsAuthenticated</b></TD>
<TD><asp:Label ID="threadIsAuthenticated" Runat=server /></TD>
</TR>
<TR>
<TD><b>AuthenticationType</b></TD>
<TD><asp:Label ID="threadAuthenticationType" Runat=server /></TD>
</TR>
</TABLE>
</form>
</body>
</HTML>
<script runat=server>
void Page_Load(Object sender, EventArgs e)
{
IIdentity id = HttpContext.Current.User.Identity;
if(null != id)
{
contextName.Text = id.Name;
contextIsAuth.Text = id.IsAuthenticated.ToString();
J
contextAuthType.Text = id.AuthenticationType;
}
id = Thread.CurrentPrincipal.Identity;
if(null != id)
{
threadName.Text = id.Name;
threadIsAuthenticated.Text = id.IsAuthenticated.ToString();
threadAuthenticationType.Text = id.AuthenticationType;
}
id = WindowsIdentity.GetCurrent();
windowsName.Text = id.Name;
windowsIsAuth.Text = id.IsAuthenticated.ToString();
windowsAuthType.Text = id.AuthenticationType;
}
</script>
6eterminar la identidad en un servicio Web
"uede utili*ar el c%di$o si$uiente en un ser2icio :eb para obtener informaci%n de
identidad.
[WebMethod]
public string GetDotNetThreadIdentity()
{
return Thread.CurrentPrincipal.Identity.Name;
}
[WebMethod]
public string GetWindowsThreadIdentity()
{
return WindowsIdentity.GetCurrent().Name;
}
[WebMethod]
public string GetUserIdentity()
{
return User.Identity.Name;
}
[WebMethod]
public string GetHttpContextUserIdentity()
{
return HttpContext.Current.User.Identity.Name;
}
M0s in*ormacin
D "ara 2er una lista de art0culos de =no;led$e >ase sobre se$uridad
D "ara 2er una lista de art0culos sobre se$uridad )ue explican los mensa'es de error
m#s frecuentes, utilice el si$uiente 20nculo para ir a Microsoft =no;led$e >ase y
bus)ue las si$uientes palabras cla2eC
prb kbsecurity kbaspnet
K
6eterminar la identidad en un ob7eto COM de
5isual Basic 8
"uede utili*ar el m(todo si$uiente para obtener la identidad de un ob'eto COM de Visual
>asic H. "uede llamar a ob'etos COM de Visual >asic H.! directamente desde
aplicaciones AS".+&, a tra2(s de interoperabilidad COM. &l m(todo si$uiente puede
resultarle 4til para solucionar problemas relacionados con errores de acceso dene$ado
al componente cuando intenta tener acceso a recursos.
Private Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function WhoAmI()
Dim sBuff As String
Dim lConst As Long
Dim lRet As Long
Dim sName As String

lConst = 199
sBuff = Space$(200)
lRet = GetUserName(sBuff, lConst)
WhoAmI = Trim$(Left$(sBuff, lConst))
End Function
-#34 Remoting
Si un ob'eto remoto est# alo'ado en AS".+&, y est# confi$urado para autenticaci%n de
:indo;s, hay )ue especificar las credenciales )ue se deben utili*ar para la
autenticaci%n a tra2(s de la propiedad de credenciales del canal. Si no establece
expl0citamente las credenciales, se llama al ob'eto remoto sin credenciales. Si se
re)uiere autenticaci%n de :indo;s, se producir# un estado <!3 de 1,,", la respuesta
de acceso dene$ado.
"ara utili*ar las credenciales asociadas al testi$o de suplantaci%n del subproceso actual
8si el subproceso de cliente utili*a la suplantaci%n9 o al testi$o de proceso 8sin
suplantaci%n9, utilice las credenciales predeterminadas. &sto puede confi$urarse en el
archi2o de confi$uraci%n de cliente con el si$uiente 2alorC
<channel ref="http" useDefaultCredentials="true" />
Si una aplicaci%n :eb AS".+&, llama a un componente remoto y est# confi$urada para
la suplantaci%n, utili*ar# autenticaci%n =erberos o autenticaci%n b#sica. &n los
escenarios de dele$aci%n no se puede utili*ar nin$uno de los dem#s tipos de
autenticaci%n.
Si la aplicaci%n :eb no est# confi$urada para utili*ar suplantaci%n, se utili*a la identidad
de proceso de traba'o de AS".+&,. &sto se especifica en el elemento EprocessModelF
del archi2o Machine.confi$, cuyo 2alor predeterminado es la cuenta AS"+&, local.
#ota9 Ase$4rese de )ue el proceso se est# e'ecutando con una cuenta )ue el e)uipo
remoto puede autenticar.
3!
M0s in*ormacin
"ara obtener m#s informaci%n sobre c%mo establecer credenciales de cliente al llamar a
componentes remotos, consulte el cap0tulo 33, BSe$uridad de .+&, -emotin$B.
SS/
"ara solucionar problemas relacionados con SS.C
D Compruebe si puede comunicarse por telnet con el puerto <<7 en las direcciones
/" del e)uipo cliente y el e)uipo ser2idor. Si no puede, $eneralmente si$nifica )ue
el archi2o sspifilt.dll no est# car$ado o es de una 2ersi%n incorrecta, o tal 2e* est#
en conflicto con otras extensiones /SA"/.
D &xamine el certificado. Si puede comunicarse por telnet con el puerto <<7,
compruebe el atributo de los certificados en el cuadro de di#lo$o 5er certi*icado
del explorador. Compruebe las fechas efecti2as y de caducidad de los certificados,
si el nombre com4n es correcto y a2eri$Xe cu#l es el punto de distribuci%n de
acceso a la informaci%n de entidad emisora 8A/A9 o la lista de re2ocaciones de
certificados 8C-.9.
Confirme )ue puede ir a los puntos de distribuci%n de A/A y C-..
D Si est# utili*ando una aplicaci%n cliente personali*ada 8no un explorador :eb9
para tener acceso a un sitio :eb con SS. habilitado )ue re)uiere certificados de
cliente, compruebe )ue el certificado de cliente se encuentra en el almac(n
correcto, al )ue tiene acceso la aplicaci%n cliente.
Cuando utilice un explorador, el certificado debe estar en el almac(n de usuario
del usuario interacti2o. .os ser2icios o las aplicaciones personali*adas pueden
car$ar el certificado de cliente desde el almac(n del e)uipo o desde un almac(n
asociado a un perfil de cuenta de ser2icio. Atilice el complemento MMC de
Ser2icios 8disponible cuando los Ser2icios de Certificate Ser2er est#n instalados9
del $rupo de pro$ramas 1erramientas administrati2as para examinar el contenido
de los almacenes de certificados.

M0s in*ormacin
Consulte los si$uientes art0culos sobre SS. de =no;led$e >ase 8en in$l(s9C
D W?I?K3, BDescription of the Secure Sockets .ayer 8SS.9 1andshakeB
D W?I?JH, BDescription of the Client Authentication "rocess Durin$ the SS.
1andshakeB
D W?I?JI, BDescription of the Ser2er Authentication "rocess Durin$ the SS.
1andshakeB
D W7!3<K, B1O:,OC /nstall Client Certificate on //S Ser2er for Ser2erYM.1,,"
-e)uest Ob'ectB
D WK?!I!, BSS. 8https9 Connection Slo; ;ith One Certificate but Taster ;ith
OthersB

IPSec
.os si$uientes art0culos de =no;led$e >ase 8en in$l(s9 le indicar#n los pasos para
solucionar problemas de /"Sec.
D W?K77?, B>asic .,"L/"Sec ,roubleshootin$ in :indo;sB
D W?I?, B>asic /"Sec ,roubleshootin$ in :indo;s !!!B

33
$uditor:a % registro
Registros de seguridad de Windows
Consulte los re$istros de e2entos y de se$uridad de :indo;s en la fase inicial del
proceso de dia$n%stico del problema.
M0s in*ormacin
"ara obtener m#s informaci%n sobre c%mo habilitar la auditor0a y c%mo super2isar
e2entos, consulte el art0culo W7!!K?J de =no;led$e >ase, B1O: ,OC Monitor for
Anauthori*ed Aser Access in :indo;s !!!B 8en in$l(s9.

$uditor:a de S;/ Server
De manera predeterminada, la auditor0a de inicio de sesi%n est# deshabilitada. "uede
confi$urarla mediante el Administrador corporati2o de SW. Ser2er o modificando el
-e$istro.
De manera predeterminada, los archi2os de re$istro de SW. Ser2er est#n en el si$uiente
directorio. Son archi2os de texto y pueden leerse con cual)uier editor de textos, como el
>loc de notas.
C:\Program Files\Microsoft SQL Server\MSSQL\LOG
Para (abilitar la auditor:a de inicio de sesin mediante el $dministrador
corporativo
3. /nicie el Administrador corporati2o.
. Seleccione el ser2idor de SW. Ser2er re)uerido en el control de #rbol de la
i*)uierda, ha$a clic con el bot%n secundario del mouse 8rat%n9 en (l y, a
continuaci%n, eli'a Propiedades.
7. 1a$a clic en la ficha Seguridad.
<. Seleccione el ni2el de auditor0a rele2anteC Incorrecto, Correcto o 4odos.

Para (abilitar la auditor:a de inicio de sesin mediante un valor de
con*iguracin del Registro
Cree la si$uiente cla2e $udit/evel en el -e$istro y estable*ca como 2alor uno de
los 2alores -&UGD:O-D )ue se especifican a continuaci%n.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\AuditLevel
&stable*ca el 2alor de esta cla2e a uno de los 2alores num(ricos si$uientes, lo )ue
le permitir# capturar el ni2el de detalle rele2ante.
7C captura los intentos de inicio de sesi%n correctos e incorrectos
C captura s%lo los inicios de sesi%n incorrectos
3C captura s%lo los inicios de sesi%n correctos
!C no captura nin$4n inicio de sesi%n

Se recomienda acti2ar la auditor0a de inicios de sesi%n incorrectos por)ue permite
determinar si al$uien trata de atacar por fuer*a bruta el ser2idor SW. Ser2er. &l re$istro
de los intentos de inicio de sesi%n incorrectos no afecta apenas al rendimiento, a menos
)ue est( siendo ob'eto de un ata)ue, en cuyo caso necesitar# saberlo.
,ambi(n puede establecer ni2eles de auditor0a mediante secuencias de comandos )ue
utili*an ob'etos de administraci%n de bases de datos de SW. Ser2er 8SW. Ser2er DMO9,
como se muestra en las si$uientes l0neas de c%di$o.
Sub SetAuditLevel(Server As String, NewAuditLevel As SQLDMO_AUDIT_TYPE)
3
Dim objServer As New SQLServer2
objServer.LoginSecure = True 'Use integrated security
objServer.Connect Server 'Connect to the target SQL Server
'Set the audit level
objServer.IntegratedSecurity.AuditLevel = NewAuditLevel
Set objServer = Nothing
End Sub
Como puede 2er en los libros en pantalla de SW. Ser2er, los miembros del tipo
enumerado SW.DMOGAAD/,G,Q"& sonC
SQLDMOAudit_All 3 Log all authentication attempts - success or failure
SQLDMOAudit_Failure 2 Log failed authentication
SQLDMOAudit_None 0 Do not log authentication attempts
SQLDMOAudit_Success 1 Log successful authentication
37emplos de entradas de registro
&n la lista si$uiente se muestran al$unos e'emplos de entradas de re$istro para entradas
correctas y entradas incorrectas de los re$istros de SW. Ser2er.
/nicio de sesi%n correcto con la autenticaci%n inte$rada de :indo;sC
2002-07-06 22:54:32.42 logon Login succeeded for user 'SOMEDOMAIN\Bob'.
Connection: Trusted.
/nicio de sesi%n correcto con la autenticaci%n est#ndar de SW.C
2002-07-06 23:13:57.04 logon Login succeeded for user 'SOMEDOMAIN\Bob'.
Connection: Non-Trusted.
/nicio de sesi%n incorrectoC
2002-07-06 23:21:15.35 logon Login failed for user 'SOMEDOMAIN\BadGuy'.
Registro en IIS
Se puede establecer el re$istro en //S en dos formatos diferentes. Si utili*a -e$istro
extendido :7C, puede beneficiarse de al$unos datos adicionales. "or e'emplo, puede
acti2ar ,iempo consumido para re$istrar cu#nto se tarda en ser2ir una p#$ina. &sto
puede resultar 4til para aislar p#$inas lentas en el sitio :eb de producci%n. ,ambi(n
puede habilitar las consultas A-/ )ue re$istrar#n los par#metros de cadenas de
consulta, lo )ue puede ayudar a solucionar problemas de operaciones U&, en las
p#$inas :eb. .a ilustraci%n si$uiente muestra el cuadro de di#lo$o "ropiedades
extendidas para el re$istro de //S.
37
"#nsert $gure: C%13 & E'tended (ogin Properties.gi)*
/lustraci%n 37.3
Propiedades de registro extendidas de IIS
Herramientas para solucionar problemas
.a lista de herramientas presentada en esta secci%n puede resultarle muy 4til y le
ayudar# a dia$nosticar problemas de se$uridad y otros tipos de problemas.
Monitor de arc(ivos )ileMon-e,e"
&sta herramienta permite super2isar los intentos de acceso a archi2os y carpetas. &s de
$ran utilidad para tratar problemas de permisos de acceso a archi2os. &st# disponible en
;;;.sysinternals.com.
M0s in*ormacin
"ara obtener m#s informaci%n, consulte el art0culo WJH3KJ de =no;led$e >ase,
B1O:,OC ,rack Z"ermission DeniedZ &rrors on D.. TilesB 8en in$l(s9.
5isor de registros de *usin )uslogvw-e,e"
&l Visor de re$istros de fusi%n se incluye en .+&, Trame;ork SD=. &s una utilidad )ue
permite hacer un se$uimiento de problemas de enlace de fusi%n 8consulte la
documentaci%n de .+&, Trame;ork para obtener m#s informaci%n9.
"ara crear re$istros de fusi%n para AS".+&, tiene )ue proporcionar una ruta de re$istro
en el -e$istro y tiene )ue habilitar las opciones de error de re$istro mediante la utilidad
Visor de re$istros de fusi%n 8Tuslo$2;.exe9.
3<
"ara proporcionar una ruta de re$istro para los archi2os de re$istro, utilice re$edit.exe y
a$re$ue una ubicaci%n de directorio 8por e'emplo, eCOMis-e$istros9 a la si$uiente cla2e
del -e$istroC
[HKLM\Software\Microsoft\Fusion\LogPath]
IS;/-e,e
"uede utili*ar /SW. para probar SW. desde el s0mbolo del sistema. &sto puede resultar
4til cuando se desea probar de forma efica* distintos inicios de sesi%n para distintos
usuarios. "ara e'ecutar /SW., escriba is)l.exe en el s0mbolo del sistema en un e)uipo
)ue ten$a SW. Ser2er instalado.
Conectar mediante autenticacin de S;/
"uede pasar un nombre de usuario mediante el modificador [A y, opcionalmente,
especificar la contrasePa con el modificador [". Si no especifica una contrasePa, /SW. le
pedir# una. &l comando si$uiente, emitido desde el s0mbolo del sistema de :indo;s,
hace )ue se pida la contrasePa. .a 2enta'a de este enfo)ue 8alternati2o al uso del
modificador ["9 es )ue la contrasePa no se muestra en pantalla.
C:\ >isql -S YourServer -d pubs -U YourUser
Password:
Conectar mediante autenticacin de Windows
"uede utili*ar el modificador [& para utili*ar una conexi%n de confian*a )ue usa el
contexto de se$uridad del usuario )ue tiene iniciada una sesi%n de forma interacti2a
actualmente.
C:\ >isql -S YourServer -d pubs -E
37ecutar una consulta sencilla
Cuando haya iniciado una sesi%n, puede e'ecutar una consulta sencilla, como la )ue se
muestra a continuaci%n.
1> use pubs
2> SELECT au_lname, au_fname FROM authors
3> go
"ara cerrar /SW., escriba !uit en el s0mbolo del sistema.
$dministrador de tareas de Windows
&l Administrador de tareas de :indo;s de :indo;s Y" y :indo;s Ser2er !!7 le
permite mostrar la identidad )ue se est# utili*ando para e'ecutar un proceso.
Para ver la identidad con la !ue se est0 e7ecutando un proceso
3. /nicie el $dministrador de tareas.
. 1a$a clic en la ficha Procesos.
7. &n el men4 5er, ha$a clic en Seleccionar columnas.
<. Seleccione #ombre de usuario y ha$a clic en $ceptar.
Ahora se muestra el nombre de usuario 8identidad del proceso9.

Monitor de red #etMon-e,e"
+etMon se utili*a para capturar y super2isar el tr#fico de red.
3?
M0s in*ormacin
Consulte los si$uientes art0culos de =no;led$e >ase 8en in$l(s9C
D W<7I!, B1O: ,OC /nstall +et;ork Monitor in :indo;s !!!B
D W3<JK<, B1O: ,OC Capture +et;ork ,raffic ;ith +et;ork MonitorB
D W?JIH, B1O: ,OC Vie; 1,," Data Trames Asin$ +et;ork MonitorB
D WK<J3J, BTre)uently Asked Wuestions About +et;ork MonitorB
1ay un par de herramientas adicionales para capturar la tra*a de la red cuando el cliente
y el ser2idor est#n en el mismo e)uipo 8esto no se puede hacer con +etmon9C
D tcptrace-e,e. Disponible en ;;;.pocketsoap.com. &sta herramienta es
especialmente 4til para ser2icios :eb, ya )ue puede confi$urarla para
re$istrar y mostrar el tr#fico mientras se e'ecuta la aplicaci%n. "uede cambiar
a autenticaci%n b#sica y utili*ar tcptrace para 2er )u( credenciales se est#n
en2iando al ser2icio :eb.
D pac<etmon-e,e. Disponible en ;;;.analo$x.com. &s una 2ersi%n limitada del
Monitor de red, pero mucho m#s f#cil de confi$urar.

Monitor del Registro regmon-e,e"
&sta herramienta le permite super2isar el acceso al -e$istro. Se puede utili*ar para
mostrar los accesos de lectura y las actuali*aciones de todos los procesos o de un
con'unto de procesos espec0fico. &sta herramienta es muy 4til para solucionar problemas
de permisos para el -e$istro. &st# disponible en ;;;.sysinternals.com.
W)etc(-e,e
&sta herramienta es 4til para solucionar problemas de conecti2idad entre //S y clientes
:eb. &n este escenario, es posible )ue ten$a )ue 2er datos )ue no se muestran en el
explorador :eb, como los encabe*ados 1,," incluidos en los pa)uetes de solicitud y
los pa)uetes de respuesta.
M0s in*ormacin
"ara obtener m#s informaci%n acerca de esta herramienta, consulte el art0culo WJ<J?
de =no;led$e >ase, B1o; to Ase :fetch.exe to ,roubleshoot 1,," ConnectionsB 8en
in$l(s9.

Herramientas de 5isual Studio -#34
&ncontrar# las herramientas de Microsoft .+&, Trame;ork SD= en
httpCLLmsdn.microsoft.comLlibraryLdefault.asp6urlMLlibraryLen\
usLcptoolsLhtmlLcpconnetframe;orktools.asp
M0s in*ormacin
Consulte los si$uientes art0culos de =no;led$e >ase 8en in$l(s9C
D W73H7H?, B/+TOC -OADMA" for 1o; to Ase the .+&, "erformance CountersB
D W7!JHH, B/+TOC -oadmap for Debu$$in$ in .+&, Trame;ork and Visual StudioB
D W73IKI, B/+TOC -oadmap for Debu$$in$ 1an$s, Memory .eaks in V> .+&,B

WebServiceStudio
"uede utili*ar esta herramienta como cliente $en(rico para probar la funcionalidad del
ser2icio :eb. Captura y muestra los pa)uetes de solicitud y respuesta SOA".
3H
"uede descar$ar la herramienta desde
httpCLL;;;.$otdotnet.comLteamLtoolsL;ebGs2cLdefault.aspx
.it de recursos de Windows =>>>
&st# disponible en httpCLL;;;.microsoft.comL;indo;s!!!LtechinfoLreskitLdefault.asp
"ara 2er una lista completa de herramienta, 2isite
httpCLL;;;.microsoft.comL;indo;s!!!LtechinfoLreskitLtoolsLdefault.asp
3I

Vous aimerez peut-être aussi