I am trying to introspect token recieved from okta inside .net core api, but keep getting "token is not active". With the setup you see bellow I am able to retrieve identity from token.(basic okta auth schema)
service.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = OktaDefaults.ApiAuthenticationScheme;
options.DefaultChallengeScheme = OktaDefaults.ApiAuthenticationScheme;
options.DefaultSignInScheme = OktaDefaults.ApiAuthenticationScheme;
})
.AddOktaWebApi(new OktaWebApiOptions()
{
OktaDomain = configuration["Authentication:Okta:OktaDomain"],
AuthorizationServerId = configuration["Authentication:Okta:AuthorizationServerId"],
Audience = configuration["Authentication:Okta:Audience"]});
But I need to set up authentication with "Introspection" schema here is my configuration:
service.AddAuthentication(auth =>
{
auth.DefaultAuthenticateScheme = "Introspection";
auth.DefaultChallengeScheme = "Introspection";
auth.DefaultSignInScheme = "Introspection";
})
.AddOAuth2Introspection("Introspection", options =>
{
options.Authority = configuration["Authentication:Okta:Authority"];
options.ClientId = configuration["Authentication:Okta:ClientId"];
options.TokenRetriever = request =>
{
string token = "";
if (request.Headers.ContainsKey("Authorization"))
{
var parts = request.Headers["Authorization"].ToString().Split(" ");
token = parts[1];
return token;
}
if (request.Query.ContainsKey("access_token"))
{
token = request.Query["access_token"];
}
if (request.Cookies.ContainsKey("access_token"))
{
token = request.Cookies["access_token"];
}
return token;
};
});
Does anyone know what could be the reason?