TL; DR;是否有任何方法將(承載?)令牌綁定到唯一的客戶端,並在HTTP REQ頭中表示該令牌?如何識別客戶唯一性?
在用戶擁有服務帳戶的情況下。同一用戶應該能夠使用不同的客戶端應用程序(不同的瀏覽器,原生移動應用程序)來使用服務。對於每個不同的環境,最好的方法是應該遵循一個登錄過程(OAuth2?),每個應用程序獲取一個令牌(不記名令牌)。然後,每個客戶端都能夠使用這些服務,並且通過使用該令牌識別他們自己,服務提供商可以對其使用範圍進行限定。
雖然服務提供商想要將每個令牌的使用隔離到特定客戶端時會發生什麼情況,但這在大多數情況下都能正常工作?
當然,在安全事件中,提供者可以放棄持有令牌的集合/表,但不會更好地讓客戶傳遞其唯一標識符(可能是md5(concat(app.version, environment.name, username))
)的MD5及其身份驗證令牌?
P.S .:我認爲傳遞這樣的值作爲一個屬性在身體的有效載荷是無效的。由於這種認證步驟應該在服務器讀取HTTP頭時進行。
我明白你的觀點,毫無疑問'client_id'是過程的一部分。是客戶唯一性可能被欺騙。我猜我可以通過執行'md5(concat(app.version,env.name,username,verifier(salt,username,secret)))'''''''''''''''''感謝您的參考! –