gpt4 book ai didi

oauth-2.0 - Alexa 帐户链接 - 如何使用 id_token 而不是访问 id_token

转载 作者:行者123 更新时间:2023-12-03 17:05:09 25 4
gpt4 key购买 nike

我成功地将我的 Alexa 应用程序(客户端)链接到我们公司的 OpenID Connect 平台(授权服务器)。

我们的授权服务器向 Alexa 客户端返回以下信息:

{
"access_token":"eyAi",
"refresh_token":"kfQ",
"scope":"openid profile",
"id_token":"eyA",
"token_type":"Bearer",
"expires_in":3598
}

Alexa 客户端成功接收此信息,并在调用技能时将“access_token”传递给我们的代码。

所以总而言之,两个系统是链接的,alexa 正在向我们发送 access_token。到现在为止还挺好。

然而,问题是我们的平台需要“id_token”而不是“access_token”。所以我希望 Alexa 向我们发送 id_token。

我找不到有关如何实现这一目标的任何文档。请帮忙。

Here是一个链接到alexa下的账户链接

最佳答案

截至 2020 年 1 月也是如此。与流行相反convention其中 accessToken 在授权请求 (OAuth) 中传递,Id token 用于身份验证 (OpenId)。

通过 Cognito 用户池登录时,我们会获得 ID token 、访问 token 和刷新 token 。 ID token 用于与 STS 和 Cognito 联合身份通信。
如果发送的是 accessToken 而不是 ID token ,则 API Gateway 授权方仅检查 ID token 会将请求视为未授权。
AWS 在此视频中解释了 Cognito 和联合身份之间的数据流:https://youtu.be/VZqG7HjT2AQ?t=528

当用户登录 Alexa 技能时,将 Alexa 与 Cognito 链接。
Alexa 记录来自所有其他 token 的 accessToken,并在后续请求中将其发送给 Cognito。

由于这些请求中没有 ID token ,它们会因 HTTP 401 而失败。
这是亚马逊服务之间的不和谐,希望他们制定解决方法。

一种解决方法是使用自定义授权方 lambda 并编写您自己的逻辑。

更好的方法是使用资源服务器向您的用户池添加一些自定义 OAuth 范围。然后添加OAuth Scopes到您的 API Gateway 资源页面。

API Gateway 将检查 accessToken 并允许具有 API Gateway 资源中定义的 OAuth 范围的请求。

关于oauth-2.0 - Alexa 帐户链接 - 如何使用 id_token 而不是访问 id_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47337662/

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