- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在无服务器 lambda(在 REST 端点中运行)中设置 AWS.config.credentials。登录来自使用 ADFS 作为联合身份的 Cognito 用户池。我还混合了 Cognito 身份池。
我的 lambda 处理程序具有如下所示的事件、上下文和回调参数:
exports.handler = (event, context, callback) { ... }
event.headers.Authorization 具有一个有效的 JWT(来自 id_token),当在 HTML 客户端上执行对 REST 端点的 POST 调用时,该 JWT 被放置在 Authorization header 中。我在这里亲自验证了 JWT:https://jwt.io 。此外, context.authorizer 对象看起来也有效,表明我已登录,它具有我的电子邮件和用户名信息以及有效的颁发和到期日期。简而言之,我很确定我已经获得了有效的登录信息。
但是当我尝试执行以下命令时,出现错误“NotAuthorizedException:无效的登录 token 。颁发者与提供者名称不匹配”
AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'us-east-1:my-identity-pool-id', Logins: { "cognito-idp:us-east-1.amazonaws.com/us-east-1_myUserPoolId": event.headers.Authorization } }); AWS.config.credentials.get(err => { if (!err) { var id = AWS.config.credentials.identityId; console.log('Cognito Identity ID '+ id); } else { console.log('cred error: ', err); } });
当然,my-identity-pool-id 和 myUserPoolId 会替换为其实际值。我已经看到有关此主题的许多其他帖子表明错误制定的登录对象会产生此错误,但我已经在这段代码中多次讨论过这个问题 - 并让其他人也帮我检查过。我不认为我把那部分弄错了。就错误文本而言,它实际上是正确的。如果我查看解码后的 JWT,会发现颁发者和提供者名称不同:
{ "at_hash": "pciSj0Hcjk1Pp9noJIj4GQ", "sub": "e41500b1-d987-49be-81c0-8fbc36a59ce1", "email_verified": false, "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_xxxxxxx", "cognito:username": "ge2cadmin2-saml-idp_ravi", "cognito:roles": [ "MyFancyRole" ], "aud": "7r7v0ren5fm3m6vmjgj6nasr79", "identities": [ { "userId": "ravi", "providerName": "ge2cadmin2-saml-idp", "providerType": "SAML", "issuer": "http://adfs.careevolution.com/adfs/services/trust", "primary": "true", "dateCreated": "1590770196859" } ], "token_use": "id", "auth_time": 1591118267, "exp": 1591126227, "iat": 1591122627, "email": "[email protected]" }
如您所见,在 identities[] 部分中,发行者是 http://adfs.careevolution.com/adfs/services/trust提供程序名称为 ge2cadmin2-saml-idp。但我认为在这种情况下,这是可以预料的。但是,如果问题确实是这种差异(而不是其他地方的一些错误配置),我该如何设置才能使 AWS.CognitoIdentityCredentials 可以接受与提供者名称不同的颁发者?
最佳答案
答案其实很简单。魔术字符串:“cognito-idp:us-east-1.amazonaws.com/us-east-1_myUserPoolId”不正确。相反,我应该使用:“cognito-idp.us-east-1.amazonaws.com/us-east-1_myUserPoolId”(在cognito-idp后面加一个点而不是冒号)。虽然错误消息很糟糕且具有误导性,但事实证明该错误只是简单的用户错误。
我在此发布此信息是为了帮助任何搜索相同误导性错误消息的人。
关于aws-lambda - AWS Cognito 与 ADFS : Issuer doesn't match providerName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62160813/
我正在尝试将我的 xcode 应用程序存档到 Itunes,但我得到了 following errors : 1.) “配置文件不支持推送通知。” 2.) “配置文件不包含 aps-environme
我正在尝试为我们的组织构建一个 Web 应用程序,它将使用我们的 O365 进行身份验证。在尝试使用管理员帐户连接到域时,我遇到了这个错误,其中提到 admin..onmicrosoft.com(全局
当我尝试构建 MUAI 项目时,它给出错误“该项目不知道如何运行配置文件 sample.WinUI”。项目已构建但无法运行。我使用的是 Visual Studio 2022 Preview(17.0
当某项包含在列表中时,有一个查询要搜索,但当某项不在列表中时,则没有查询。 此查询查找在给定列表 cdiffnums 中没有 ContactNum 的 customer 对象。我该怎么做才能仅返回此列
我们有一个黑盒第三方 Java 程序,可以从某个位置获取输入文件并制作 PDF。每次输入时,它都会将 list 文件放在同一位置,这需要我们以受控方式提供文件。 list (或 .xen/.que)是
我看到这个has选择器,hasnt 选择器在哪里?我想查找不包含图像的表格。 最佳答案 类似$("table:not(:has(img))")? 关于jQuery: "Doesn' t 有“选择器?,
为什么?这让我发疯??? $(document).ready(function () { $('#slides1').bxSlider({ prev_
我是 kubernetes 的新手。 我无法使用 kubectl 进行部署,但我可以在 kubernetes 仪表板上看到所有部署。我该如何解决这个问题? user@master:~$ kubectl
这个问题已经有答案了: What do querySelectorAll and getElementsBy* methods return? (12 个回答) 已关闭 6 年前。 HTML JS
我有两个数组,一个包含字符串值,另一个包含整数值,尽管这可能很愚蠢,但我陷入了困境,我需要一点帮助,我想遍历两者,如果 arr1 包含 arr2 中不存在的项目,它将被推送到 newArray 这是我
我一直在尝试为我的网站安装一个 PHP 脚本,设置所有内容,通过脚本附带的 phpMyAdmin 导入 SQL 文件,但我面对的是一个空白页面,错误如下所示: File /home/user/publ
我正在努力将站点的服务器从 PHP 5.2.17 升级到 5.5,以使其在未来的升级中保持新鲜,并安装其他需要 PHP 5.4+ 的软件。 数据库有一个我正在测试的表,其中有许多列在初始 INSERT
我一直收到这个错误: Object doesn't support this property or method 每当我在 IE7 和 IE8 中运行我的代码时。这是它停止的代码: _renderU
我想使用正则表达式排除某些单词。 输入文本: aaa1234 cc bbb1234 c1234 cc dd aacc cccc ccadf cc 输出文本: aaa1234 bbb1234 c1234
我有一个名为 adjust_status 的存储函数和一个包含 status 列的表 users。 select adjust_status(status) as adjusted_status
我有一个表,其中有一列由插入前触发器填充,该列设置为 NOT NULL 并且没有DEFAULT VALUE。 当我执行 INSERT TABLE 而不传递此列时,我收到错误:1364 - Field
这个问题已经有答案了: Modify the value of each textfield based on original value using jQuery (3 个回答) 已关闭去年。 使
我正在阅读 this , 它说 @keyframes rules don't cascade, so animations never derive keyframes from more than
编辑:我解决了问题,请参阅答案中的链接。 我正在使用 XMLHttpRequest AJAX API 将来自不同网站的数据发送到我们在 PythonAnywhere 中的服务器。奇怪的事情发生了:根据
我已经阅读了 Linux 调用 dlopen() 和 dlsym() 的文档,它们分别打开一个动态库并在库中加载一个符号。 这些调用似乎等同于 Windows 的 LoadLibrary() 和 Ge
我是一名优秀的程序员,十分优秀!