使用 Okta 作为 IdP 的 Cognito 使用 SAML 2 续订令牌问题



我遇到了AWS Cognito的问题,我使用Okta作为使用SAML协议的IdP。

我使用这个文档配置了所有内容 https://aws.amazon.com/premiumsupport/knowledge-center/cognito-okta-saml-identity-provider/

在Okta有集成的广告,从我们获得用户。 一切都很好,当我向 Cognito 发送令牌请求时,我得到了该访问令牌和 Id 令牌以及令牌类型。之后,在 Cognito 用户池中创建具有特定前缀的"外部用户",该前缀是保存在 Cognito 中的 IdP 的名称。 当我删除每个 cookie 并尝试像以前一样使用相同的凭据再次发送请求令牌时导致的问题。 完成此步骤后,我每次都遇到错误Error: server_error: {"error_description":"Error+in+SAML+response+processing:+Invalid+user+attributes:+email:+Attribute+cannot+be+updated.+","error":"server_error"}

我使用邮递员使用"授权"选项卡获取令牌,并选中类型为 OAuth 2.0。每个属性都很好,但我不知道为什么每次在第一个成功请求令牌后(或在当前令牌过期 1 小时后(都出现该错误。

好的,我找到了解决方案。 当我从 AWS UI 创建 Cognito 时,一切正常。虽然从Terraform创建Cognito后,某些东西不起作用,但所有设置和属性都等于手动创建的Cognito。

我更改的是另一种从此向 Cognito 用户池添加架构的方法

schema = {
attribute_data_type = "String",
name = "email",
required = true
}

对此

schema {
attribute_data_type      = "String"
developer_only_attribute = false
mutable                  = true
name                     = "email"
required                 = true
string_attribute_constraints {
min_length = 7
max_length = 256
}
}

我认为mutable财产很重要。如果没有这个属性,terraform认为这个服务的状态是改变的,每个tf apply都想破坏服务,而实际上什么都没有改变。

相关内容

  • 没有找到相关文章

最新更新