internal TokenInfo(string tokenValue, TokenRole role, DateTime?expires = null, ValidateTokenDelegate validateTokenDelegate = null)
 {
     TokenValue             = tokenValue;
     Role                   = role;
     Expires                = expires;
     _validateTokenDelegate = validateTokenDelegate;
 }
예제 #2
0
        public async Task ValidatesTokenWithoutEasyAuthsHelp()
        {
            // Arrange
            var request = new DefaultHttpContext().Request;

            var logMoq = new Mock <ILogger>();

            string userName = "******";
            string roleName = "my-app-role";
            string audience = "my-audience";
            string issuer   = "my-issuer";
            string token    = "blah-blah";

            var principal = new ClaimsPrincipal(new ClaimsIdentity[] { new ClaimsIdentity(new Claim[] {
                    new Claim("preferred_username", userName),
                    new Claim("roles", roleName)
                }) });

            ICollection <SecurityKey> securityKeys = new SecurityKey[0];

            ValidateTokenDelegate validateTokenDelegate = (string t, TokenValidationParameters p, out SecurityToken st) =>
            {
                st = null;

                Assert.AreEqual(token, t);
                Assert.AreEqual(audience, p.ValidAudiences.Single());
                Assert.AreEqual(issuer, p.ValidIssuers.Single());
                Assert.AreEqual(securityKeys, p.IssuerSigningKeys);
            };

            SecurityToken st            = null;
            var           jwtHandlerMoq = new Mock <JwtSecurityTokenHandler>();

            jwtHandlerMoq.Setup(h => h.ValidateToken(It.IsAny <string>(), It.IsAny <TokenValidationParameters>(), out st))
            .Callback(validateTokenDelegate)
            .Returns(principal);

            Auth.MockedJwtSecurityTokenHandler = jwtHandlerMoq.Object;
            Auth.GetSigningKeysTask            = Task.FromResult(securityKeys);

            Environment.SetEnvironmentVariable(EnvVariableNames.DFM_HUB_NAME, string.Empty);
            Environment.SetEnvironmentVariable(EnvVariableNames.WEBSITE_AUTH_CLIENT_ID, audience);
            Environment.SetEnvironmentVariable(EnvVariableNames.WEBSITE_AUTH_OPENID_ISSUER, issuer);

            Environment.SetEnvironmentVariable(EnvVariableNames.DFM_ALLOWED_USER_NAMES, "[email protected],[email protected]," + userName);
            Environment.SetEnvironmentVariable(EnvVariableNames.DFM_ALLOWED_APP_ROLES, roleName);
            Environment.SetEnvironmentVariable(EnvVariableNames.AzureWebJobsStorage, token);

            // Need to reset DfmEndpoint.Settings
            DfmEndpoint.Setup();

            request.Headers.Add("Authorization", "Bearer " + token);

            // Act
            var result = await About.DfmAboutFunction(request, "TestHub", logMoq.Object);

            // Assert
            Assert.IsInstanceOfType(result, typeof(ContentResult));
        }
 public SimpleSecurityTokenHandler(string identifier, ValidateTokenDelegate validator)
 {
     _identifier = new string[] { identifier };
     Validator = validator;
 }
 public SimpleSecurityTokenHandler(ValidateTokenDelegate validator) 
     : this(Guid.NewGuid().ToString(), validator)
 { }
예제 #5
0
 public SimpleSecurityTokenHandler(string identifier, ValidateTokenDelegate validator)
 {
     _identifier = new string[] { identifier };
     Validator   = validator;
 }
예제 #6
0
 public SimpleSecurityTokenHandler(ValidateTokenDelegate validator)
     : this(Guid.NewGuid().ToString(), validator)
 {
 }
 public HttpRequestSecurityTokenHandler(ValidateTokenDelegate validator)
     : this(Guid.NewGuid().ToString(), validator)
 {
 }
 public HttpRequestSecurityTokenHandler(ValidateTokenDelegate validator) 
     : this(Guid.NewGuid().ToString(), validator)
 { }