在 Web API 身份验证后面实现标识服务器



我有两个不同的客户端应用程序,用javascript编写,连接到两个不同的Web api。我正在尝试实现身份服务器 3。

  1. 是否可以在我的 Web API 后面使用身份服务器 身份验证 API 端点。换句话说,是否有可能 在 Web API 中从 owin 路由/token 终结点以调用/身份验证 身份服务器中的终结点?
  2. 是否可以在身份服务器中将日志审核到数据库,包括 失败的请求以及用户的 IP 和浏览器代理。也是它 即使我从 Web API 调用作为我的 用户正在使用浏览器调用 Web API?
  3. 就我而言,我应该为两个不同的用户群保留两个不同的用户群 项目或将我的所有用户移动到身份服务器。如果我移动所有 用户信息到身份服务器,我将如何处理所有连接 与不同应用程序中的其他表一起使用,还是我应该保留副本 用户的信息最少,如 ID、电子邮件和姓名?

首先调用 Web API 并在该调用期间处理身份验证是没有意义的。

客户端应用应首先将浏览器重定向到 IdentityServer,用户将在其中登录,并与访问令牌(隐式流)或授权代码(授权代码流)一起重定向回客户端应用,具体取决于客户端应用是否具有后端。然后,客户端应用将向 webapi 发出请求,并在授权标头中传递访问令牌。

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

是否可以在我的 Web API 后面使用身份服务器 owin 身份验证 api 端点。换句话说,是否可以从 Web API 中的 owin 路由/token 终结点以调用标识服务器中的/authenticate 终结点?

是和否 - 您无法重新路由这些请求,但您可以在与 Web API 相同的应用程序中托管身份服务器。在 Startup.cs 中,将文件夹映射到标识服务器。 这样做不是一个好主意,首先,两者中的哪个 api 将托管 idsrv?如果该 api 出现故障并带走 idsrv,那么另一个 API 将不再工作。 -> 单独主机 IDSRV,在 IDSRV 中同时创建 API 和两个 JavaScript 应用程序客户端,从 JavaScript 应用程序 (=SSO) 登录到 IDSRV 并为 API 使用持有者令牌

是否可以在身份服务器中审核日志到数据库,包括失败的请求以及用户的IP和浏览器代理。此外,即使我从 Web api 调用,是否可以记录用户的 ip,因为我的 Web api 是由用户使用浏览器调用的?

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

就我而言,我应该为两个不同的项目保留两个不同的用户群,还是将所有用户移动到身份服务器。如果我将所有用户信息移动到身份服务器,我将如何处理与不同应用程序中其他表的所有联接,或者我应该保留一个包含最少信息(如 id、电子邮件和姓名)的用户副本?

Idsrv 不需要包含所有用户信息,只需一个电子邮件地址就足够了,如果您将其用作唯一标识符,则可以将其用作指向 api 数据库中用户数据的链接。

相关内容

  • 没有找到相关文章

最新更新