iT Synergy Blogs

Growing Innovation - Soluciones a problemas reales

  • Facebook
  • Instagram
  • LinkedIn
  • Phone
  • Twitter
  • YouTube

Copyright © 2025 · iT Synergy·

MSE Windows Role Provider Authorization Assertion – Insercion en Batch Allowed Operations a Windows/Domain Groups
MSE Windows Role Provider Authorization Assertion – Insercion en Batch Allowed Operations a Windows/Domain Groups avatar

March 22, 2010 By Marco Antonio Hernández Prado Leave a Comment

Continuando con la Política de MSE Windows Roles Provider debo generar las operaciones permitidas para los grupos de Windows o del dominio, para esto inserté el xml en el assertion de MSE, debo insertar el XML en un campo XML en SQL Server(http://msdn.microsoft.com/en-us/library/ms191184.aspx#existing_row).

Aqui  esta el XML de Ejemplo  WindowsRoleProviderAuthorizationAssertion_blog.xml y la insercion en MSE WindowsRolProviderUpdateAssertion.sql

Filed Under: MSE, SOA, WCF Tagged With: MSE, SOA

Politica Windows Role Provider Authorization para MSE
Politica Windows Role Provider Authorization para MSE avatar

February 23, 2010 By Marco Antonio Hernández Prado Leave a Comment

He realizado varios demos con MSE mostrando las ventajas que podemos tener al virtualizar fácilmente los servicios y administrarlos con políticas como las que vienen  con la Guía de Seguridad, la que me ilustro en el proceso fue SqlProviderSecurity, esta política nos permite tener una autenticación al servicio WCF por medio de un usuario y contraseña, este usuario se autenticaría en la base de datos aspnetdb la cual refleja el modelo Membership, así mismo para la autorización se extraen los roles configurados en esta base de datos.

Adicional a esta podemos validar que roles pueden acceder a las operaciones expuestas en todos los endpoint para esto usamos RoleProviderAuthorization.

Bueno como ya había colocado el post en codeplex, donde veíamos que este ejemplo era bueno el mundo real era otro, la mayoría teníamos que validar y autenticar con usuarios Windows!!

Es por eso que investigue el código de la Guía e Implemente un Windows Role Provider Authorization.

Lo primero que tenemos que tener en cuenta es que no cree una política que me permitir autenticar en Windows, ya que esto lo hace cualquier binding  de MSE que tenga las características clientCredentialType=”Windows”, ya con esto el usuario envía su identificación (el usuario ya se autentico). Lo que desarrolle fue la validación de roles de usuario para las operaciones permitidas, estas fueron las nuevas clases implementadas:

Clases Nuevas:

  • Microsoft.MSE.Behaviors.Security.Configuration.WindowsRoleProviderAuthorizationElement
  • Microsoft.MSE.Behaviors.Security.WindowsRoleProviderAuthorizationBehavior.cs
  • Microsoft.MSE.Behaviors.Security.WindowsRoleProviderAuthorizationParameterInspector.cs
  • Microsoft.MSE.Behaviors.Security.WindowsRoleProviderServiceAuthorizationManager.cs
  • Microsoft.MSE.PolicyDesigners.Security.WindowsRoleAuthzAssertionUI.xaml

La implementacion importante fue para la clase WindowsRoleProviderServiceAuthorizationManager

1. Las operaciones en MSE 7.5.29  ahora tienen una nueva propiedad llamada Action, esta nos permiten tener un mismo nombre de operacion con Action diferentes, debido a eso comentarie esta linea en la clase

//I comment the action because we can have many 
//Operations with the same Name for diferents
  //endpoints. With MSE 7.5.29.0 we can differ the operations by the action
   //action = action.IndexOf(':') > 0 ? action.Substring(0, action.IndexOf(':'))

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

2. Y He aquí las línea que use para obtener roles, acordémonos que no utilizo provider porque vamos a obtener los roles del token de Windows, esta forma de hacerla me gusta debido a que el rendimiento es alto comparado con otros métodos como ir al LDAP a traer información

string[] userRoles = GetRoles(operationContext.ServiceSecurityContext.WindowsIdentity);

NOTA: en el código que adjunto imprimí en Debug los Grupos de Dominio y de Equipo que tiene el usuario, eliminar esta línea y todas la que tenga Trace del código para producción

  private static string[] GetRoles(WindowsIdentity id)
        {
            List<string> groups = new List<string>();
            IdentityReferenceCollection IRC = id.Groups.Translate(typeof(NTAccount));

            foreach (NTAccount acc in IRC)
            {
                groups.Add(acc.Value);
                System.Diagnostics.Trace.WriteLine("Grupo de Windows: "+ acc.Value);
            }
            return groups.ToArray();
        }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Después de la compilación va la instalaciones de la Guía de Seguridad con el nuevo assertion:

 

Ya podemos visualizar aquí nuestro nuevo WindowsRoleProviderAuthorization Assertion

 

 

Podemos configurar Los Grupos del Equipo y sobretodo del dominio para asociar que operaciones tiene permiso de ejecución

Aquí tengo un binding que usa Tipo de Autenticación Windows, estos los debemos usar para que nuestra política funcione

O podemos usar el binding NetTCP del MSE

<bindings xmlns="">
  <netTcpBinding>
    <binding name="netTcp" closeTimeout="00:01:00"
             openTimeout="00:01:00" receiveTimeout="00:10:00"
            sendTimeout="00:01:00" transactionFlow="false" 
           transferMode="Buffered" transactionProtocol="OleTransactions" 
           hostNameComparisonMode="StrongWildcard" listenBacklog="10"
           maxBufferPoolSize="524288" maxBufferSize="65536"
           maxConnections="10" maxReceivedMessageSize="65536">
      <readerQuotas maxDepth="32" maxStringContentLength="8192"
                                maxArrayLength="16384" maxBytesPerRead="4096"
                                maxNameTableCharCount="16384">
      </readerQuotas>
      <reliableSession ordered="true" inactivityTimeout="00:10:00" 
                                enabled="false">
      </reliableSession>
      <security mode="Transport">
        <transport clientCredentialType="Windows" 
                         protectionLevel="EncryptAndSign">
        </transport>
        <message clientCredentialType="Windows">
        </message>
      </security>
    </binding>
  </netTcpBinding>
</bindings>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

Aquí pueden descargar el codigo fuente: Microsoft.MSE.SecurityGuide_With_WindowsRoleProviderAuthorization

Filed Under: MSE, SOA Tagged With: MSE

MSE Logging Behavior
MSE Logging Behavior avatar

February 22, 2010 By Marco Antonio Hernández Prado Leave a Comment

 

ME parece buena la idea de implementación de Logging por hartmamt

http://servicesengine.codeplex.com/Thread/View.aspx?ThreadId=71373

Filed Under: MSE Tagged With: MSE

  • « Previous Page
  • 1
  • 2
  • 3
  • 4
  • Next Page »

Team


Marco
Antonio Hernández

Jaime
Alonso Páez

Luis
Carlos Bernal

Ana
María Orozco

Juan
Camilo Zapata

Diana
Díaz Grijalba

Carlos
Alberto Rueda

Sonia
Elizabeth Soriano

Alexandra
Bravo Restrepo

Bernardo
Enrique Cardales

Juan
Alberto Vélez

Diana
Paola Padilla

Jhon
Jairo Rodriguez

Jesús
Javier Hernández

Alejandro
Garcia Forero

Gustavo
Adolfo Echeverry

Carlos
Andrés Vélez

Yully
Arias Castillo

Brayan
Ruiz

Jimmy
Quejada Meneses

Natalia
Zartha Suárez

Josué
Leonardo Bohórquez

Oscar
Alberto Urrea

Odahir
Rolando Salcedo

Carolina
Torres Rodríguez

Juan
Mauricio García

Mario
Andrés Cortés

Eric
Yovanny Martinez

Tag Cloud

.NET (9) 940px (1) Analysis Services mdx (1) An attempt was made to load a program with an incorrect format. (1) ASP.NET MVC (1) Azure (3) Backup (1) BAM (7) BAM API (1) BAMTraceException (2) BI (3) BizTalk (24) Business Intelligence (6) C# (2) caracteristicas de publicacion (2) Content Editor (3) ESB (15) ESB Toolkit (3) General (4) habilitar caracteristicas (3) indexes (2) Integration Services (2) Master Page (3) MDX (2) MSE (11) net.tcp (2) Office 365 (2) Oracle (2) Performance Point (2) Public Website (2) Receive Location (2) SDK (2) Servicio Web (2) Sharepoint 2010 (2) SharePoint 2013 (4) SharePoint Online (2) SOA (8) Soap Fault (2) Sort Months MDX (2) SQL Server (2) Visual (2) Visual Studio 2010 (2) WCF (19) Windows (3) Windows 8 (17)

Categories

  • .NET (33)
  • Analysis Services (1)
  • ASP.NET MVC (2)
  • Azure (7)
  • BAM (9)
  • BAM PrimaryImport (3)
  • BigData (1)
  • BizTalk (77)
  • BizTalk 2010 configurations (57)
  • BizTalk Application (60)
  • BizTalk Services (13)
  • Business Intelligence (4)
  • Cloud (3)
  • CMD (1)
  • CodeSmith – NetTiers (2)
  • CommandPrompt (1)
  • CRM OptionSet mapping component (1)
  • Desarrollo de software (6)
  • develop (6)
  • developers (3)
  • DropBox (1)
  • Dynamics (1)
  • Enterprise Architect (1)
  • Entity Framework (1)
  • Errores BizTalk (2)
  • ESB (27)
  • ETL (1)
  • Event Viewer (1)
  • Excel Services (1)
  • Foreach loop container (1)
  • General (4)
  • Gerencia de Proyectos (2)
  • Google (1)
  • Grouped Slices (1)
  • Human Talent (1)
  • IIS (4)
  • Integración (6)
  • Integration Services (3)
  • KingswaySoft (1)
  • Lync (1)
  • MSE (13)
  • Office 365 (2)
  • Oracle Data Adapter (2)
  • Performance Point (4)
  • Picklist (1)
  • Pivot Table (1)
  • Procesos (1)
  • Pruebas (1)
  • Public Website (2)
  • Reports (1)
  • SCRUM (1)
  • SDK (2)
  • SEO (1)
  • Servicios (2)
  • Sharepoint (9)
  • SharePoint 2010 (10)
  • SharePoint 2013 (4)
  • SharePoint Online (2)
  • SharpBox (1)
  • Shortcuts (1)
  • Sin categoría (1)
  • SOA (50)
  • SQL (5)
  • SQL Server (3)
  • SQL Server Management Studio (1)
  • SSIS (3)
  • SSL (1)
  • SSO (1)
  • Tracking Profile Editor (2)
  • Twitter (1)
  • Uncategorized (1)
  • Virtual Network (2)
  • Visual Studio 11 (1)
  • Visual Studio 2010 (2)
  • Visual Studio Online (1)
  • VMware (2)
  • WCF (24)
  • Web (1)
  • Web Api (1)
  • Windows (5)
  • Windows 8 (11)
  • Windows Azure (2)
  • Windows Live Write (1)
  • Windows Phone (7)
  • Windows Phone 8 (1)
  • Windows Scheduler (1)
  • windows8 (2)
  • WindowsRT (3)
  • WP7 SDK (1)

Manage

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org