调用后端 API 时通过 access_token 或 id_token 识别用户
Identifying user through access_token or id_token when calling backend API
在 API 通话中识别用户的正确方法是什么?
我正在使用 Auth0
service 来保护我的 API 并管理用户 authentication/sign up 进程。我"think"我清楚两件事:
access_token
允许客户端应用程序正确访问我的后端 API。换句话说,我需要将 access_token
与我的 API 调用一起发送到我的后端,以便我可以访问我的 API 端点。
id_token
的主要目的是提供有关用户的后端 API 信息,例如id、姓名、电子邮件等
假设我对这两点是正确的,我如何让后端API知道用户是谁?我不认为我可以在同一个电话中同时发送 access_token
和 id_token
。那我要打两个电话吗?
我当然可以在我的 API 调用负载中包含用户信息,但这不会成为安全问题吗?恶意用户可能会在 API 调用之前更改用户信息并将 himself/herself 显示为其他人。
我不清楚让后端 API 知道用户是谁的方式。
P.S。如果需要,这里有更多信息:
- 所有用户身份验证、注册和令牌均由
Auth0
service 处理。
- 我的后端 API 在
ASP.NET Core
中创建并配置为接受 Auth0
令牌。这工作正常,即我在 API 调用中发送从 Auth0
获得的 access_token
,并且我能够访问我的端点。
- 我现在正在
ReactNative
中开发一个移动应用程序,它通过 Auth0
对用户进行身份验证,并调用我的 ASP.NET Core
后端 API 以获得它提供的所有功能
我同意 Sam 的担忧,我的偏好是保持访问令牌小且机密 - 仅包含 API 可以读取的用户 ID。
有关更多信息,我使用此模式在 API 中使用声明,API 网关也常用此模式 - 例如 AWS:
https://authguidance.com/2017/10/03/api-tokens-claims/
如果有帮助,这里有一个 .Net Core class 实现它。
在 API 通话中识别用户的正确方法是什么?
我正在使用 Auth0
service 来保护我的 API 并管理用户 authentication/sign up 进程。我"think"我清楚两件事:
access_token
允许客户端应用程序正确访问我的后端 API。换句话说,我需要将access_token
与我的 API 调用一起发送到我的后端,以便我可以访问我的 API 端点。id_token
的主要目的是提供有关用户的后端 API 信息,例如id、姓名、电子邮件等
假设我对这两点是正确的,我如何让后端API知道用户是谁?我不认为我可以在同一个电话中同时发送 access_token
和 id_token
。那我要打两个电话吗?
我当然可以在我的 API 调用负载中包含用户信息,但这不会成为安全问题吗?恶意用户可能会在 API 调用之前更改用户信息并将 himself/herself 显示为其他人。
我不清楚让后端 API 知道用户是谁的方式。
P.S。如果需要,这里有更多信息:
- 所有用户身份验证、注册和令牌均由
Auth0
service 处理。 - 我的后端 API 在
ASP.NET Core
中创建并配置为接受Auth0
令牌。这工作正常,即我在 API 调用中发送从Auth0
获得的access_token
,并且我能够访问我的端点。 - 我现在正在
ReactNative
中开发一个移动应用程序,它通过Auth0
对用户进行身份验证,并调用我的ASP.NET Core
后端 API 以获得它提供的所有功能
我同意 Sam 的担忧,我的偏好是保持访问令牌小且机密 - 仅包含 API 可以读取的用户 ID。
有关更多信息,我使用此模式在 API 中使用声明,API 网关也常用此模式 - 例如 AWS: https://authguidance.com/2017/10/03/api-tokens-claims/
如果有帮助,这里有一个 .Net Core class 实现它。