Active Directory账户的Oauth 2令牌

22

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

在此项目中,Web Api 将被 Active Directory Windows 域帐户所使用的多平台移动应用程序所使用。

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

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

这种方法可行吗?

您是否了解任何更好的使用 OAuth 2.0 为 AD Windows 帐户进行身份验证的方法?

注:

我也正在调查 Active Directory 是否能够自己提供 OAuth 2.0 端点。


如果 Azure AD 已经可以为您发放访问令牌,那么为什么您需要自己发放访问令牌呢? 请参阅以下链接了解详情:https://msdn.microsoft.com/en-us/library/azure/dn645545.aspx?由于两者的流程都是标准的 OAuth 2.0,因此您的客户端不会改变。 - Hans Z.
2
因为我们在Azure上没有使用AD。 - systempuntoout
抱歉,对其他答案感到困惑 :-; - Hans Z.
2个回答

17
这里有一个非常好的指南,介绍如何使用Active Directory联合身份验证服务来获取OAuth2令牌。https://technet.microsoft.com/zh-cn/library/dn633593.aspx。您需要按照底部所有链接中的步骤进行操作,以获取完整的指南。
请注意,它提到使用Windows Azure AD Authentication Library for .NET。但根据该文档,该库用于Azure Active Directory和本地Active Directory。
至于工作流程,一旦经过身份验证,您将能够获取并呈现一个承载令牌给您的WebAPI。然后,您的WebAPI会“验证令牌的签名,以确保它是由AD FS发出的,检查令牌是否仍然有效且没有过期,并可能还验证令牌中的其他声明。此时,客户端要么被授权并发送请求的信息在响应中,要么未经授权且不会发送任何数据。”-https://technet.microsoft.com/zh-cn/library/dn633593.aspx

9

我该如何在Asp.net MVC网站上使用ADFS提供的令牌? - systempuntoout
http://www.cloudidentity.com/blog/2013/10/25/securing-a-web-api-with-adfs-on-ws2012-r2-got-even-easier/ - Hans Z.
赞同最后一个链接,让我们看看有没有更好的东西。 - systempuntoout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接