gpt4 book ai didi

aws-cloudformation - 如何在 AWS Serverless Function 中设置 Oauth 范围?

转载 作者:行者123 更新时间:2023-12-03 07:27:17 26 4
gpt4 key购买 nike

问题:使用 Cloudformation 和 AWS-SAM 的方法请求设置中的 OAuth 范围为空

显然有几个地方可以声明我的授权范围,如果我做对了,我应该在授权者处声明所有范围,以及我想在函数模板中为每个函数指定的范围。

这是我正在尝试修复的模板:

MyServerlessFn
Type: AWS::Serverless::Function
Properties:
FunctionName: helloWorldFn
Description: my test using cognito.
Handler: src/handlers/helloWorld.handler
Runtime: nodejs12.x
Events:
ApplicationPostAPI:
Type: Api
Properties:
Auth:
AuthorizationScopes:
- https://foobar.acme.net/full-api
Method: POST
Path: /hello/world
RestApiId: !Ref MyServerlessApi

使用 sam cli,我可以验证、构建和部署此模板,但当我使用 AWS Web 控制台检查时,oauthScopes 为空。

这里是 AWS 文档: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-apifunctionauth.html

最佳答案

我还注意到您在函数级别定义的范围保持为空。无论文档是错误的还是当前的 AWS SAM 错误,我都留在中间。(参见:https://github.com/aws/serverless-application-model/issues/1752)

但是,您可以通过在 api 级别指定授权者并在函数级别引用该授权者来解决此问题。

  ApiGw:
Type: AWS::Serverless::Api
Properties:
Description: some description
Auth:
Authorizers:
DefaultAuthorizer:
UserPoolArn: somepool
AuthType: "COGNITO_USER_POOLS"
AuthorizerWithScopeABC:
UserPoolArn: somepool
AuthType: "COGNITO_USER_POOLS"
AuthorizationScopes:
- /ABC
AuthorizerWithScopeXYZ:
UserPoolArn: somepool
AuthType: "COGNITO_USER_POOLS"
AuthorizationScopes:
- /XYZ
DefaultAuthorizer: DefaultAuthorizer

Function:
Type: AWS::Serverless::Function
Properties:
Events:
ApiEvent:
Type: Api
Properties:
Path: /somepath
Method: get
RestApiId: !Ref ApiGw
Auth:
Authorizer: AuthorizerWithScopeABC

关于aws-cloudformation - 如何在 AWS Serverless Function 中设置 Oauth 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64537146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com