Continuando la serie de post sobre claims... vamos al grano! Empecemos con algo de código:
Creando claims
¿Cómo creamos claims? Muy sencillo, como veíamos en el primer post sólo necesitamos un tipo y un valor
var primerClaim = new Claim("Nombre", "Tobías");
¿No parece muy elegante trabajar con cadenas "hardcodeadas"? Pues disponemos de enumerados que nos echarán una mano con tipos de claim prefedinidos:
var segundoClaim = new Claim(ClaimTypes.Country, "Antigua y Barbuda")
Si echamos un ojo a los valores disponibles, vemos que hay bastantes, y que todos están determinados con namespaces completos (buena práctica para evitar colisiones).
En cualquier caso, si lo predefinido no basta, definiremos nuestros propios tipos, siempre utilizando namespaces (y constantes o enumerados por favor):
var tercerClaim = new Claim("http://serginet.com/AficionPrincipal", "Tecnología");
Lo normal es que un usuario disponga de más de un claim, así que lo habitual será crear colecciones de claims:
IList<Claim> coleccionClaims = new List<Claim>
{
primerClaim, segundoClaim, tercerClaim
};
{
primerClaim, segundoClaim, tercerClaim
};
Identidades y principals
Una vez que disponemos de una colecciónd de claims, podemos crear una identidad:
var identidad = new ClaimsIdentity(coleccionClaims);
Y comprobar si dicha entidad está o no autenticada:
Console.WriteLine("Identidad autenticada:" + identidad.IsAuthenticated);
Si lo ejecutas verás que no... para hacerlo, tan solo tenemos que crear la identidad estableciendo un tipo de autenticación:
var identidadAutenticada = new ClaimsIdentity(coleccionClaims,"Autenticacion basica serginet.com");
Y finalmente con una identidad podemos crear un principal (el contexto de seguridad bajo el que se ejecuta nuestra código) y asignarlo a nuestro thread de ejecución::
var principal = new ClaimsPrincipal(identidadAutenticada);
Thread.CurrentPrincipal = principal;
Como veis todo parece bastante sencillo... continuaremos en la siguiente entrega haciendo uso de todos estos conceptos para lo que realmente importa: Hacer uso en nuestra aplicación de los claims para tareas de autenticación y autorización.
Aquí os dejo el código
Post publicados en Claims Series:
- Claims Series 1: Una introducción a claims para profanos, como yo :-)
- Claims Series 2: Un poco de código por favor
No hay comentarios:
Publicar un comentario