12.07.2015 Views

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

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!