2013-04-22 43 views
5

我已经设置了一个用户在蔚蓝的活动目录,在我的计划,我将收集最终用户的用户名和密码,并要核对使用Windows Azure Active Directory中。如何验证azure活动目录用户凭证?

是否有可能? pl提供一些参考。

我知道使用电源外壳的cmdlet,我们可以验证,我想知道有没有其他的方法来验证用户crednetial

+0

什么是你要完成?你能描述一下你的认证和授权方案的更高层次的设计吗?根据你的描述,这听起来像你正在尝试一些相当不安全和“调皮”的东西。您是否有理由不在依赖方应用程序中使用基于声明的身份验证,并让Windows Azure Active Directory(WAAD)处理身份验证? – Nathan 2013-04-22 21:38:10

+0

在我为大型公司部署的大多数应用程序中,我们让本地AD成为身份验证源,我期待着确切了解Azure AD如何在我的云应用程序中取代这一点。如果我不需要,我宁可不写身份验证代码,并让WAAD照顾所有这些,因为我专注于如何将授权应用于我的应用程序逻辑。 – Graham 2013-04-22 23:13:51

+0

你有没有找到这个解决方案。我正在尝试做同样的事情? – Gotts 2014-10-20 16:28:24

回答

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

您的链接很有用。但从开发者的角度来看,我会更感兴趣的是找到一种方式,我已经拥有用户名/域名/密码等。所以我不想打开浏览器窗口并让用户这样做(现在就是这样)。当我们已经拥有我们所有的细节时,如何执行WAAD认证?目前我们正在使用'AuthenticationContext.AcquireToken(resource,client-id,resource-app-id-uri)',但是如何使用'AuthenticationContext.AcquireToken(resource,ClientCredential)'? – iammilind 2013-08-22 13:12:11

+0

您的[this](http://code.msdn.microsoft.com/AAL-Server-to-Server-9aafccc1/sourcecode?fileId=93566&pathId=1250178454)链接提供了代码示例,但不确定这是否适用或不。我不知道如何使用'clientSecret'部分来创建'ClientCredential'。 – iammilind 2013-08-22 13:28:55

0

你说你会“收集最终用户的用户名和密码,并想用windows azure Active Directory进行检查” - 我确信这是不可能的,我确定这不是可行的。这与OAuth等方法的趋势截然相反,用户可以使用相同的凭据登录许多应用程序(并且部分即将到来),而不会向这些“许多应用程序”泄露他们的密码。

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

同样会去用,比方说,Facebook或谷歌认证 - 您的应用程序将不会直接看到用户的密码。它甚至适用于登录到StackOverflow本身,所以你已经看到了工作流程。

0

希望这ADAL选项也可能会有所帮助。

ClientCredential encryptedCredentials = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "[email protected]", "PasswordX"))); 
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", encryptedCredentials); 
2

如果有人仍在寻找答案。用于认证用户无需打开用于用户名气新窗 支持在ADAL版本2.7.10707.1513-RC通过提供UserCredential类的一个目的是的AcquireToken一个重载函数加入。

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

这仅适用于本机客户端 - 不是网络应用程序。 – BenV 2016-02-19 18:31:19