需要指导在ASP.NET应用程序中实现OAuth 2.0

时间:2014-06-23 18:07:40

标签: asp.net oauth-2.0 azure-active-directory

我创建了一个ASP.NET应用程序和一个Azure-AD域。目前,我已将ASP.NET身份验证设置为命中Azure-AD中的wsfed端点。一切正常,但问题是这会发出一个SAML令牌,我需要一个JWT。根据我在网络搜索后的内容,我需要对Azure-AD域的OAuth 2.0端点进行身份验证。这样做的问题在于,所有配置都按照它的方式配置,我总是从这个端点返回400,可能是因为我的配置文件全部设置为fed auth。我的问题是如何配置我的ASP.NET应用程序,以便它可以与Azure-AD域的OAuth 2.0端点通信?

我需要使用被动身份验证。

1 个答案:

答案 0 :(得分:1)

Azure AD支持OAuth2.0流,您可以在用户使用被动身份验证登录后执行该流,以接收访问令牌以代表用户对WebAPI进行委派调用。您可以使用Active Directory身份验证库(ADAL SDK)来执行OAuth流。此示例应用程序正是这样做的:http://code.msdn.microsoft.com/AAL-Server-to-Server-9aafccc1

但是,对于您的方案,我们现在建议使用OpenId Connect流程,而不是SAML SSO + OAuth。使用Azure AD OpenIDConnect流,Web应用程序接收用于登录用户的SSO令牌(JWT id_token),并且还接收可以兑换访问令牌(JWT访问令牌)的身份验证代码(OAuth身份验证代码)。代表用户访问WebAPI。 Azure AD提供了执行此操作的OWIN组件。此示例应用程序应该会通过您:https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet

最后,请参阅此帮助主题,以查找Azure AD为您的Web Apps / API和Rich-Client / Mobile应用程序支持和推荐的所有身份验证流程:http://msdn.microsoft.com/en-us/library/azure/dn499820.aspx

希望这有帮助