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