public JwtBearerTokenAuthenticationOptions(JwtOptions jwtOptions) { if (jwtOptions == null) { throw new ArgumentNullException("jwtOptions"); } byte[] symmetricKeyBytes = Encoding.UTF8.GetBytes(jwtOptions.JwtSigningKeyAsUtf8); string symmetricKeyAsBase64 = Convert.ToBase64String(symmetricKeyBytes); var symmetricKeyIssuerSecurityTokenProvider = new SymmetricKeyIssuerSecurityTokenProvider( jwtOptions.Issuer, symmetricKeyAsBase64); var providers = new IIssuerSecurityTokenProvider[] { symmetricKeyIssuerSecurityTokenProvider }; _jwtBearerOptions = new JwtBearerAuthenticationOptions { AllowedAudiences = new List<string> { jwtOptions.Audience }, IssuerSecurityTokenProviders = providers }; _jwtOptions = jwtOptions; }
public ClaimsPrincipal Validate(string jwtTokenAsBase64, JwtOptions options) { var tokenHandler = new JwtSecurityTokenHandler(); string keyAsUtf8 = options.JwtSigningKeyAsUtf8; byte[] keyAsBytes = Encoding.UTF8.GetBytes(keyAsUtf8); SecurityToken signingToken = new BinarySecretSecurityToken(keyAsBytes); var tokenValidationParameters = new TokenValidationParameters { IssuerSigningToken = signingToken, ValidAudience = options.Audience, ValidIssuer = options.Issuer }; ClaimsPrincipal principal; try { SecurityToken validatedToken; principal = tokenHandler.ValidateToken(jwtTokenAsBase64, tokenValidationParameters, out validatedToken); } catch (Exception ex) { Debug.Write(ex, "error"); principal = new ClaimsPrincipal(new ClaimsIdentity(authenticationType:"")); } return principal; }
public ConsentBuilder(CreateConsentOptions createConsentOptions, HandleConsentOptions consentHandlerOptions, JwtOptions jwtOptions) { if (jwtOptions == null) { throw new ArgumentNullException("jwtOptions"); } _createConsentOptions = createConsentOptions; _consentHandlerOptions = consentHandlerOptions; _jwtOptions = jwtOptions; }
public CustomProviderOptions(JwtOptions jwtOptions, HandleConsentOptions handleConsentOptions) { if (jwtOptions == null) { throw new ArgumentNullException("jwtOptions"); } if (handleConsentOptions == null) { throw new ArgumentNullException("handleConsentOptions"); } _jwtOptions = jwtOptions; _handleConsentOptions = handleConsentOptions; }
public static SecurityTokenDescriptor CreateSecurityTokenDescriptor(IEnumerable<Claim> claims, JwtOptions options) { string keyAsUtf8 = options.JwtSigningKeyAsUtf8; byte[] keyAsBytes = Encoding.UTF8.GetBytes(keyAsUtf8); var claimsIdentity = new ClaimsIdentity(claims, OAuthDefaults.AuthenticationType); var descriptor = new SecurityTokenDescriptor() { SigningCredentials = new SigningCredentials( new InMemorySymmetricSecurityKey(keyAsBytes), HmacSha256, Sha256), Subject = claimsIdentity, TokenIssuerName = options.Issuer, AppliesToAddress = options.Audience }; return descriptor; }
public JwtBearerTokenProvider(JwtOptions options) { _options = options; }