我希望集成内部活动目录和sql azure,以验证用户访问在azure上运行的应用程序。
某些用户位于活动目录中,而某些用户位于sql azure数据库中。 我需要的是,当用户访问应用程序时,它必须要求输入用户名和密码等凭据。 现在,使用on premise active directory和sql azure完成此身份验证。
这是非常重要的回复
谢谢
我创建了一个项目,其中'Default.aspx'是我的主页
我提到了http://www.developerfusion.com/article/121561/integrating-active-directory-into-azure/文章,用于通过活动目录进行身份验证。它的工作方式就像当用户输入一个弹出式节目时,询问用户名和密码是否在内部活动目录中检查。
之后我在我的项目中添加了一个名为“login.aspx”的新页面,其中包含几个文本框和一个登录按钮,用于通过sql azure table进行身份验证。此表包含名称和密码列。我还创建了一个检查此处的框将为存在于活动目录中的用户重定向到“Default.aspx”。
我将Login.aspx设置为我的主页。
当我运行我的项目时,仍会自动显示活动目录身份验证的弹出窗口。
请回复该怎么做?
答案 0 :(得分:1)
您的意思是说您有两种身份验证机制,一种是使用Active Directory,另一种是使用自定义用户名/密码?实际上,如果我们不在自己的应用程序中手动询问用户的Active Directory凭据,那会更好。否则,它将在我们的应用程序中窃取用户的Windows凭据。请使用内置Windows身份验证。在Windows Azure中,我们有两个选项。一种是按照SilverNinja的指示与ADFS联合。另一种是使用Windows Azure Connect加入我们的本地域,因此我们可以使用标准的Windows身份验证。我想建议您查看http://msdn.microsoft.com/en-us/library/windowsazure/gg433029.aspx以获取更多信息。
之后,我们可以提供一个登录选项页面,询问用户是否要使用Windows凭据或自定义凭据。当用户选择Windows身份验证时,我们可以将用户重定向到ADFS的登录页面(或者如果Azure实例已加入本地域,则登录进度将是透明的)。如果用户选择自定义凭据,我们可以要求输入用户名/密码,然后针对SQL Azure进行身份验证。
最诚挚的问候,
徐明。答案 1 :(得分:0)
如果您使用WIF的添加STS参考功能,它将生成一个配置文件,要求您在使用您的网站之前登录STS。您可以在web.config中看到类似的内容:
<authorization>
<deny users="?"/>
</authorization>
因此,如果用户未登录STS(在您的情况下为ADFS),他/她将无法看到任何页面。
要解决此问题,请创建一个子文件夹以放置您的登录页面,并配置子文件夹以允许任何用户访问。例如,像:
<location
path="loginfolder">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
在登录页面中,您可能希望首先让用户在Windows身份验证和自定义身份验证之间进行选择。不要求用户凭据。用户选择Windows身份验证后,将用户重定向到另一个不在loginfolder下的页面。这将触发需要用户登录STS的正常WIF行为。如果用户选择自定义身份验证,请显示登录表单,用户登录后,您可以为他/她分配一个角色,这样他/她就不再是匿名的,可以查看您的网站。
最诚挚的问候,
徐明。答案 2 :(得分:0)
正如我在上一篇回复中指出的那样,请将登录页面放在允许匿名访问的文件夹中:
要解决此问题,请创建一个子文件夹以放置您的登录页面,并配置子文件夹以允许任何用户访问。例如,像:
<location
path="loginfolder">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
'loginfolder'表示包含登录页面文件的文件夹的名称。
但是当用户尝试从登录表单登录时,即表单身份验证 ,用于Windows身份验证的弹出窗口而不是重定向到 Default.aspx的
您还可以查看http://msdn.microsoft.com/en-us/library/b6x6shw7.aspx以获取更多信息。
最诚挚的问候,
徐明。