iT Synergy Blogs

Growing Innovation - Soluciones a problemas reales

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

Copyright © 2025 · iT Synergy·

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

Anatomia de UDDI
Anatomia de UDDI avatar

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

 

Con la versión de BizTalk 2009 hemos visto la inclusión de UDDI 3.0, personalmente he trabajado con ESB Toolkit y con MSE aquí una buena anatomía de lo que es UDDI

http://advice.cio.com/dan_rosanova/anatomy_of_a_uddi_registry?page=0%2C0

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

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

Team


Marco
Antonio Hernández

Jaime
Alonso Páez

Luis
Carlos Bernal

Ana
María Orozco

Juan
Camilo Zapata

Sonia
Elizabeth Soriano

Diana
Díaz Grijalba

Carlos
Alberto Rueda

Bernardo
Enrique Cardales

Alexandra
Bravo Restrepo

Juan
Alberto Vélez

Diana
Paola Padilla

Jhon
Jairo Rodriguez

Brayan
Ruiz

Jesús
Javier Hernández

Alejandro
Garcia Forero

Gustavo
Adolfo Echeverry

Carlos
Andrés Vélez

Yully
Arias Castillo

Oscar
Alberto Urrea

Odahir
Rolando Salcedo

Jimmy
Quejada Meneses

Natalia
Zartha Suárez

Josué
Leonardo Bohórquez

Mario
Andrés Cortés

Eric
Yovanny Martinez

Carolina
Torres Rodríguez

Juan
Mauricio García

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