2012-04-02 64 views
1

我目前正在尝试理解Azure ACS与基于声明的身份验证以及使用自定义STS的选项的组合,并且我只是慢慢地通过(不幸的是很少)信息源。 在我花更多时间在此之前,我想确认我的计划是否可能。 我有两个员工和客户通过互联网访问的多个azure角色(网络工作者)。此外,员工还可以从本地网络访问这些角色和桌面应用程序。Azure ACS +自定义STS,可能适用于混合场景?

用户数据来自两个来源。我们的天青应用程序拥有关于客户和员工的用户数据,我们的(本地)AD仅来自员工。

为了使登录体验尽可能高效(且符合人体工程学),当通过本地网络访问时,员工应在桌面应用程序上自动进行身份验证(Windows集成身份验证?)(自动由于Windows用户配置文件上下文)和天蓝色的应用程序(希望没有登录页面)。 另一方面,客户在访问Azure应用程序时应输入其用户凭据,但不应在不同的“凭证来源”之间做出决定,他们只需获取用户名+密码表单即可。 换言之从本地网络

  • 雇员访问天青应用 - >自动登录,集成认证/ AD数据
  • 雇员访问从互联网天青应用 - >用户名+密码形式
  • 客户拜访天青应用从互联网上 - >用户名+密码形式

在写这个问题,两个浮现在脑海:

1)它甚至有可能到AU基于source/cookie/wizardry的登录是否需要手动用户选择“Credential-Source”? 2)如果Azure ACS“知道”用户名X的AD帐户与Azure App用户Y相同,那么登录哪一个会影响?应用程序是否可以在任一登录路线上访问相同的声明数据?

回答

0

您可以做的一件事是在请求页面以查看身份验证信息时查看用户凭据。

如果你看看......

HttpContext.Current.User.Identity 

您可以获得关于用户的身份信息。如果他们在域上,你会看到他们有一个域名,你可以通过编程选择将他们引导到登录页面。

让我也说我从来没有试过这样做,所以我不知道是否有内置的方式来做到这一点,只需在web.config中配置一些东西。

1

您确定需要自定义STS吗?这听起来像开始你只是想让你的AD用户登录到你的天蓝色的应用程序使用他们的Windows凭据,如果他们在域上(没有密码提示)。 ADFS 2.0和WIF将促进这一点。另外,如果您设置了ADFS代理服务器,以便当这些相同的用户从域外浏览到您的应用时,系统会提示您输入其域凭证。

现在您的AD用户已设置,但如果您希望您的域以外的用户可以访问您的应用程序,则可以将ADFS与另一个组织的ADFS服务器联合,或者使用ACS启用使用消费者身份提供程序谷歌,雅虎和LiveID,这些都是内置选项提供的。如果你确实这样引入了ACS,你可以将你的公司ADFS服务器配置为你的ACS实例上的身份提供者,以及谷歌,雅虎和什么不是,这样当你的用户浏览你的站点时,他们将被提示选择他们的身份提供者希望登录。

下面是演示如何使用ADFS进行身份验证的云应用一个梦幻般的白皮书:可以发现in technet

http://www.microsoft.com/download/en/details.aspx?id=13789

有关部署ADFS(如部署ADFS代理)更多详细信息,。

而对于ACS,有导游和样品放在如何将它集成到Azure应用程序,以及如何添加ADFS身份提供者:http://msdn.com/acs

+0

关于雇员的部分应该是正是我需要的东西(对于员工方案)。不幸的是,建立与客户ADFS的绑定是不可能的(某些客户是初创公司或基于Linux的公司),我不想依赖Facebook&Co来满足我的身份验证需求。我确实看到让用户通过他们的Facebook和Google帐户进行身份验证的重要性,但不是像我的架构那样。基于此,除了创建自定义STS之外,我没有看到另一个人。 – Pharao2k 2012-04-03 05:37:40

+0

构建自定义STS是一种可行的选择,但我建议将其作为最后的手段进行保存。它可能很复杂,您可能必须自己管理用户帐户配置。我见过很多在谷歌应用上运行的小商店和创业公司,在这种情况下,设置ACS来信任范围适用于特定谷歌应用领域的谷歌身份可能适合您。此外,还有适用于ADFS的Linux联合解决方案。 PingFederate是比较受欢迎的平台之一,但当然这取决于你的合作伙伴组织。 – 2012-04-03 14:43:13