public async Task Init()
        {
            if (SecurityTokenValidator == null)
            {
                SecurityTokenValidator = new JwtSecurityTokenHandler();
            }

            if (JsonWebKeyClient == null)
            {
                JsonWebKeyClient = new JsonWebKeyClient(appSettings);
            }

            var keys = await JsonWebKeyClient.GetAsync().ConfigureAwait(false);

            if (keys == null || keys.Count == 0)
            {
                Log.Warn($"Unable to load Json Web Kit Set from {appSettings.JwksUrl}");
            }
            else
            {
                tokenValidationParameters.IssuerSigningKeys = keys;
            }

            tokenValidationParameters.ValidAudience = appSettings.ClientId;

            var realms = new string[2];
            var realm  = appSettings.AuthRealm;

            realms[0] = realm.EndsWith("/") ? realm.TrimEnd('/') : $"{realm}/";
            realms[1] = realm;

            tokenValidationParameters.ValidIssuers = realms;
        }
コード例 #2
0
 public TokenConfigService(IEnvironmentWrapper env, IJsonWebKeyService jwkService, IJsonWebKeyClient jwkClient)
 {
     _env        = env;
     _jwkService = jwkService;
     _jwkClient  = jwkClient;
 }