public void When_Given_User_Return_ClaimsPrincipal() { // Assign #region Options IOptions <LdapConfig> ldapOptions = Options.Create(new LdapConfig()); #endregion #region Service var authService = new LdapAuthenticationService(ldapOptions); #endregion var authenticationProvider = new AuthenticationProvider(authService); var user = new User { DisplayName = "Calle Carlsson", Username = "******", }; // Act var claimsPrincipal = authenticationProvider.GetClaimsPrincipal(user); var identity = claimsPrincipal.Identities.SingleOrDefault(); var actClaims = claimsPrincipal.Claims.ToList(); // Assert Assert.True(identity.IsAuthenticated); Assert.True(identity.AuthenticationType == authService.GetType().Name); Assert.True(actClaims.SingleOrDefault(m => m.Type == "displayName").Value == user.DisplayName); Assert.True(actClaims.SingleOrDefault(m => m.Type == "username").Value == user.Username); }
public void When_Given_ClaimsPrincipal_Return_JWT() { // Assign #region TokenProviderOptions var secretKey = "A very secret key123!!!"; var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secretKey)); var audience = "TestAudience"; var issuer = "TestIssuer"; var expiration = TimeSpan.FromMinutes(5); var signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256); IOptions <TokenProviderOptions> tokenProviderOptions = Options.Create ( new TokenProviderOptions { Audience = audience, Expiration = expiration, Issuer = issuer, SigningCredentials = signingCredentials, } ); #endregion #region DateTimeFactoryMock var dateTimeOffset = new DateTimeOffset(2017, 02, 10, 11, 11, 12, TimeSpan.FromMinutes(0)); var dateTimeFactoryMock = new Mock <IDateTimeFactory>(); dateTimeFactoryMock.Setup(m => m.DateTimeOffset).Returns(dateTimeOffset); #endregion #region ClaimsPrincipal var user = new User { DisplayName = "Oskar", IsAdmin = true, Username = "******", }; var authOptions = Options.Create(new LdapConfig()); var authService = new LdapAuthenticationService(authOptions); var authProvider = new AuthenticationProvider(authService); var userClaimsPrincipal = authProvider.GetClaimsPrincipal(user); #endregion #region JwtSecurityTokenHandler var handler = new JwtSecurityTokenHandler(); #endregion var jwtTokenProvider = new JwtTokenProvider(tokenProviderOptions, dateTimeFactoryMock.Object); // Act var encodedToken = jwtTokenProvider.GenerateToken(userClaimsPrincipal); var jwt = handler.ReadJwtToken(encodedToken.accessToken); // Assert Assert.True(jwt.Claims.SingleOrDefault(c => c.Type == "displayName").Value == "Oskar"); Assert.True(jwt.Claims.SingleOrDefault(c => c.Type == JwtRegisteredClaimNames.Iat).Value == dateTimeOffset.ToUnixTimeSeconds().ToString()); }
public void When_Given_Developer_Ignore_Role_And_Return_ClaimsPrincipal() { // Assign #region Options IOptions <LdapConfig> ldapOptions = Options.Create(new LdapConfig()); #endregion #region Service var authService = new LdapAuthenticationService(ldapOptions); #endregion var authenticationProvider = new AuthenticationProvider(authService); var user = new User { DisplayName = "Calle Carlsson", Username = "******", IsDeveloper = true, }; // Act var claimsPrincipal = authenticationProvider.GetClaimsPrincipal(user); // Assert Assert.False(claimsPrincipal.HasClaim(c => c.Type == ClaimTypes.Role)); }
public void When_Given_Admin_Return_ClaimsPrincipal() { // Assign #region Options IOptions <LdapConfig> ldapOptions = Options.Create(new LdapConfig()); #endregion #region Service var authService = new LdapAuthenticationService(ldapOptions); #endregion var authenticationProvider = new AuthenticationProvider(authService); var user = new User { DisplayName = "Calle Carlsson", Username = "******", Email = "*****@*****.**", IsAdmin = true, }; // Act var claimsPrincipal = authenticationProvider.GetClaimsPrincipal(user); // Assert Assert.True(claimsPrincipal.HasClaim(c => c.Type == ClaimTypes.Role && c.Value == "Admin")); }