我过去曾使用Owin在我的Mvc Web Api项目中创建 token 端点,以提供具有“Resource Owner Password Credentials”授予类型的oauth 2.0 token ,其中访问 token 提供者将检查数据库用户表以验证移动设备提供的凭据的有效性。客户(使用Visual Studio工具为Cordova开发的多平台应用)。
在此项目中,Web API将由 Active Directory Windows域帐户使用的多平台移动应用程序使用。
我想使用Owin Oauth 2.0向这些用户授予访问 token ,但是我不知道如何检查这些凭据的有效性。
我在想的是将/token
端点放在"basic authentication"
后面,并在访问 token 提供者的代码中从身份中获取用户,该身份在经过身份验证的情况下应由Asp.net管道自动创建。
它可以工作吗?
您知道将Oauth 2.0用于AD Windows帐户的更好的主意吗?
注意:
我还在调查Active Directory是否能够自行提供Oauth 2.0端点。
最佳答案
这是一个很好的演练,介绍了如何使用Active Directory联合身份验证服务来获取OAuth2 token 。
https://technet.microsoft.com/en-us/library/dn633593.aspx。
您必须按照底部的所有链接进行操作。
请注意,它指的是使用Windows Azure AD Authentication Library for .NET。但是根据该文档,该库可用于Azure Active Directory和本地Active Directory。
至于工作流程,通过身份验证后,您将可以获取承载 token 并将其提供给WebAPI。然后,您的WebAPI“验证 token 的签名以确保它是由AD FS发出的,检查该 token 是否仍然有效并且尚未过期,并且还可能验证 token 中的其他声明。此时,客户端已被授权并且他们所请求的信息已在响应中发送,或者它们未经授权且不会发送任何数据。” -https://technet.microsoft.com/en-us/library/dn633593.aspx
关于asp.net - Active Directory帐户的Oauth 2 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29586996/