我创建了一个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端点通信?
我需要使用被动身份验证。
答案 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
希望这有帮助