WebApi:令牌

有没有什么办法在Web api应用程序中使用基于令牌的身份验证和Windows身份验证?

我们有一个使用基于令牌(承载)认证的“标准”web-api应用程序。

OAuth配置如下所示:

OAuthOptions = new OAuthAuthorizationServerOptions {
     TokenEndpointPath = new PathString("/Token"),
     Provider = new ApplicationOAuthProvider(PublicClientId),
     AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
};
app.UseOAuthBearerTokens(OAuthOptions);

一切正常。 当调用“/ Token”-endpoint时,您获得令牌并获得授权。

现在我想添加Windows身份验证,以使用调用web-api的客户端的windows-os的登录用户启用“signle-sign-on”。

我到目前为止所做的:

更改了web.config并添加了

<system.web>
  <identity impersonate="true" />
  <validation validateIntegratedModeConfiguration="false" />
</system.web>

现在,每个请求都由Windows用户进行身份验证,而不使用令牌进程。

所以我添加了anoother提供程序,用您的Windows身份登录并获得一个令牌:

app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions {
    TokenEndpointPath = new PathString("/IdentityToken"),
    Provider = new WindowsIdenityAuthorizationServerProvider(),
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
});

提供程序应该与ApplicationOAuthProvider几乎相同,该ApplicationOAuthProvider会为使用用户名和密码的请求生成令牌,但验证密码除外。 不幸的是,请求中没有设置用户/身份对“/ IdentityToken”-endpoint的身份。

任何人都可以帮我解决这个问题,还是我完全在错误的轨道上?

链接地址: http://www.djcxy.com/p/22425.html

上一篇: WebApi: Token

下一篇: WebAPI mixed authentication with OWIN Tokens and windows authentication