当前位置: 首页 > 知识库问答 >
问题:

如何在帐户链接azure AD后从alexa获取accesstoken

计承德
2023-03-14

我试图将我的Alexa AWS Lambda函数(node.js6.10)与Azure Activ目录连接到我的Azure云API。阅读后留档从亚马逊和许多教程我现在有一个工作帐户链接。这意味着,我可以在我的智能手机上链接Alexa-App内的技能帐户。

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

  • 授权授予类型:授权代码授予

在我的aws lambda函数中,我从alexa获得事件请求,如文档所述,带有版本、会话、上下文、请求的属性。。。

我对文档的理解是,Azure Cloud API请求所需的令牌应该在这里:session。使用者accessToken但是这个令牌看起来不像我需要的那个,在我的测试运行之后,我总是得到“未经授权”的回复。令牌看起来类似于此,长度为1252个字符:

AQABAAAAADX8GCI6JS6SK82TSD2PB7RQGN56IHT_YSXLSR1RADXUCGS0YKOAW0xZ1WNJJOTQZAN9BH7AGRBP0VQV2NJURW_aJil7[…]JIEO2Ap4wuG-TTWISMZBFLHYYTWQMXLAKQILAPPQFMBYCYU-dnzlVV4liDGyTQ7gAXufd3zt7QGmi3UfP1aL9f5NBeXbmxnU6FHRzF10QZa19pTQgNTtIK8oIAA

如果我配置了postman并将请求发送到azure Activv目录,我会得到如下accessToken(1168个字符长):

EYJ0EXAIIOIJKV1QILCJHBGC[…]Ezbk5aY2VEYyJ9。Eyjhdwqioijodhrwczovl21ldgvcmetyxbwlmf[…]KY5MWVuxDBQSISINZLCI6IJEUMCJ9。KJco47-FdJ_eeqv38LL[…]YK_4JqCRDw

这一个看起来像jwt令牌,如果我在aws lambda函数中直接复制该令牌,并将其用于Azure Cloud API请求,它就会工作(直到令牌过期)。

现在我不确定是否我的帐户链接配置有问题?还是我必须用Alexa的代币做些什么才能得到真正的?还是真正的代币在别的地方,我必须去那里拿?

非常感谢你的帮助!

亚马逊文档“Alexa技能工具包”:

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

  • 授权授予类型:授权代码授予
  • 授权URI:{OAUTH 2.0授权endpoint}?资源={应用程序ID}
  • 访问令牌URI:{OAUTH 2.0令牌endpoint}
  • 客户端ID: b9c6[...]bc60{Application ID}
  • 客户端秘密:{客户端秘密}应用

共有2个答案

柳正志
2023-03-14

除了Nate的回答和后面加的?资源=到授权URI,我必须给API权限Azure Active Directory Ggraph

如果没有此权限,帐户链接将抛出错误。如果您有类似的问题,请与Postman一起尝试OAuth值,并检查Postman控制台中的错误消息

东郭子默
2023-03-14

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

博文: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帐户链接部分更新URL使用login.microsoftonline.com而不是login.windows.net
  • ClientId是后端应用注册的Application Id
  • 的<代码>?资源=必须设置,并且必须与JWT承载选项的受众参数相同。如果您使用.Visual Studio中的Net Core 2.0模板。
  • 所使用的客户端秘密(密钥)不能是永不过期的。使用1或2年的期限。
 类似资料:
  • 你会认为亚马逊的两种产品会很好地整合在一起。你还会认为亚马逊会在他们的服务上留档。两者都大错特错。 我正在使用与Alexa的帐户链接,并使用AWS Cognito作为我的oauth提供商。我能够成功地链接我的帐户只是罚款,并与每一个后续的alexa调用我得到一个访问令牌返回给我。现在怎么办? 我需要能够从alexa lambda功能访问其他AWS服务,如dynamo、lambda和iot。我想这很

  • 我正在创建一个帐户链接Alexa技能。我得到了链接授权码并将其交换为访问令牌。然后,我尝试将所有参数:代码、访问令牌、技能ID放入Alexa技能激活API。我总是得到一个信息:“无效的帐户链接凭据”。 要怎么做?

  • 我试图在我的技能中使用帐户链接。问题是文档不够清晰。我有一个登录屏幕,它重定向到URL参数中提供的amazon重定向uri,我还包括代码(顺便说一句,我使用的是Auth code Grant),问题来了。我的脚本获取代码和客户端凭据并生成两个令牌,但是它应该如何处理它们呢?他们的系统是否等待json响应或包含两个令牌(使用它们的名称作为键)的东西,或者我是否应该再次重定向?他们在文档中说服务器应该

  • 我试图建立一个alexa技能,这将有facebook登录作为一个帐户链接提供商。我已经建立了它的开发版本,正在使用我自己的帐户。现在我正在考虑提交Facebook的应用程序进行审查,这样我就可以公开我的应用程序,并发布alexa技能。 我遇到的第一个可能是,我需要在FB应用程序中指定平台。最接近我的用例的可能是网站。但是要在字段中放置什么url。我的技能网址? 另一件事是,我想让用户的好友列表,使

  • 我真的在努力让我的头脑循环账户链接到alexa技能。我已经写了一个技能给我信息从strava回来,所有的工作都很好,但我需要一个令牌来访问用户Strava帐户。 我已经阅读了亚马逊的文档,但是对于如何设置链接,我仍然有点困惑。我可以打开Strava登录页面,但我刚从amazon收到一个错误,上面说“无法链接技能”,这是我的设置: 授权URL-https://www.strava.com/oauth

  • 我试着把我的蔚蓝环境和阿列克谢联系起来。我使用与HTTPBasic身份验证代码授予。输入授权URI、令牌URI、客户端ID和客户端秘密后,alexa技能中的链接帐户页面重定向到login.microsoftonline.com.登录后,我被重定向到skills.amazon.com上面写着无法将帐户链接到您的技能。对于alexa终结点,我使用的是Azure Function App。在Postma