我正在将一个ASP.NET MVC 3内部网网站迁移到Windows Azure,将数据库迁移到SQL Azure。
On Premises我的网站使用Windows身份验证对用户进行身份验证和授权(通过在控制器上放置AUTHORIZE属性)。
如果你能让我知道如何去做同样的话,那将是非常友好的。谢谢你提前!
答案 0 :(得分:6)
你有两个选择:
您可以查看Windows Azure Platform Training Kit。
,了解每项详情我还应该补充一点,你没有选择(至少今天)使用Windows身份验证和SQL Azure。你必须在那里使用SQL身份验证,所以我在这里所说的只适用于网站本身。
答案 1 :(得分:4)
我非常成功地使用Windows Identity Foundation和Azure AppFabric访问控制服务来使用ADFS v2进行身份验证。
除了直接身份验证之外,它还提供了许多其他声明的灵活性,例如角色(不需要仅基于AD组成员身份)。
在我看来,它最大的优势在于Azure平台和内部部署AD之间不需要通信通道。一切都通过浏览器完成。从安全角度来看,这意味着虽然任何人都可以访问您的应用程序,但除非他们也可以访问您的ADFS服务器,否则没有人可以对其进行身份验证对此的访问仅限于内部部署客户端或通过VPN,大大减少了攻击面。
此外,由于ADFS不需要在外部公开,因此根据我的经验,它可以大大减轻部署它的官僚开销。
只需要配置,虽然它最初可能有点小提琴,但是一旦掌握了它就非常简单。您将WIF配置为使用ACS作为其身份提供程序,并在ACS中为该应用程序创建依赖方。然后,将ACS配置为使用ADFS作为其身份提供程序。您可以将WIF配置为直接与ADFS通信,但通过ACS进行的额外抽象级别可能很有用。
完成配置后,使用[授权]属性“才能正常工作”。
请注意,如果您在控制器中使用Ajax调用,则需要采取一些预防措施,因为Ajax调用不处理联合身份验证重定向(或者我喜欢称之为ADFS Shuffle),但这没什么不可克服的。
总而言之,WIF + ACS + ADFS与透明Windows集成身份验证相结合,给我留下了深刻的印象。