添加无服务器 apis 作为资源服务器 AWS cognito AWS api 网关
adding serverless apis as a resource server AWS cognito AWS api gateway
您好,我正在使用无服务器 apis 使用 aws api 网关 lambda 代理、golang 和 aws cognito
events:
- http:
path: myendpoint
method: get
cors: true
authorizer:
name: my-authorizer
arn: {COGNITO_POOL_ARN}
plugins:
- serverless-domain-manager
custom:
customDomain:
domainName: mydomain.com
basePath: mybasepath
stage: ${self:provider.stage}
createRoute53Record: true
这允许我使用 ID 令牌向 mydomain.com/mybasepath/myendpoint
发出请求,我想让它更标准并使用访问令牌。
它不会获取访问令牌,API 网关授权者会将其退回。
我将此作为 Resource Server
添加到 Cognito 用户池设置
在 App client settings
我检查应用程序客户端的资源
我注销为用户创建一个新会话,新令牌,我会得到一个 401 Unathorized
我认为我正确地遵循了文档,因为它是 here 也许我遗漏了其他东西,或者可能因为它是无服务器的 api 它是我需要的不同设置。
非常感谢任何帮助或指导。
如果您只想使用 Cognito 保护 api,则无需创建范围。范围不向用户授予权限,而是向应用程序授予权限。
API Gateway Cognito 授权方基本上以三种模式运行:
- 允许 ID 令牌或访问令牌(未设置令牌验证且未在资源上设置范围)
- 允许 ID 令牌(令牌验证设置为
aud
claim/application ID 且未在资源上设置范围)
- 允许访问令牌(未设置令牌验证,已在资源上设置范围)
这是以下每种情况的结果:
- ID 令牌和访问令牌均由 Cognito 签名密钥签名,因此授权方无法区分它们。
- 只有 ID 令牌包含
aud
(受众)声明以执行令牌验证。
- 只有访问令牌包含
scope
声明以执行验证。
希望事情已经解决了。不要太在意示波器,除非您知道它们的用途。
您好,我正在使用无服务器 apis 使用 aws api 网关 lambda 代理、golang 和 aws cognito
events:
- http:
path: myendpoint
method: get
cors: true
authorizer:
name: my-authorizer
arn: {COGNITO_POOL_ARN}
plugins:
- serverless-domain-manager
custom:
customDomain:
domainName: mydomain.com
basePath: mybasepath
stage: ${self:provider.stage}
createRoute53Record: true
这允许我使用 ID 令牌向 mydomain.com/mybasepath/myendpoint
发出请求,我想让它更标准并使用访问令牌。
它不会获取访问令牌,API 网关授权者会将其退回。
我将此作为 Resource Server
添加到 Cognito 用户池设置
在 App client settings
我检查应用程序客户端的资源
我注销为用户创建一个新会话,新令牌,我会得到一个 401 Unathorized 我认为我正确地遵循了文档,因为它是 here 也许我遗漏了其他东西,或者可能因为它是无服务器的 api 它是我需要的不同设置。
非常感谢任何帮助或指导。
如果您只想使用 Cognito 保护 api,则无需创建范围。范围不向用户授予权限,而是向应用程序授予权限。
API Gateway Cognito 授权方基本上以三种模式运行:
- 允许 ID 令牌或访问令牌(未设置令牌验证且未在资源上设置范围)
- 允许 ID 令牌(令牌验证设置为
aud
claim/application ID 且未在资源上设置范围) - 允许访问令牌(未设置令牌验证,已在资源上设置范围)
这是以下每种情况的结果:
- ID 令牌和访问令牌均由 Cognito 签名密钥签名,因此授权方无法区分它们。
- 只有 ID 令牌包含
aud
(受众)声明以执行令牌验证。 - 只有访问令牌包含
scope
声明以执行验证。
希望事情已经解决了。不要太在意示波器,除非您知道它们的用途。