コード例 #1
0
        /// <summary>
        /// Creates an instance of type <see cref="SigningCredentials"/> based on the specified parameters.
        /// </summary>
        private SigningCredentials CreateSigningCredentials(string issuerSigningKey, string encryptionAlgorithm)
        {
            SymmetricSecurityKey symmetricSecurityKey =
                SymmetricSecurityKeyHelper.CreateFromString(issuerSigningKey);

            return(new SigningCredentials(symmetricSecurityKey, encryptionAlgorithm));
        }
コード例 #2
0
        /// <summary>
        /// Enables the JWT bearer authentication by registering it in the specified <see cref="serviceCollection"/>.
        /// </summary>
        private static void AddJwtBearerAuthentication(IServiceCollection serviceCollection)
        {
            using ServiceProvider provider = serviceCollection.BuildServiceProvider();
            JwtAccessTokenConfig tokenConfig = provider
                                               .GetRequiredService <IOptions <JwtAccessTokenConfig> >()
                                               .Value;

            serviceCollection
            .AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(o =>
            {
                o.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateLifetime         = true,
                    ValidateIssuer           = true,
                    ValidateAudience         = true,
                    ValidateIssuerSigningKey = true,

                    ClockSkew        = tokenConfig.ClockSkew,
                    ValidIssuer      = tokenConfig.ValidIssuer,
                    ValidAudience    = tokenConfig.ValidAudience,
                    IssuerSigningKey =
                        SymmetricSecurityKeyHelper.CreateFromString(tokenConfig.IssuerSigningKey)
                };
            });
        }