【问题标题】:AudioPlayer.Play directive: How to secure the mp3-file, that will be used by alexaAudioPlayer.Play 指令:如何保护将由 alexa 使用的 mp3 文件
【发布时间】:2019-03-07 20:44:32
【问题描述】:
我正在构建一项技能,当提示时播放一首随机歌曲。
我已经想到,我必须使用AudioPlayer.Play 指令并为audioItem.stream.url 提供一个有效属性(例如https://test.com/api/getmysong,它返回一个流式mp3 文件)。
到目前为止,一切都很好。但是……
出于安全原因,我不希望“公共用户”能够访问 mp3。 alexa 究竟是如何请求文件的?这也是我可以用来验证的特定 Alexa 请求,用户有权请求 mp3 吗?我需要使用任何其他机制来保护我的“mp3”文件吗?
【问题讨论】:
标签:
c#
authentication
asp.net-core-webapi
alexa-skills-kit
【解决方案1】:
您的 mp3(文件或流)必须是公开的并通过 https 提供 - Alexa 只使用提供的链接。
Flash 简报创建者会发现同样的问题 - 因为 Flash 简报音频文件也应该具有公共访问权限。但是-您可以限制对AWS IP range 的音频流的访问-在Amazon Developers Forum 上与topic 相关的Flash 简报中找到。它不会 100% 保护您的音频 - 但仍会使您的文件无法从“互联网的其余部分”访问。
【解决方案2】:
我还发现亚马逊没有播放我的 mp3,除非它的 URL 是 CA 签名的。它不适用于自签名证书。
另一种方法是将 mp3 文件上传到 Amazon S3 存储,在那里您可以有更多的身份验证机制