gpt4 book ai didi

amazon-web-services - 账户与azure AD关联后如何从Alexa获取accesstoken

转载 作者:行者123 更新时间:2023-12-02 23:46:09 25 4
gpt4 key购买 nike

我尝试将 Alexa AWS Lambda 函数 (node.js 6.10) 与 Azure Activ Directory 连接到我的 Azure-Cloud-API。读完documentation后来自亚马逊和许多教程,我现在有了一个有效的帐户链接。这意味着,我可以在智能手机上的 Alexa 应用程序内链接技能帐户。

我的自定义技能的帐户链接:{来 self 的 Azure 门户的数据}

  • 授权类型:授权码
  • 授权 URI:{OAUTH 2.0 AUTHORIZATION ENDPOINT}
  • 访问 token URI:{OAUTH 2.0 TOKEN ENDPOINT}
  • 客户端 ID:b9c6[...]bc60 {应用程序 ID}
  • 客户端 key :{客户端 key }
  • 客户端身份验证方案:请求正文中的凭据
  • 范围:openid
  • 域:空
  • 重定向网址:--> 在 Azure 门户中定义为允许的 token 受众和回复 URL

在我的 aws lambda 函数中,我从 Alexa 获取事件请求,如文档所述,其中包含版本、 session 、上下文、请求的属性...

我对文档的理解是,Azure-Cloud-API-Request 所需的 token 应该位于此处:session.user.accessToken但这个 token 看起来不像我需要的,并且在测试运行后我总是得到“未经授权”。 token 看起来像这样,长度为 1252 个字符:

AQABAAAAAADX8GCi6Js6SK82TsD2Pb7rqGN56iHT_YSxlSr1RAdXucGs0S3ykOaw0XZ1WnjJotqZAn9BH7agRbP0VQv2rnJuRw_aJil7 [...] JIEO2Ap4wuG-tTwiSmZBfbLhyYtwQmxLAkqiLApqFmBYcyu-dnzlVV4liDGyTQ7gAXufd3zt7QGmi3UfP1aL9f5NBeXbmxnU6FHRzF10QZa19pTQgNTtIK8oIAA

如果我配置 postman 并向 azure activ 目录发送请求,我会得到如下所示的 accessToken(1168 个字符长):

eyJ0eXAiOiJKV1QiLCJhbGc [...] Ezbk5aY2VEYyJ9.eyJhdWQiOiJodHRwczovL21ldGVvcmEtYXBwLmF [...] kY5MWVUUXdBQSIsInZlciI6IjEuMCJ9.KJco47-FdJ_eeqv38LL [...] YK_4JqCRDw

这个看起来像一个 jwt-token,如果我直接在我的 aws lambda 函数中复制这个 token 并将其用于 Azure-Cloud-API-Request,它就可以工作(直到 token 过期)。

现在我不确定我的帐户链接配置是否存在问题?或者我是否必须使用 Alexa 的 token 做一些事情才能获得真正的 token ?或者真正的 token 在其他地方,我必须在那里获取它?

非常感谢您的帮助!

亚马逊文档“Alexa 技能套件”:

https://developer.amazon.com/docs/custom-skills/link-an-alexa-user-with-a-user-in-your-system.html

编辑(解决方案)2018年6月11日

  • 授权类型:授权码
  • 授权 URI:{OAUTH 2.0 授权端点} + ?resource= + {应用程序 ID}
  • 访问 token URI:{OAUTH 2.0 TOKEN ENDPOINT}
  • 客户端 ID:b9c6[...]bc60 {应用程序 ID}
  • 客户端 key :{Client Secret} 应用>设置> key 新 key ,过期日期 = 2 年
  • 客户端身份验证方案:请求正文中的凭据
  • 范围:空
  • 域:空
  • 重定向网址:--> 在 Azure 门户中定义为允许的 token 受众和回复 URL

最佳答案

听起来您还没有完成您的技能的帐户链接序列。设置帐户链接配置后,您需要打开 Alexa 应用程序(在您的手机上或 https://alexa.amazon.com )并转到您的新技能并链接您的帐户。成功后,您将在 request.Session.User.AccessToken 中获得一个 token 。

博客文章:https://blogs.msdn.microsoft.com/premier_developer/2017/12/09/amazon-alexa-skills-authenticated-by-azure-active-directory-and-backed-by-asp-net-core-2-0-web-api-hosted-on-azure/需要更新以下内容:

  • 您可以忽略有关“前端”应用注册的部分。
  • 在 Alexa 帐户链接部分更新网址以使用 login.microsoftonline.com 而不是 login.windows.net
  • ClientId 是“后端”应用注册的应用程序 ID
  • 必须设置 ?resource= 并且必须与 JWT 承载选项的受众参数相同。如果您在 Visual Studio 中使用 .Net Core 2.0 模板,则这是 ClientId。
  • 使用的客户端 key ( key )不能是“永不过期”的 key 。使用 1 或 2 年的期限。

关于amazon-web-services - 账户与azure AD关联后如何从Alexa获取accesstoken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49998033/

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