public void Configure(string name, JwtBearerOptions options)
        {
            var definitions = _localApiDescriptor.GetResourceDefinitions();

            if (!definitions.ContainsKey(_apiName))
            {
                return;
            }

            if (string.Equals(name, _scheme, StringComparison.Ordinal))
            {
                options.Events = options.Events ?? new JwtBearerEvents();
                options.Events.OnMessageReceived = ResolveAuthorityAndKeysAsync;
                options.Audience = _apiName;

                var staticConfiguration = new OpenIdConnectConfiguration
                {
                    Issuer = options.Authority
                };

                var manager = new StaticConfigurationManager(staticConfiguration);
                options.ConfigurationManager = manager;
                options.TokenValidationParameters.ValidIssuer   = options.Authority;
                options.TokenValidationParameters.NameClaimType = "name";
                options.TokenValidationParameters.RoleClaimType = "role";
            }
        }
Esempio n. 2
0
    internal IEnumerable <ApiResource> GetApiResources()
    {
        var data = _configuration
                   .Get <Dictionary <string, ResourceDefinition> >();

        if (data != null)
        {
            foreach (var kvp in data)
            {
                _logger.LogInformation(LoggerEventIds.ConfiguringAPIResource, "Configuring API resource '{ApiResourceName}'.", kvp.Key);
                yield return(GetResource(kvp.Key, kvp.Value));
            }
        }

        var localResources = _localApiDescriptor?.GetResourceDefinitions();

        if (localResources != null)
        {
            foreach (var kvp in localResources)
            {
                _logger.LogInformation(LoggerEventIds.ConfiguringLocalAPIResource, "Configuring local API resource '{ApiResourceName}'.", kvp.Key);
                yield return(GetResource(kvp.Key, kvp.Value));
            }
        }
    }