创建要在Windows Azure Control Services中使用的自定义标识提供程序

时间:2016-05-20 17:53:38

标签: c# azure wif identityserver3

我已开始使用Microsoft Azure Access Control Services。我想创建一个自定义身份提供程序,它将对我们的后端CRM系统进行身份验证。在过去,我创建了一个原型安全令牌服务网站,它允许我这样做。然而,那是几年前的事了。我发现 https://blogs.msdn.microsoft.com/mcsuksoldev/2012/11/02/azure-access-control-services-creating-a-custom-identity-provider/ 其中描述了如何使用WIF创建自定义身份提供程序以在Azure中使用,但该网站的日期是2012年。我还查看了IdentityServer3,我认为它可能是WIF的替代品。

我是否使用WIF安全令牌服务方法?这已经过时了吗? Identity Server是实现同样目标的新方法吗?

感谢。

3 个答案:

答案 0 :(得分:0)

首先:Windows azure ACS可能会停止使用(https://blogs.technet.microsoft.com/ad/2015/02/12/the-future-of-azure-acs-is-azure-active-directory/)。我们在这方面与微软有过接触,他们表示将在两年后弃用#34; (不是官方的)。话虽这么说,要将您的自定义STS集成到windows azure ACS中,这很简单"。 ACS只需要一个指向元数据文档的指针。通常,如果您的STS遵循WS-Federation标准,则它位于https://yourSTS/FederationMetadata/2007-06/FederationMetadata.xml。如果您的元数据是正确的,ACS将向您展示STS作为另一个身份提供者(就像Google,Yahoo等...)。它将通过提供一个"选择屏幕来实现这一目标。允许最终用户选择自己选择的身份提供者。然后,您的身份提供者将出现在他们之间。如果最终用户单击您身份提供者的链接,浏览器将被重定向到您的STS(被动登录)。如果她登录,将向ACS发出令牌。 ACS将他们"转换"您的安全令牌并向最终的依赖方发出新的令牌。

Bon,答案是您必须公开元数据文档并将其导入acs https://yournamespace.accesscontrol.windows.net/v2/mgmt/web/IdentityProvider

答案 1 :(得分:0)

ACS正在停止,但谁知道何时。

ACS最初是为了提供社交登录而引入的,但已被用于许多事情,例如:将令牌类型从SAML 1.1更改为SAML 2.0,反之亦然。

在Azure中集成社交登录的“新”方式是Azure B2C,但这是一种完全不同类型的Azure租户,并且没有SaaS集成。

参考:Azure B2C : Differences with Azure Active Directory (AAD)Azure B2C : Differences with Access Control Services (ACS)

Identity Server 3是开源的,几乎可以做ACS所能做的所有事情,还可以添加自己的社交登录和SAML 2.0协议以及OpenID Connect / OAuth。

另一个不错的选择是Auth0,但这是商业性的(不,我不为他们工作:-))。

关于WIF,它仍受支持,但未添加任何新功能。而是迁移到OWIN。

答案 2 :(得分:0)

谢谢大家的意见和建议。好吧,几年前我购买了这本书 - 由Vittorio Bertocci编写的Windows Identity Foundation,我曾经使用WS-Federation方法开始使用安全令牌服务对SSO解决方案进行原型设计。那个项目被搁置了,直到最近我才开始关注这个问题。几个月前我购买了Vittorio的新书 - 使用Azure Active Directory进行Web应用程序的现代身份验证。我只是浏览了这本书,但在上周末决定带回家,并仔细阅读。本书描述了SAML到WS-Federation到OAuth到OpenID Connect的预先声明身份验证技术的历史。它有大量的代码示例以及详细的架构信息。这清除了不同协议的混乱,我现在知道要走哪条路。