【问题标题】:Appsync oidc with auth0 as authorisation returns unauthorisedAppsync oidc 与 auth0 作为授权返回未经授权
【发布时间】:2020-09-28 13:41:16
【问题描述】:

cognito user poolsapi keys 一起,我正在尝试将auth0 用作oidcaws appsync。更具体地说,我正在尝试在appsync 架构中使用多个授权指令,但在使用oidc 授权模式和@aws_oidc 指令时不断收到unauhtorised 错误消息。

对于我的默认授权模式,我使用的是cognito user pools,但也配置了API keys的使用。

我现在想在我的架构中使用 @aws_oidc 指令,以便来自 auth0 的用户可以对我的 API 执行操作。我在appsync 设置中配置了OIDC 授权模式,并设置了与auth0 jwt 用于授权auth0 的令牌中的iss 值相同的值作为颁发者URL。

我检查了该令牌是一个RS256 token 并且它也是一个有效的令牌,如果我使用它向auth0 上的/userinfo 发送一个 curl 请求,我可以检索用户的属性。

我的架构中有以下突变,用于创建项目。

type Mutation @aws_oicd @aws_iam
@aws_cognito_user_pools {
    createItem(input: CreateItemInput!): Item
    auth0CreateItem(bearerToken: String!, input: CreateItemInput!): Item @aws_oicd

如果设置并使用@aws_apikey 指令以及@aws_cognito_user_pools 指令,则此突变有效,我可以很好地创建项目。

但是,当我添加 @aws_oidc 指令时,它会返回未授权的有效令牌。

为什么会返回此消息? aws 在令牌不工作的背景下做了什么?我的令牌中是否缺少属性?

这是我的令牌。

token 中的 iss 值与创建授权模式时 appsync 设置中的 issuer url 匹配。

这是使用appsync 控制台执行查询的响应。

【问题讨论】:

    标签: openid-connect auth0 aws-appsync


    【解决方案1】:

    真的很简单。

    事实证明,AuthTTL 和 Issued At TTL 值也需要存在于令牌中才能使配置正确,并且值需要匹配。

    就我而言,我需要做的就是删除 appsync oidc 设置中的这些值。

    这可以在文档here 中找到

    【讨论】:

      猜你喜欢
      • 2016-12-17
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 2023-03-09
      • 2018-11-05
      • 2018-06-15
      • 1970-01-01
      相关资源
      最近更新 更多