2016-09-28 21 views
1

我想記錄每個設備/ userId的一些持久性細節/歷史記錄。我不想在另一個系統中使用單獨的帳戶,因此我想避免使用帳戶關聯。文檔表明這很好,請參閱下文。使用亞馬遜Alexa請求中提供的userId安全地進行身份驗證?

它是安全的假設,其中包括用戶id的任何請求必須是從原來的設備?

  • 能的用戶ID猜測?
  • userId可以暴露嗎? (假設沒有重大的AWS入侵)
  • 可以請求攔截? (我使用AWS lambda來處理請求)

相關文檔:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/linking-an-alexa-user-with-a-user-in-your-system

請注意,帳戶當技能需要與需要身份驗證的系統連接需要鏈接。如果您的自定義技能只需跟蹤用戶在會話之間保存屬性,則不需要使用帳戶鏈接。相反,您可以使用每個請求中提供的userId來標識用戶。當用戶在Alexa應用中啓用您的技能時,會生成給定用戶的userId。除非用戶禁用該技能,否則該用戶對您的技能的每個後續請求都包含相同的userId。

回答

0

我不認爲有任何方式來id設備的(你寫「device/userId」)所以是的,你會使用userId,它是非常標準的使用Alexa userId作爲密鑰存儲/查找用戶的詳細信息/歷史記錄。正如你已經得出結論,它聽起來不像你需要帳戶鏈接。

我假設用戶id是隨機生成的值,該值不能被猜到,並且請求被加密,從而不應該有一個問題存在。我相信我讀過,如果用戶刪除你的技能,然後再次添加它,那麼userId是不一樣的(所以你沒有辦法知道它實際上是同一個用戶,而不使用帳戶鏈接)。我提到的一點是,它讓我假設用戶沒有一個用於他們所有技能的userId(我認爲這將被視爲'暴露'userId),而是爲每個技能生成一個新的userId。所以你應該安全。

+0

這是非常危險的假設標識,不是爲了安全,是隨機生成的。對於許多通用鍵具有與其嵌入的配置文件信息並且通常是順序生成的。他們可能會被混淆,但這並不意味着安全。如果內部生成邏輯暴露​​出來,這些ID可能會變得非常弱。 –

+0

@JimRush是的,的確如此,但他建議使用它們的方式(以及我使用它們的方式)與亞馬遜提供的示例一致。 – Tom

+0

由於沒有關於此事的文件,這個問題可能需要發佈在亞馬遜的論壇上,以獲得一些有信譽的來源的答案。這都是猜測。 –

相關問題