将客户与用户关联起来

时间:2017-08-09 04:55:42

标签: asp.net-core asp.net-identity entity-framework-core identityserver4 asp.net-core-identity

我尝试使用IdentityServer4处理的身份验证/授权来构建ASP.NET Core API。 IdentityServer4由Identity和Entity Framework Core提供支持。我的目标是一个相当标准和熟悉的设置,用户可以登录到API开发人员门户,在那里他们可以添加"应用程序" (客户端)并生成客户端ID和客户端密码,然后他们可以使用它们访问API,类似于Facebook,Google等处理API访问的方式。

我的心理障碍与IdentityServer处理Entity Framework集成的方式一致。他们的实体附加到两个不同的上下文ConfigurationDbContextPersistedGrantDbContext。我很遗憾将IdentityServer4.EntityFramework中的一个或多个Client实体与我的身份上下文中的一个或多个ApplicationUser实体相关联。

这似乎是一个相当常见的使用场景,但文档对此却是奇怪的沉默。经过各种各样的搜索,我也无法在网上找到任何东西。我希望其他人也需要这样的设置,并可以就如何继续提供一些建议。

1 个答案:

答案 0 :(得分:0)

用户和客户之间没有关联。无论用户尝试访问哪个客户端,IdentityServer都会对用户进行身份验证。

如果你想实现类似"允许哪个用户使用哪个客户端"语义,超出身份验证。这通常在应用程序本身中实现,因为这是特定于应用程序的逻辑。

https://leastprivilege.com/2017/07/10/authorization-is-hard-slides-and-video-from-ndc-oslo-2017/