首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web api 2- windows +客户端证书身份验证-这是可能的吗?

Web api 2- windows +客户端证书身份验证-这是可能的吗?
EN

Stack Overflow用户
提问于 2017-04-08 05:08:23
回答 1查看 296关注 0票数 0

我目前有一个托管在IIS中的asp.net web api 2站点,使用windows身份验证进行安全保护。现在,除了windows之外,我们还需要支持客户端证书身份验证,我正在努力找出:-如果这是可能的-是否有任何可用的工作示例

我想也许能够添加额外的owin中间件或消息处理程序或过滤器,但我看不到任何现有的专门为windows做这件事的,而不是仅仅依靠IIS。我知道架构身份模型可以做客户端认证,但不确定两者是否可以结合起来?

我认为可能类似的forms +win示例如下https://techblog.dorogin.com/mixed-windows-forms-authentication-for-ajax-single-page-application-e4aaaac0424a

EN

回答 1

Stack Overflow用户

发布于 2017-04-12 15:13:35

对,所以我设法弄明白了。值得庆幸的是,如果控制器返回401,IIS会自动添加协商/ntlm标头,因此,如果用户使用的是windows浏览器,它将照常自动进行身份验证。因此,考虑到这一点,为了保持windows身份验证的工作,我:

  • 在IIS和VS中更新了站点,以允许匿名身份验证和windows身份验证
  • 添加了AuthorizeAttribute作为全局操作筛选器(如果用户在点击筛选器时未通过身份验证,则会返回401 )

为了让客户端证书身份验证有效,我使用了华丽的Thinktecture.IdentityModel库,它只允许我在Startup.cs文件中添加一行(我们使用OWIN,所以这很容易)

代码语言:javascript
复制
app.UseClientCertificateAuthentication();

有关示例,请参阅https://github.com/IdentityModel/Thinktecture.IdentityModel/blob/master/samples/OWIN/AuthenticationTansformation/KatanaAuthentication/Startup.cs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43287113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档