【发布时间】:2022-09-29 21:58:11
【问题描述】:
我正在尝试自省从 .net 核心 api 中的 okta 收到的令牌,但不断收到“令牌未激活”。 通过您在下面看到的设置,我可以从令牌中检索身份。(基本 okta 身份验证模式)
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\"]});
但我需要使用 \"Introspection\" 架构设置身份验证,这是我的配置:
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;
};
});
有谁知道可能是什么原因?
标签: .net vue.js oauth introspection