Authentication 具有oAuth2和OpenId Connect的多租户应用程序的身份服务器体系结构

Authentication 具有oAuth2和OpenId Connect的多租户应用程序的身份服务器体系结构,authentication,oauth-2.0,architecture,identityserver4,openid-connect,Authentication,Oauth 2.0,Architecture,Identityserver4,Openid Connect,我是oAuth2和OpenId Connect的新手,我想在我正在从事的项目中实现这一点。在阅读了多篇文章并观看了视频之后,我开始掌握这个概念的基本知识,但现在我想不出一个可行的体系结构/解决方案,来说明我将如何在多租户应用程序中实现这一点。让我解释一下我们正在处理的是什么样的项目: 我们为餐厅制作应用程序/网站,以帮助其处理流程(例如,餐桌菜单应用程序、电子商务、预订系统等)。这些餐厅通过后台的表格在api中注册。将餐厅添加到数据库时,将触发一个管道,准备一个可配置的客户端应用程序,并为此餐厅

我是oAuth2和OpenId Connect的新手,我想在我正在从事的项目中实现这一点。在阅读了多篇文章并观看了视频之后,我开始掌握这个概念的基本知识,但现在我想不出一个可行的体系结构/解决方案,来说明我将如何在多租户应用程序中实现这一点。让我解释一下我们正在处理的是什么样的项目:

我们为餐厅制作应用程序/网站,以帮助其处理流程(例如,餐桌菜单应用程序、电子商务、预订系统等)。这些餐厅通过后台的表格在api中注册。将餐厅添加到数据库时,将触发一个管道,准备一个可配置的客户端应用程序,并为此餐厅创建子域和域。这意味着我们有一个数据库集合,其中包含所有注册餐厅,它们各自具有访问API的API密钥

现在,我们想为认证设置一个认证服务器,用于他们从我们这里租用的所有设备/网站。目前,我们希望实现一个管理区域,以便他们能够访问和管理自己的电子商务网站(创建产品、创建类别、统计等)

我读到的是,每个客户端都需要在身份验证服务器中注册,以便服务器授予授权码和访问令牌,但是我猜,对于数百个设备/网站,这将成为一项乏味的任务。这意味着每次新餐厅注册或订阅另一个套餐时,我都必须编辑代码并手动为租户创建客户机。我正在寻找一种方便的解决方案,即认证服务器在餐厅注册后自动识别餐厅。这可能吗?以下是我使用的语言和框架:

语言:C#(Api和身份验证服务器)、Javascript(客户端) 框架/库:ASP.NET Core 3.1、Angular 10、IdentityServer 4
数据库:MongoDB

您在这方面有什么进展吗?我目前正在做一个非常类似的任务。我已经使子域工作,我只需要配置一个客户端。我实现了一个定制的IRedirectUriValidator,它采用了与此几乎相同的方法。客户机负责所有租户,但每个租户都使用自己的子域。租户由acr_值租户处理:用户登录时将检查该租户。