P. 1
Súbete a La Nube de Microsoft - Parte 3: Windows Azure AppFabric

Súbete a La Nube de Microsoft - Parte 3: Windows Azure AppFabric

5.0

|Views: 4,955|Likes:
Published by Krasis Press
3ª parte del libro completamente GRATUITO creado por Plain Concepts y campusMVP.

¡Léelo on-line o descárgatelo en PDF!

Con esta obra buscamos que te pueda servir profesionalmente para aprender o profundizar en tus conocimientos sobre cloud computing en general y sobre Windows Azure en particular.

Los autores han ido recopilando, a lo largo de bastante tiempo, la información más valiosa sobre la plataforma y actualizándola a medida que desde el equipo de producto de Microsoft liberaban nuevas versiones del SDK (Software Develpment Kit) y de la propia plataforma. El objetivo es presentarte de la mejor forma posible toda la información necesaria para que aprendas o mejores sus conocimientos sobre Windows Azure.

El contenido de este libro digital se divide en 4 entregas que iremos liberando en las próximas semanas.

Esta tercera parte trata el tema de Windows Azure AppFabric, que proporciona un bus de servicios empresariales y un servicio de control de
acceso que permite integrar servicios y aplicaciones que se ejecutan en la nube, en proveedores de alojamiento tradicionales y en la propia empresa basándose en estándares de interoperabilidad

Puedes descargarte el PDF imprimible y con índice navegable directamente desde esta página de Scribd.

¡Esperamos que te resulte útil! ¡Pásalo!
3ª parte del libro completamente GRATUITO creado por Plain Concepts y campusMVP.

¡Léelo on-line o descárgatelo en PDF!

Con esta obra buscamos que te pueda servir profesionalmente para aprender o profundizar en tus conocimientos sobre cloud computing en general y sobre Windows Azure en particular.

Los autores han ido recopilando, a lo largo de bastante tiempo, la información más valiosa sobre la plataforma y actualizándola a medida que desde el equipo de producto de Microsoft liberaban nuevas versiones del SDK (Software Develpment Kit) y de la propia plataforma. El objetivo es presentarte de la mejor forma posible toda la información necesaria para que aprendas o mejores sus conocimientos sobre Windows Azure.

El contenido de este libro digital se divide en 4 entregas que iremos liberando en las próximas semanas.

Esta tercera parte trata el tema de Windows Azure AppFabric, que proporciona un bus de servicios empresariales y un servicio de control de
acceso que permite integrar servicios y aplicaciones que se ejecutan en la nube, en proveedores de alojamiento tradicionales y en la propia empresa basándose en estándares de interoperabilidad

Puedes descargarte el PDF imprimible y con índice navegable directamente desde esta página de Scribd.

¡Esperamos que te resulte útil! ¡Pásalo!

More info:

Published by: Krasis Press on Dec 02, 2011
Copyright:Attribution Non-commercial No-derivs

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

07/21/2014

pdf

4.1.-

Una de las cosas más habituales en cuanto a la configuración de un STS (lógicamente si este hace las tareas de
un Identity Provider) es el cambio del mecanismo de autenticación.
Por defecto, cuando se crea un STS por medio del asistente este presenta la configuración por defecto,
delegando la autenticación de los tokens en un manejador llamado WindowsUserNameSecurityTokenHandler.
Si no se quiere utilizar las credenciales Windows como mecanismo de validación de los usuarios se tendrá que

modificar el “handler” asociado.

Esta tarea, requiere de varios pasos, en primer lugar, modificar el binding asociado al endpoint que por defecto
presenta el siguiente aspecto.





Aunque se pueda pensar que el trabajo consiste en delegar en WCF y sus enlaces todo el proceso, en realidad,
WIF, puentea toda la infraestructura para delegar el trabajo en su propio stack.
Si se quiere establecer una autenticación en base a usuario y contraseña, por ejemplo, se tendría que modificar

la configuración anterior incluyendo el atributo clientCredentialType=”UserName”.





Una vez hecho esto, se procederá a indicarle a WIF cuál será el manejador de los tokens que lleguen a nuestro
STS. Para ello, se incluirá la sección de configuración personalizada Microsoft.IdentityModel y se establecerá un

“handler” concreto.




type="Microsoft.IdentityModel.Tokens.WindowsUserNameSecurityTokenHandler,Microsoft.IdentityModel,
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>



Hay que tener en cuenta cómo en esta sección se ha quitado el manejador encargado de “manejar” identidades
Windows por un nuevo manejador llamado CustomTokenHandler.
Todos estos “manejadores” están incluidos dentro de la jerarquía que impone SecurityTokenHandler y que por
defecto, se pueden ver en la siguiente imagen extraída de reflector.

Windows Identity Foundation 47

Figura 2.6.- Manejadores WIF

Cada uno de los handlers de esta jerarquía servirá como base para los distintos mecanismos de autenticación,
usuario, kerberos, certificados, tokens saml11 o saml2 etc…
Como el propósito de este ejemplo es crear un manejador para credenciales de tipo usuario/contraseña se
tendrá que hacer una implementación personalizada de la clase UserNameSecurityTokenHandler.
Crear un manejador de tokens de seguridad es tan sencillo como sobrescribir dos elementos, una propiedad
llamada CanValidateToken y un método de validación de tokens ValidateToken.
El siguiente fragmento de código muestra una posible implementación de un token de seguridad, lógicamente,
es un ejemplo sencillo y no se hace la validación de los tokens contra ningún almacén.

public class CustomTokenHandler
: Microsoft.IdentityModel.Tokens.UserNameSecurityTokenHandler
{

public override bool CanValidateToken
{

get
{

return true;

}

}
public override Microsoft.IdentityModel.Claims.ClaimsIdentityCollection
ValidateToken(System.IdentityModel.Tokens.SecurityToken token)
{

//validate the token, the SecurityToken can be (
RsaSecurityToken,WindowsSecurityToken,SessionSecurityToken ..... ) but
//for UserNameSecurityTokenHandler the SecurityToken is a UserNameSecurityToken

UserNameSecurityToken userNameToken = token as UserNameSecurityToken;
if (userNameToken != null)
{

//TODO:validate data into a specific store

if (userNameToken.UserName.Equals("unai",
StringComparison.InvariantCultureIgnoreCase))
{

//Create the principal claims identity collection
var claims = new ClaimsIdentityCollection();
var claimIdentity = new ClaimsIdentity();

//assign identity ( this is the input collection of claims in

GetOutputClaimsIdentity in SecurityTokenService)

claimIdentity.Claims.Add(new Claim(WSIdentityConstants.ClaimTypes.Name,

"unai"));

//return claims
claims.Add(claimIdentity);
return claims;

}
else

throw new SecurityException("Invalid user or password");

}

48 Súbete a la nube de Microsoft Parte 3: Windows AppFabric

else

throw new SecurityException("Invalid token for Custom Token Handler!");

}

}

Con estos pasos, ya se tiene modificado el sistema de autenticación, aunque falta un pequeño paso.
El pasos que falta consiste en incluir el certificado que es necesario usar para la encriptación de los datos
incluidos en el mensaje de validación (user/pwd), del mismo modo que con cualquier servicio WCF. Para ello,
simplemente se incluirá dentro del comportamiento una entrada ServiceCredentials.








Y con esto ya se tiene todo el trabajo realizado, solamente quedará actualizar los clientes para actualizar la
configuración de los enlaces hacia el nuevo STS.

CONFIGURACIÓN

5.-

En el punto entrada se vio como modificar el manejador de tokens del STS, de forma, que se podría cambiar el
sistema de autenticación de usuarios dentro de este. De hecho, se modificó el STS generado por defecto con
FedUtil introduciendo un UsernameSecurityTokenHandler personalizado.
A lo largo de esta entrada, se verán algunos elementos particulares de la configuración que no han sido tenidos
en cuenta pero que también es importante entenderlos.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->