ASP.NET WebAPI2第006天_API安全防範Key的設計_API Key跟Token差異
倘若我們設計的API任誰都能存取肯定會天下大亂 在一些公開資料平台 通常大多會設計有API金鑰的模式供他人存取,而金鑰注重在於 授權機制而非身分驗證 。 比方 Google API https://www.wfublog.com/2018/12/google-api-key-activate-quota.html 就能以此識別該專案呼叫的存取數目quota還剩多少跟費用計算 而在以前接觸過的 歐洲專利局OPS API存取 設計則還包含除了KEY 跟 Token等名詞 絕大部分人應該都知道 授權機制(Authorization) the process of validating whether ‘you have right to access’ the requested resource on the system. 確認你的身份之後提供給你許可權 例如Admin User可以修改資料,而General User只能閱讀資料。 身分驗證(Authentication) the process of validating ‘who you are’ by comparing the provided information with existing information data base of the system. 驗證使用者的身份 例如User希望以該平台會員的身份登入,那麼應用程式需要通過使用者名稱和密碼確認你真的是隸屬於此系統的會員。 API Key跟Token差異 以較廣義(不這麼嚴謹)跟通用的說法(有些其他的可能不是對應含意,先寫好避免被噴。) API Key (金鑰) 主要是 以一個專案應用、 終端(手機、平板、電腦) 為單位 ,金鑰注重在於 授權機制(Authorization) 。 白話一點可以理解為專for應用程式端所發放的 一組帳密且發放自提供API的原廠用於識別呼叫的專案 (即應用程式或網站) 可以理解生活應用中office啟用金鑰、台鐵高鐵買的票、門票 有的可能終生使用、有的則可能有有效期限。 token(使用者憑證) 或者 session key (id) 主要是 以一個user登入帳戶為單位 ,注重在於 身分驗證(Authentication) 。 使用者驗證:安全地驗證進行呼叫的使用者是否符合其宣稱的身分 使用...