Web API(在IIS下)带有承载令牌的Windows身份验证

时间:2018-04-11 17:10:23

标签: asp.net-web-api owin windows-authentication bearer-token mixed-authentication

奇怪的是,这个简单的解决方案还没有实现,或者我不能谷歌它; p)(我在过去5天尝试)。 我的要求:

  1. 从URL上调用Angular App(withCredentials = true)以查看它是否为Windows用户(挑战NTLM )。 (我可以根据访问它的URL用户来配置它)。如果它是一个有效的Windows用户,我在数据库中找到它们,我将返回Bearer Token。
  2. 如果Above call返回Unauthorized(401),我会在AngularJS(1.6)客户端向用户显示登录表单。用户提供非Windows用户名和密码,当用户点击登录时,从角度服务转到另一个URL(用于获取Bearer Token - 标准OWIN内容)。
  3. **在上述任何情况下,我都会将Bearer Token存储在我的客户端中以进行任何进一步的API交互。

    • 我没有使用ASP.NET身份,但我有自己的DAL来验证来自DB的用户。
    • 我将拥有自己的自定义Authorize(继承)属性(仅检查Bearer Token)。
    • 我不希望用户在我的表单上输入Windows登录名并从Active Directory对其进行身份验证。
    • 我不希望Windows用户点击任何单独的按钮进行登录。 (他们应该只是无缝登录 - 来自浏览器的提示,要求他们登录窗口)

    我已经看过几百个帖子,但我无处可以看到确切的需求。混合身份验证需要基于Cookie或单独的MVC实现。 (很多混乱) 已经提到:

    有人可以帮忙吗?

    明天晚上我可能不得不放弃: - (

0 个答案:

没有答案