amazon-web-services - AWS Cognito OIDC 自定义
问题描述
https://consumerdatastandardsaustralia.github.io/standards/#security-profile
我正在尝试将 AWS Cognito 设置为 OIDC 提供商。能够创建用户池,但需要大量自定义数据。例如 Cognito 的“.well-known/openid-configuration”返回的细节很少,但缺少 introspection_endpoint、revocation_endpoint、claims_supported 等。
同样,需要使用附加声明自定义 /authorize 端点。
任何帮助或建议都会非常有帮助。
问候和感谢
解决方案
声明可以使用 lambda 进行某种程度的自定义:https ://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-pre-token-generation.html
introspection_endpoint 和 revocation_endpoint 不是核心 oauth 并且是扩展。我发现 Cognito 通常不实现扩展,oauth2 核心的很多部分也没有实现。
Cognito 缺少许多您可能希望开箱即用的功能,当您指出缺少标准功能时,有一个看似庞大且不透明的积压支持不断参考。
- 托管 UI 中没有静默刷新功能,因此没有安全的方式来存储刷新令牌。
- 不支持托管 UI 中的自定义身份验证流程
- 托管 UI 中没有无密码支持
- 无法在托管 UI 中预填充字段(例如用户名)
- 无法在自定义 UI 中自定义过多的晦涩错误消息
- 现在已修复,但多年来电子邮件地址是区分大小写的!
如果您选择不使用托管 UI,则无法获得任何 oauth 范围。
您可以将许多非 oauth cognito idp 调用与访问令牌一起使用:https ://awscli.amazonaws.com/v2/documentation/api/latest/reference/cognito-idp/index.html
如果这些不符合您的需求,我建议您考虑其他身份验证服务,或者如果您选择继续使用 Cognito,请调整您的期望。祝你好运!
推荐阅读
- bash - 使用 Bash 脚本并行运行多个 Google Apps Script clasp 命令
- vim - 将 f 键映射到符号并不总是有效
- react-native - 链接多个上下文提供程序在反应本机中工作在同一领域
- python - 如何仅将特定文件从旧文件夹复制到新文件夹?
- video - 如何使用ffmpeg获取给定时间戳的帧号
- python - 多次从列表中生成唯一对而不重复
- javascript - Restcountries API - 通过 Javascript 将货币名称动态转换为 HTML
- jenkins - 如何将其他 groovy 文件导入到我的 pipeline.groovy 文件中?
- machine-learning - 纳斯达克 ITCH 订单簿构建 -> 扩展“.gz”文件时出现 EOF 错误
- r - FUN 中的错误(左,右):R 中二元运算符的非数字参数