Title: Manejo de roles, herramientas, y encriptando secciones de la configuracin
1Manejo de roles, herramientas, y encriptando
secciones de la configuración
- Jorge Oblitas
- joblitas_at_microsoft.com
2Servicio de Administración de roles
- Seguridad basada en roles in the box
- Acceso declarativo vía la W.S. Admin Tool
- Acceso programático vía Roles API
- Simplifica el agregar seguridad basada en roles a
sitios que emplean autenticación por formularios - Mapea usuarios a roles en cada request
- Provee data stores para información sobre roles
- Basada en providers para un almacenamiento de
datos flexible
3Esquema de Administración de roles
Controles
Login
LoginStatus
LoginView
Otros Controles
Roles API
Roles
Role Providers
SqlRole-Provider
AuthorizationStore-RoleProvider
Otros Providers
WindowsToken-RoleProvider
Roles Data
SQL Server
Otros Data Stores
Authorization Manager
4La clase Roles
- Gateway al Role Management API
- Brinda métodos estáticos para realizar tareas
clave para la administración de roles - Crear y eliminar roles
- Agregar usuarios a roles
- Remover usuarios de los roles y más
- Incluye propiedades estáticas de tipo read-only
para adquirir información acerca de la
configuración del provider
5Usando la API Roles
// Crear un nuevo role llamado "Desarrolladores" i
f (!Roles.RoleExists ("Desarrolladores"))
Roles.CreateRole ("Desarrolladores") // Agregar
al usuario actual al rol "Desarrolladores"
string name Membership.GetUser
().Username Roles.AddUserToRole (name,
Desarrolladores")
6Habilitando el Role Manager
Web.config
ltconfigurationgt ltsystem.webgt ltroleManager
enabled"true" /gt lt/system.webgt lt/configurationgt
7LoginView y Roles
- El Contenido varía en base a los roles
ltaspLoginView ID"LoginView1" Runat"server"gt
ltAnonymousTemplategt lt! Contenido para
usuarios no autenticados --gt lt/AnonymousTemplate
gt ltLoggedInTemplategt lt! Contenido visto
por usuarios autenticados --gt
lt/LoggedInTemplategt ltRoleGroupsgt
ltaspRoleGroup Roles"Administradores"gt
ltContentTemplategt lt! Contenido visto por
usuarios que son administradores --gt
lt/ContentTemplategt lt/aspRoleGroupgt
... lt/RoleGroupsgt lt/aspLoginViewgt
8Security Trimming y Roles
- La interface de navegación (UI) varía basada en
los roles
Visible para todos
ltsiteMapgt ltsiteMapNode title"Home"
description"" url"default.aspx"gt
ltsiteMapNode titleAnuncios" url"Announcements.a
spx" descriptionInformación para todos
los empleados" roles"" /gt ltsiteMapNode
titleSueldos" url"Sueldos.aspx"
descriptionInformación sobre sueldos"
roles"Managers,CEOs" /gt ltsiteMapNodegt lt/siteMap
gt
Visible sólo para administradores y CEOs
9Web Site Administration Tool
- Herramienta GUI para configurar la seguridad y
otros aspectos de la aplicación web.
10Secciones de configuración encriptadas
- La mayoría de las secciones de configuración
pueden ser encriptadas - Triple-DES (DPAPI), RSA, personalizada
- Dos maneras de encriptar
- Configuration API (ProtectSection)
- Aspnet_regiis.exe
- La encriptación es transparente para las
aplicaciones - Protégé las connection strings (cadenas de
conexión) y otra información sensible en el
Web.config!
11Encriptando ltconnectionStringsgt
aspnet_regiis pef connectionStrings
c\websites\whidbeyrocks
ltconnectionStringsgt ltremove name"LocalSqlServer
" /gt ltadd name"LocalSqlServer"
connectionString"ServerlocalhostIntegrated
SecurityTrueDatabaseaspnetdb..." /gt ltadd
name"WhidbeyRocksConnectionString"
connectionString"Data Source(local)Initial
CatalogWhidbeyRocksIntegrated SecurityTrue"
providerName"System.Data.SqlClient"
/gt lt/connectionStringsgt
antes
ltconnectionStringsgt ltEncryptedData
Type"http//www.w3.org/2001/04/xmlencElement"
xmlns"http//www.w3.org/2001/04/xmlenc"gt
ltEncryptionMethod Algorithm"http//www.w3.org/200
1/04/xmlenctripledes-cbc" /gt ltKeyInfo
xmlns"http//www.w3.org/2000/09/xmldsig"gt
... lt/KeyInfogt ltCipherDatagt
ltCipherValuegtkxxLhiRQrNlloq0YLYAr2FycMt1hMbEqnguP
n1UTSbcK4BMUprnAjWq5nhZk...lt/CipherValuegt
lt/CipherDatagt lt/EncryptedDatagt lt/connectionStrin
gsgt
después
12demo
13Preguntas