Exemple #1
0
        public async Task IsValidToken_WithTokenValidationParameters_NullClaims_ValidToken()
        {
            // Arrange
            string authority = $"http://{Util.GetRandomString(10).ToLower()}.com";
            string issuer    = $"http://{Util.GetRandomString(10).ToLower()}.com";

            IdentityModelEventSource.ShowPII = true;
            int daysValid = 7;

            RSA    rsa        = new RSACryptoServiceProvider(512);
            string privateKey = rsa.ToCustomXmlString(true);

            TokenValidationParameters tokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                ValidateIssuer           = true,
                ValidateAudience         = true,
                ValidIssuer      = issuer,
                ValidAudience    = authority,
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(privateKey))
            };

            string token = CreateJwt(issuer, authority, privateKey, daysValid);

            // Act
            JwtTokenReader jwtTokenReader = new JwtTokenReader(tokenValidationParameters);
            bool           isTokenValid   = await jwtTokenReader.IsValidTokenAsync(token);

            // Assert
            Assert.True(isTokenValid);
        }
Exemple #2
0
        public async Task IsValidToken_WithTokenValidationParametersAndClaimCheck_InvalidToken_WithException()
        {
            // Arrange
            TokenValidationParameters tokenValidationParameters = new TokenValidationParameters();

            string issuer    = Util.GetRandomString(10);
            string authority = Util.GetRandomString(10);
            int    daysValid = 7;

            RSA    rsa        = new RSACryptoServiceProvider(512);
            string privateKey = rsa.ToCustomXmlString(true);

            Dictionary <string, string> claimCheck = new Dictionary <string, string>
            {
                { JwtClaimTypes.Audience, authority }
            };

            string token = CreateJwt(issuer, authority, privateKey, daysValid, claimCheck);

            // Act
            JwtTokenReader jwtTokenReader = new JwtTokenReader(tokenValidationParameters, claimCheck);
            bool           isTokenValid   = await jwtTokenReader.IsValidTokenAsync(token);

            // Assert
            Assert.False(isTokenValid);
        }
Exemple #3
0
        public async Task IsValidToken_WithTokenValidationParametersAndClaimCheck_InvalidClaims()
        {
            // Arrange
            string authority = $"http://{Util.GetRandomString(10).ToLower()}.com";
            string issuer    = $"http://{Util.GetRandomString(10).ToLower()}.com";
            string oid       = Util.GetRandomString(10);

            IdentityModelEventSource.ShowPII = true;
            int daysValid = 7;

            RSA    rsa        = new RSACryptoServiceProvider(512);
            string privateKey = rsa.ToCustomXmlString(true);

            Dictionary <string, string> claimCheck = new Dictionary <string, string>
            {
                { JwtClaimTypes.Audience, authority },
                { "oid", oid },
                { "uud", Guid.NewGuid().ToString() }
            };

            TokenValidationParameters tokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                ValidateIssuer           = true,
                ValidateAudience         = true,
                ValidIssuer      = issuer,
                ValidAudience    = authority,
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(privateKey))
            };

            string token = CreateJwt(issuer, authority, privateKey, daysValid, claimCheck);

            // Act
            JwtTokenReader jwtTokenReader = new JwtTokenReader(tokenValidationParameters, claimCheck);
            bool           isTokenValid   = await jwtTokenReader.IsValidTokenAsync(token);

            // Assert
            Assert.False(isTokenValid);
        }