当使用ASP.Net Identity并从外部提供商处检索外部访问令牌时,我如何使用外部访问令牌进行/签发本地访问令牌?
我见过[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
,但无法让我的动作方法正常工作。如果我发送标题
Authentication: Bearer external_access_token
它不会填充User.Identity
Startup.Auth.cs:
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(),
AuthorizeEndpointPath = new PathString("/AccountApi/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
});
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
答案 0 :(得分:1)
OWIN中间件外部身份验证的工作流程涉及
[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)]
不用于允许外部承载令牌用于本地授权承载令牌。 外部承载令牌仅用于验证用户的身份。
OWIN中间件身份验证应始终以返回给用户的 OWIN中间件承载令牌结束。无论用户使用本地登录/密码进行身份验证还是使用外部身份验证Cookie /令牌进行身份验证,用户都必须获取本地权限令牌才能使用安全方法。
如果用户在外部身份验证后不存在于身份数据库中,请注册用户并返回新的承载令牌。