为本地交易外部访问令牌 - ASP.Net Identity

时间:2015-06-29 16:11:26

标签: asp.net-identity asp.net-identity-2

当使用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());

1 个答案:

答案 0 :(得分:1)

OWIN中间件外部身份验证的工作流程涉及

  • 重定向/查询外部 OAuth提供程序
  • 使用外部Cookie和所有声​​明信息
  • ASP.NET身份注册新用户
  • 将承载令牌返回表示层

[HostAuthentication(DefaultAuthenticationTypes.ExternalBearer)] 不用于允许外部承载令牌用于本地授权承载令牌。 外部承载令牌仅用于验证用户的身份。

OWIN中间件身份验证应始终以返回给用户的 OWIN中间件承载令牌结束。无论用户使用本地登录/密码进行身份验证还是使用外部身份验证Cookie /令牌进行身份验证,用户都必须获取本地权限令牌才能使用安全方法。

如果用户在外部身份验证后不存在于身份数据库中,请注册用户并返回新的承载令牌。