如何使用IdentityServer4将身份验证限制到特定域

时间:2017-11-06 09:22:52

标签: security asp.net-core google-oauth identityserver4

在使用IdentityServer4保护ASP.NET Core MVC 2.0客户端及相关API的上下文中,如何强制执行特定于域的身份验证限制?

我已经完成了IdentityServer quickstarts并且有一个工作的MVC客户端与IdentityServer实例通信(如果使用错误的术语,则道歉)。我正在使用外部身份验证(Google)并且没有任何温和复杂的内容,例如本地登录/数据库等。我使用ASP.NET身份。这一切都很好。

问题:我只需要允许某个公司的用户进入该应用程序。为实现此目的,我将检查其电子邮件地址或the 'hd' claim from Google以检查其域名并将其与白名单进行匹配。

  1. 我是在客户端还是IdentityServer中实现这个?
  2. 有人能指出我这样做的例子,或者说明如何实施吗?
  3. 如果使用的话,很高兴发布当前实现的代码,唯一的原因我没有说它与上面链接的快速入门相同。

1 个答案:

答案 0 :(得分:0)

我相信这个逻辑属于您的IdentityServer实例。

但是,只有在单个应用程序需要电子邮件的域检查时,它才可能存在于您的应用程序/客户端上。通过这种方式,您可以使用操作过滤器来检查声明,并且需要将hd添加到用户声明列表。

使用白名单检查的逻辑应该是IdentityServer上的状态。您可以在客户端上设置标志以检查系统是否需要验证电子邮件域