单个站点上的多个Azure / ADFS / OpenConnect / oAuth Identity Framework选项

时间:2016-03-03 18:41:23

标签: oauth asp.net-identity openid azure-active-directory adfs

我有一个多租户的Angular网站。当他们登录时,他们链接到我们跟踪使用Web Api的特定组织。

我们正在使用这里写的优秀文章:http://bitoftech.net/2014/08/11/asp-net-web-api-2-external-logins-social-logins-facebook-google-angularjs-app/作为我们的起点,通过Web Api和Angular处理身份框架,以及使用webapi和angular处理身份框架,并且效果很好。

我们有能力以facebook,google等身份登录,这一切都很直接。

问题是我们希望能够让组织能够让用户使用他们的ADFS服务器或他们的天蓝广告(或任何其他符合oAuth 2标准的服务器)登录。

基本上我们使用子域xxx.yyy.com,其中xxx对于组织是唯一的。当他们点击该子域名时,我们会向他们展示一个使用他们的终端登录的按钮。

我遇到的问题是我找不到任何关于如何设置它的文档,以便我可以配置多个端点来配置oAuth over ADFS或oAuth over Azure(openconnect看起来像,不能判断Windows 2008 R2中的ADFS是否支持openconnect,但它确实支持oAuth)。

有人能指出我如何做到这一点的正确方向吗?我是否需要设置一个app.UseOpenIdConnectAuthentication()然后根据请求拦截一些如何为所有这些?或者ADFS与Azure有不同的规则,所以我必须使用别的东西。

任何细节都很棒。即使是在不必使用像Auth0这样的东西的情况下,这也很棒。

1 个答案:

答案 0 :(得分:0)

看看IdentityServer3

您会看到许多连接作为一般指南(尽管在C#中!)。

Server 2008 R2中的ADFS对OpenID Connect / Ouath2支持为零。 ADFS Server 2012 R2没有OpenID Connect /一些OAuth2支持(Web API)。 ADFS Server 2016与Azure AD非常相似 - 支持两者。

请注意,您需要支持混合OAuth配置文件。

您可以将其他协议用于ADFS,例如WS Federation / SAML(使用OWIN库)。

或转到ADAL路线。