过去我已经使用Owin在我的Mvc Web Api项目中创建一个令牌端点,以提供具有“
Resource Owner Password Credentials”授权类型的oauth 2.0令牌,其中访问令牌提供者将检查数据库用户表以验证移动设备提供的凭据的有效性客户端(用于Cordova的Visual studio工具开发的多平台应用程序).
在此项目中,Web Api将被Active Directory Windows域帐户使用的多平台Mobile应用程序所使用
我想使用Owin Oauth 2.0向这些用户授予访问令牌,但是我不知道如何检查这些凭据的有效性.
我所想的是将/ token端点放在“基本身份验证”后面,并且在访问令牌提供程序的代码中,从身份获取用户,在使用身份验证的情况下,应由Asp.net管道自动创建.
这是可以工作的东西吗?
你有没有更好的想法使用Oauth 2.0的AD Windows帐户?
注意:
我还在调查Active Directory是否能够自己提供Oauth 2.0端点.
解决方法
以下是如何使用Active Directory联合身份验证服务获取OAuth2令牌的一个很好的演练.
https://technet.microsoft.com/en-us/library/dn633593.aspx.
您将不得不按照底部的所有链接进行整个演练.
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