internal void ConfigureIntrospection(OAuth2IntrospectionOptions introspectionOptions)
        {
            if (String.IsNullOrWhiteSpace(ApiSecret))
            {
                return;
            }

            if (String.IsNullOrWhiteSpace(ApiName))
            {
                throw new ArgumentException("ApiName must be configured if ApiSecret is set.");
            }

            introspectionOptions.Authority      = Authority;
            introspectionOptions.ClientId       = ApiName;
            introspectionOptions.ClientSecret   = ApiSecret;
            introspectionOptions.NameClaimType  = NameClaimType;
            introspectionOptions.RoleClaimType  = RoleClaimType;
            introspectionOptions.TokenRetriever = InternalTokenRetriever;
            introspectionOptions.SaveToken      = SaveToken;

            introspectionOptions.EnableCaching = EnableCaching;
            introspectionOptions.CacheDuration = CacheDuration;

            introspectionOptions.DiscoveryTimeout     = BackChannelTimeouts;
            introspectionOptions.IntrospectionTimeout = BackChannelTimeouts;

            introspectionOptions.DiscoveryPolicy.RequireHttps = RequireHttpsMetadata;

            if (IntrospectionBackChannelHandler != null)
            {
                introspectionOptions.IntrospectionHttpHandler = IntrospectionBackChannelHandler;
            }

            if (IntrospectionDiscoveryHandler != null)
            {
                introspectionOptions.DiscoveryHttpHandler = IntrospectionDiscoveryHandler;
            }
        }
Example #2
0
        public static IApplicationBuilder UseOAuth2IntrospectionAuthentication(this IApplicationBuilder app, OAuth2IntrospectionOptions options)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            return(app.UseMiddleware <OAuth2IntrospectionMiddleware>(Options.Create(options)));
        }