De la seguridad en Servicios Web para .Net - Willy .Net
De la seguridad en Servicios Web para .Net - Willy .Net
De la seguridad en Servicios Web para .Net - Willy .Net
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Seguridad mediante programaciónLa <strong>seguridad</strong> mediante programación hace refer<strong>en</strong>cia a <strong>la</strong>s comprobaciones de<strong>seguridad</strong> ubicadas <strong>en</strong> el código del servicio <strong>Web</strong>. Las sigui<strong>en</strong>tes opciones de<strong>seguridad</strong> mediante programación están disponibles cuando se utilizan <strong>la</strong>aut<strong>en</strong>ticación de Windows y <strong>la</strong> sup<strong>la</strong>ntación.Peticiones de permisos PrincipalImperativas (<strong>en</strong> <strong>la</strong>s líneas del código de un método)PrincipalPermission permCheck = new PrincipalPermission(permCheck.<strong>De</strong>mand();null, @"DomainName\WindowsGroup");<strong>De</strong>c<strong>la</strong>rativas (estos atributos pued<strong>en</strong> figurar antes de los métodos o <strong>la</strong>sc<strong>la</strong>ses <strong>Web</strong>)// <strong>De</strong>mand that the caller is a member of a specific role (for Windows// auth<strong>en</strong>tication this is the same as a Windows group)[PrincipalPermission(SecurityAction.<strong>De</strong>mand,Role=@"DomainName\WindowsGroup)]// <strong>De</strong>mand that the caller is a specific user[PrincipalPermission(SecurityAction.<strong>De</strong>mand,Name=@"DomainName\UserName")]Comprobaciones de funciones explícitas. Puede realizar <strong>la</strong> comprobaciónde funciones mediante <strong>la</strong> interfaz IPrincipal.IPrincipal.IsInRole(@"DomainName\WindowsGroup");Esc<strong>en</strong>arios de usoUtilice <strong>la</strong> aut<strong>en</strong>ticación de Windows y <strong>la</strong> sup<strong>la</strong>ntación cuando se d<strong>en</strong> <strong>la</strong>s sigui<strong>en</strong>tescondiciones:Los cli<strong>en</strong>tes del servicio <strong>Web</strong> pued<strong>en</strong> id<strong>en</strong>tificarse mediante cu<strong>en</strong>tas deWindows, que a su vez puede aut<strong>en</strong>ticar el servidor.<strong>De</strong>be transferirse el contexto de <strong>seguridad</strong> del l<strong>la</strong>mador original al sigui<strong>en</strong>t<strong>en</strong>ivel a través del servicio <strong>Web</strong>. Por ejemplo, a un conjunto de compon<strong>en</strong>tesrevisados que utilizan funciones de <strong>Servicios</strong> Empresariales (COM+) o a unnivel de datos que precisa autorización de granu<strong>la</strong>ridad fina (por usuario).<strong>De</strong>be transferir el contexto de <strong>seguridad</strong> del l<strong>la</strong>mador original a los nivelesindirectos a fin de admitir <strong>la</strong> auditoría de nivel del sistema operativo.Importante: el uso de <strong>la</strong> sup<strong>la</strong>ntación reduce <strong>la</strong> esca<strong>la</strong>bilidad porque incide <strong>en</strong> <strong>la</strong>agrupación de conexiones de bases de datos. A modo de <strong>en</strong>foque alternativo, esrecom<strong>en</strong>dable p<strong>la</strong>ntearse <strong>la</strong> posibilidad de utilizar un modelo de subsistema deconfianza <strong>en</strong> el que el servicio <strong>Web</strong> autorice a los l<strong>la</strong>madores y, a continuación,utilice una id<strong>en</strong>tidad fija <strong>para</strong> obt<strong>en</strong>er el acceso a <strong>la</strong> base de datos. La id<strong>en</strong>tidad dell<strong>la</strong>mador se transfiere desde <strong>la</strong> aplicación; por ejemplo, mediante los parámetrosde procedimi<strong>en</strong>to almac<strong>en</strong>ados.