【问题标题】:Combining OAuth with Active Directory for authentication将 OAuth 与 Active Directory 相结合进行身份验证
【发布时间】:2016-03-24 10:59:52
【问题描述】:

我们有与 WebApi 后端配合使用的 Angular 前端,并且我们使用 OAUTH(Bearer token) 作为身份验证模式。

一切正常。

现在我们有一个要求,其中一个客户想要验证已经登录的用户(Active Directory)并让他们跳过登录,用户也已经存在于我们的数据库中。

我们希望保持整个 OAUTH 机制不变,但添加了一个额外的步骤,我们检查当前登录的用户(Active Directory)是否与我们的数据库用户(在这种情况下为电子邮件)匹配,然后我们生成一个令牌并让客户端无需在每次登录时都提供用户名/密码。

任何关于如何实现这一点的想法和任何代码示例都会有所帮助。

如果您需要更多解释,请告诉我。

谢谢。

【问题讨论】:

    标签: angularjs asp.net-web-api oauth active-directory single-sign-on


    【解决方案1】:

    您可以存储初始登录后从服务器返回的令牌。然后在所有后续请求中,在请求标头中包含令牌。

    例如

    授权:承载 0b79bab50daca910b000d4f1a2b675d604257e42

    【讨论】:

    • 这是正常的 OAuth 行为,正如我在问题中提到的那样,它已经在起作用。这与我正在验证 ActiveDirectory 用户的问题有何关系?
    • 对不起,我没听懂。是否需要在开始时使用 Active Directory 对用户进行身份验证,或者您想在每个请求中检查用户是否存在于数据库中?
    • 另外一个问题。表单您从哪里访问您的应用程序,是从互联网还是本地网络?
    • 用户已经登录到机器(AD)并且站点托管在Intranet中。如果他们来到该站点,它不应该要求登录,因为他们已经登录,他们的站点应该检查登录的用户(AD 用户)是否存在于数据库中,如果它生成令牌并让用户进入而不需要登录详细信息.这解释清楚了吗?
    • 如果用户已经登录,那么您可以使用以下“HttpContext.Current.User.Identity.Name”访问他/她的身份,然后您可以将其与数据库中存储的值进行比较跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 2017-12-29
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多