如何验证azure活动目录用户凭据?

时间:2013-04-22 07:30:13

标签: api authentication azure office365 azure-active-directory

我在azure活动目录中有一组用户;在我的程序中,我将收集最终用户的用户名和密码,并希望检查windows azure活动目录。

有可能吗?请提供一些参考。

我知道我们可以使用Power-shell cmdlet进行验证;我想知道是否有其他方法来验证用户凭据。

4 个答案:

答案 0 :(得分:2)

啊,我想,您正在尝试实施SSO方案。试试Adding Sign-On to Your Web Application Using Windows Azure AD! 如果您的客户没有Azure订阅,则此Multi-Tenant Cloud Application for Windows Azure Active Directory示例将使用Azure Active Directory身份验证库描述详细信息。希望这会有所帮助。

答案 1 :(得分:2)

如果有人还在寻找答案。 通过向UserCredential的重载函数提供类AcquireToken的对象,在ADAL版本2.7.10707.1513-rc中添加了对用户身份验证的支持,而无需打开用户信用的新窗口。

public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential);

以下是powershell的示例代码。 $UserCred = new-object Microsoft.IdentityModel.Clients.ActiveDirectory.UserCredential("****@*****", "*****") $result = $AuthContext.AcquireToken($resource,$clientID,$UserCred)

答案 2 :(得分:0)

你说你“将收集最终用户的用户名和密码,并希望检查windows azure活动目录” - 我很确定这是不可能的,我知道这是不可取的。这与OAuth等方法的趋势相反,用户可以使用相同的凭据登录许多应用程序(并且即将发布的部分是关键的),而不会向那些“许多应用程序”泄露他们的密码。

这是联合身份验证的概念,并且比允许您登录的所有应用程序直接访问您的用户名和密码的旧方法更安全。通常在这样的流程中,假设现有的Office 365帐户,您创建并配置为使用O365进行身份验证的新应用程序会将用户的Web浏览器重定向到O365,用户在其中输入O365用户名和密码,然后同意(有一次)他们可以使用这个新的应用程序,然后浏览器将重定向回应用程序,其中包含一些安全令牌。这些声明将包括名称,电子邮件地址以及有关登录用户的其他信息,旨在足以识别您应用中的用户。

同样可以用Facebook或Google进行身份验证 - 您的应用永远不会直接看到用户的密码。它甚至适用于登录StackOverflow本身,因此您已经看到了工作流程。

答案 3 :(得分:0)

希望这个ADAL选项也可以提供帮助。

ClientCredential encryptedCredentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "UserX@AdX.OnMicrosoft.com", "PasswordX")));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", encryptedCredentials);