应用程序服务器是否使用jwt id令牌来识别用户,还是将jwt id标记发送到资源服务器以识别用户



Oauth可用于身份验证、授权和委派。Oauth流最终导致应用服务器接收访问令牌(和刷新令牌(和jwt ID令牌(openidconnect(。

应用服务器可以使用访问令牌将其传递给资源服务器,以代表用户访问资源(委派(。

应用服务器是否将Jwt id令牌传递给资源服务器,以通知资源服务器当前用户是谁?还是应用服务器使用jwt id令牌对用户进行身份验证,以允许应用服务器知道当前用户是谁?

根据规范,应用服务器不应将id_token传递给其他任何东西。

提供给资源服务器的数据应根据传递给授权服务器的作用域的作用域确定,并包含在access_token中。

您可以将access_token发送到资源服务器,然后资源服务器调用userInfo端点。

请记住,这与最终用户授权谁接收什么数据有关。

在https://github.com/IdentityServer/IdentityServer3/issues/2015

ID令牌仅证明用户已通过身份验证,并提供用户的配置文件数据。它不包含任何可以证明用户确实确认允许资源服务器对其资源执行某些操作的信息(即没有OAuth2作用域(。

因此,仅仅将ID令牌传递给资源服务器并不能帮助它做出授权决定。即使资源服务器可以使用ID令牌来了解用户是什么,然后了解他拥有什么权限,但它仍然无法证明用户确实确认委托应用服务器对其资源执行某些操作。(即,我被允许做某事并不意味着我同意你代表我做。(

因此,总是将访问令牌传递给资源服务器,以便做出授权决策。

你也可以参考这篇博客文章,它也回答了你的问题。

最新更新