Web API 如何做身份認證?
這篇文章主要討論當用程式與後端web服務溝通時
這樣的程式 API 呼叫如何做認證?
我們知道當使用者瀏覽網頁的時候, 有相關登入認證的機制
但是對於程式 API呼叫並沒有使用者輸入帳號密碼的機制來判斷身分
因此, Web API 要如何做身分來源認證呢?
API Keys
API Key就是API程式呼叫主要用來做身分認證的一種方式.
但是後端服務如何從API Key得知該使用者是誰呢?
這就必須讓使用者先有一個註冊的過程
註冊完之後, 就會產生一組相對應的API key
因此, 該使用者就可以利用這個 API Key 用程式進行呼叫使用後端服務
API Key 的叫法有很多, APP Key, Consumer Key , Public Access Key 等
這些名詞都是同樣的用意, 都是用來判斷該API呼叫的來源
註冊取得 API Key
當使用者或是開發者與後端服務註冊時, 會得到一組 API Keys
開發者就可以用這組 API Keys 在之後調用或是呼叫 API 時候一起傳送
API 呼叫中所帶的 API Key傳送到後端,
後端就會根據該 API Key 的有效性進行身分認證
由於 API Key 如果被盜取, 其
實很容易造成第三方冒名的方式透過API呼叫
因此使用者或是開發商對於 API Key 的保存的安全性
就像保存帳號密碼一樣的重要
因為 API Key 就相當於帳號密碼, 用來做身分確認
因此, 對於後端服務來說, 定期更換 API Key 也是一種安全防護的機制
API Key 驗證
API Key 在檢查的時候, 會有哪些狀況呢?
- API Key 的參數遺失或是沒有傳送
- API Key的值格式非法不正確
- API Key 格式正確, 但是未被啟動, 或是已經被註銷
- API Key 不適用在特定服務資源的調用
這些錯誤處理也是後端服務對於 API Key基本防護之道
因為 API Key 就像是帳號密碼一樣
因此在 API 可以呼叫請求之前,
必須對 API Key的身分認證與合法性加以檢查