【问题标题】:Oauth 2 token for Active Directory accountsActive Directory 帐户的 Oauth 2 令牌
【发布时间】:2015-06-17 16:21:27
【问题描述】:

我过去曾使用 Owin 在我的 Mvc Web Api 项目中创建令牌端点,以提供带有“Resource Owner Password Credentials”的 oauth 2.0 令牌授权类型,其中访问令牌提供者将检查数据库用户表来验证移动客户端提供的凭据的有效性(使用 Visual Studio Tool for Cordova 开发的多平台应用程序)。

在这个项目中,Web Api 将由 Active Directory Windows 域帐户

使用的多平台移动应用程序使用

我想使用 Owin Oauth 2.0 向这些用户授予访问令牌,但我不知道如何检查这些凭据的有效性。

我的想法是将/token 端点放在"basic authentication" 后面,并在访问令牌提供程序的代码中从身份中获取用户,在经过身份验证的情况下,应该由Asp 自动创建。网络管道。

有什么办法可以吗?

您知道将 Oauth 2.0 用于 AD Windows 帐户的更好主意吗?

注意:

我还在调查 Active Directory 是否能够自行提供 Oauth 2.0 端点。

【问题讨论】:

  • 如果 Azure AD 可以为您执行,为什么您需要发布自己的访问令牌:msdn.microsoft.com/en-us/library/azure/dn645545.aspx?由于两者的流程都是标准 OAuth 2.0,因此您的客户不会改变
  • 因为我们没有在 Azure 上使用 AD。
  • 抱歉,被其他答案弄糊涂了:-;

标签: asp.net asp.net-mvc active-directory oauth-2.0 owin


【解决方案1】:

这是关于如何使用 Active Directory 联合身份验证服务获取 OAuth2 令牌的一个很好的演练。 https://technet.microsoft.com/en-us/library/dn633593.aspx。 您必须点击底部的所有链接才能获得整个演练。

注意这里指的是使用Windows Azure AD Authentication Library for .NET。但根据该文档,该库用于 Azure Active Directory 和本地 Active Directory。

就工作流程而言,一旦通过身份验证,您就可以获取承载令牌并将其提供给您的 WebAPI。然后,您的 WebAPI “验证令牌的签名以确保它是由 AD FS 颁发的,检查令牌是否仍然有效且尚未过期,并且可能还验证令牌中的其他声明。此时,客户端要么是授权的,并且他们请求的信息会在响应中发送,要么他们是未经授权的,并且不会发送任何数据。” - https://technet.microsoft.com/en-us/library/dn633593.aspx

【讨论】:

    【解决方案2】:

    您可以在 AD 之上使用 ADFS 3.0,这将为您提供 OAuth 2.0 授权服务器功能:http://blog.scottlogic.com/2015/03/09/OAUTH2-Authentication-with-ADFS-3.0.html

    将令牌端点放在“基本身份验证”后面对您没有帮助,因为您将在令牌端点上对客户端进行身份验证,而不是对用户进行身份验证。不过,您可以将授权端点放在“基本身份验证”之后。

    【讨论】:

    猜你喜欢
    • 2020-11-17
    • 2012-04-05
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多