我有一个 Azure API 管理实例。它充当公共(public)本地后端的代理。
我使用 Azure AD 和 Azure APIM (grant_type client_credentials) 设置了 oauth2。因此,在对 /token
进行 POST 调用后,它将收到一个 JWT token 。
此 JWT token 可用于向我的 APIM 执行 GET
请求。仅接受有效的 token 。所以这部分似乎有效。 GET
调用被路由到我的本地公共(public)后端。
但是我应该如何保护我的本地后端?人们可以直接调用它,而不需要通过Azure。我们不能仅仅将 APIM IP 列入白名单。将 JWT token 从 APIM 传递到后端并再次检查是否是一个好主意(为此我需要什么信息?)。
最佳答案
如今,许多组织都遵循零信任方法。这意味着每个 API 对每个请求都运行 JWT 验证,如 this API of mine 中所示。 。这还使 API 能够在允许访问资源之前运行基于声明的授权。
这可以防止内部和外部威胁,并且感觉非常适合您的用例。所需的代码也非常简单。因此,配置 APIM 将 JWT 访问 token 转发到 API。
关于azure - 使用 Azure 了解 oauth2 和 JWT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77142731/