1

我有两个不同的客户端应用程序用JavaScript编写,连接到两个不同的web api。我试图实现身份服务器3.在web api owin身份验证背后的实现身份服务器

  1. 是否有可能有身份服务器在我的网页api owin 身份验证api结束点。换句话说,是否有可能通过web api中owin的 路由/令牌终端在身份服务器中调用/验证 终端?
  2. 是否可以在身份服务器上审核日志到数据库,包括 失败的请求以及用户的ip和浏览器代理。即使我正在通过web api调用,我的 也可以登录用户的ip: web api被用户使用浏览器调用?
  3. 在我的情况下,我应该为两个不同的 项目保留两个不同的用户群,或将我的所有用户移到标识服务器。如果我将所有 用户信息移动到标识服务器,我将如何处理与其他表在不同应用程序中的所有连接 ,或者我应该保留用户的副本 与最小信息,如id,电子邮件和名称?

在此先感谢。

回答

1

在呼叫期间首先调用web api并处理认证是没有意义的。

您的客户端应用程序应该首先将浏览器重定向到IdentityServer,用户可以在其中登录并根据客户端应用程序将访问令牌(隐式流)或授权代码(AuthorizationCode流)重定向回您的客户端应用程序一个后端与否。然后,您的客户端应用程序将向Webapi发送请求,并在授权标头中传递访问令牌。

对于不同的用户群,一种方法可能是为每个用户群实现特定的IUserService,并发送关于在acr_values中使用哪一个的提示或将其绑定到在IdentityService中注册的特定客户端。再次,取决于要求。

1

是否有可能在我的web api owin认证api结束点后面有身份服务器。换句话说,是否有可能通过web api中的owin路由/令牌端点来在身份服务器中调用/验证端点?

是和否 - 您不能重新路由这些请求,但是您可以将Identityserver作为Web API托管在相同的应用程序中。在Startup.cs中,将文件夹映射到标识服务器。 这不是一个好主意,首先,这两个API中的哪一个将主持idsrv?如果该api发生故障并采取idsrv操作,那么另一个api将不再工作。 - >主机idsrv分开,使这两个API和双方的JavaScript应用程式的客户idsrv,登录从JavaScript的应用程序,以idsrv(= SSO),并使用承载令牌的API

是否有可能审核日志数据库在身份服务器中包括失败的请求以及用户的ip和浏览器代理。即使我正在通过web api调用用户的ip,也可以记录用户的ip,因为我的web api正在被用户使用浏览器调用?

是的,这应该是可能的,检查idsrv的日志记录实现,至少你应该能够插入提供程序写入数据库。

在我的情况下,我应该为两个不同的项目保留两个不同的用户群,或将我的所有用户移到身份服务器。如果我将所有用户信息移动到身份服务器,我将如何处理与其他应用程序在不同应用程序中的其他表的所有连接,或者我应该保留具有最小信息(例如ID,电子邮件和名称)的用户副本?

Idsrv并不需要将所有的用户信息,只是一个电子邮件地址是不够的,你可以使用它作为链接到您的API数据库中的用户数据,如果你使用它作为唯一的标识符。