1 公有云API的認(rèn)證方式
一般有以下幾種認(rèn)證方式:
- Token認(rèn)證
- AK/SK認(rèn)證
- RSA非對稱加密方式
下面主要介紹AK/SK。
1 AK/SK
1.1 AK/SK 原理
云主機(jī)需要通過使用Access Key Id / Secret Access Key加密的方法來驗(yàn)證某個(gè)請求的發(fā)送者身份。
- Access Key Id(AK)用于標(biāo)示用戶。
- Secret Access Key(SK)是用戶用于加密認(rèn)證字符串和云端用來驗(yàn)證認(rèn)證字符串的密鑰。
其中SK必須保密。熟悉非對稱加密的的話,舉個(gè)例子:AK相當(dāng)于非對稱加密的公鑰,而SK相當(dāng)于非對稱加密的私鑰。公鑰加密信息,只能由對應(yīng)的私鑰才能解密,這是基本原理。 AK/SK也是如此。
1.2 AK/SK使用機(jī)制
云主機(jī)接收到用戶的請求后,系統(tǒng)將使用相同的SK和同樣的認(rèn)證機(jī)制生成認(rèn)證字符串,并與用戶請求中包含的認(rèn)證字符串進(jìn)行比對。如果認(rèn)證字符串相同,系統(tǒng)認(rèn)為用戶擁有指定的操作權(quán)限,并執(zhí)行相關(guān)操作;如果認(rèn)證字符串不同,系統(tǒng)將忽略該操作并返回錯(cuò)誤碼。
1.3 流程
判斷用戶請求中是否包含Authorization認(rèn)證字符串。如果包含認(rèn)證字符串,則執(zhí)行下一步操作。
基于HTTP請求信息,使用相同的算法,生成Signature字符串。
使用服務(wù)器生成的Signature字符串與用戶提供的字符串進(jìn)行比對,如果內(nèi)容不一致,則認(rèn)為認(rèn)證失敗,拒絕該請求;如果內(nèi)容一致,則表示認(rèn)證成功,系統(tǒng)將按照用戶的請求內(nèi)容進(jìn)行操作。
原文:https://blog.csdn.net/makenothing/article/details/81158481