使用WAAD进行身份验证

时间:2015-02-21 14:29:45

标签: c# azure active-directory

我搜索了好几天的答案。我想用Windows Azure Active Directory(WAAD)处理我的应用程序用户的管理。我发现的所有代码示例都必然涉及通过网页进行身份验证以进行签名。存在一个验证解决方案,无需使用网页,但需要登录/密码?

1 个答案:

答案 0 :(得分:1)

tdelepine,Azure AD仅支持基于Web的应用程序的基于Web SSO的登录:OpenIDConnect / SAML / WSFed或OAuth授权代码授予流程。

但是,如果您正在编写移动应用程序(富客户端/公共客户端),则Azure AD也支持非交互式身份验证,其中您的应用程序从用户接收用户名和密码,并使用Azure AD对用户进行身份验证。请注意,非交互式身份验证的缺点是,当为用户启用多因素身份验证时,它会失败(Azure AD的越来越多的客户正在启用MFA)。 如果您必须使用非交互式身份验证流程,请执行以下步骤:

  • 对于在云中进行身份验证的用户(密码位于Azure AD中):移动应用使用资源所有者密码凭据授予OAuth流(将用户的用户名密码发送到令牌端点并获取访问令牌/刷新令牌)
  • 对于在其本地或联合STS(如ADFS,PingExderate,OneLogin等)进行身份验证的用户(密码不在Azure AD中):移动应用程序使用GetUserRealm调用发现联合STS的活动auth端点,对用户进行身份验证在联合STS使用用户名密码使用WS-Trust并获取SAML令牌,并使用扩展授予OAuth流(将SAML令牌发送到令牌端点并获取访问令牌/刷新令牌)

ADAL.net为您完成所有这些。请在此处查看无头身份验证示例:https://github.com/AzureADSamples/NativeClient-Headless-DotNet

您可以跟踪fiddler中的调用以进行其他技术的逆向工程。

希望有所帮助。