0

我正在使用 thinktecture 身份服务器 v3。我创建了 Web 应用程序和 Web api 服务。当我访问 Web 应用程序时,我从身份服务器获得了访问令牌。我使用这个令牌作为不记名令牌与 web api 进行通信。一切正常。

但我注意到,在 api 服务器上,对于每个带有访问令牌的请求,它都会自动调用身份服务器。如果身份服务器已启动,则它会提供服务,否则会给出未经授权的错误。

  1. 这个电话的目的是什么?
  2. 通话中携带什么数据?
  3. 如果是为了验证权限,会给身份服务器带来更大的负担。
  4. 可以跳过这个电话吗?
4

1 回答 1

0

你无法避免这种情况:

  • 当用户通过身份服务器进行身份验证时,它会创建一个令牌,该令牌会提供给客户端以对自己进行身份验证。这个令牌是由身份服务器动态创建的,它会记住它
  • 客户端将此令牌提供给您的 Web API 服务器,它对此一无所知,但知道谁可以验证它。因此,您的 Web API 服务器与身份服务器通信,以便它可以从身份服务器获取身份

这就是它以这种方式工作的原因。

如果您想避免这种行为,您可以将身份从外部身份服务器映射到由您自己的 Web API 服务器控制的身份,并使用您控制的身份验证方法来避免从外部身份服务器查询令牌。但是,如果您使用身份服务器正是因为您不想自己实现它,所以这个选项没有意义。当您想要将用户从流行的外部身份服务器(如 Google 或 Facebook)映射到您控制的用户时,使用此选项。

于 2015-05-20T16:45:14.840 回答