教程分類
教程瀏覽排行

4種認證(authentication)或授權(authorization)方式

authentication 認證訪問者是誰 authorization 訪問權限 authentication 一般包含兩個步驟,第一步,用戶需要安裝服務提供的授權證書,或者用戶需要使用API服務中已經存儲的某個賬戶,也可以創建一個;第二步,每次發送請求到API服務時需要帶上證書,因為RESTful API 是不會記錄客戶端與服務端的會話,無狀態限制。 有些認證技術還涉注冊,客戶端需要安裝證書,并且按需要安裝用戶個人的證書,客戶端需要將客戶端的證書和用戶證書一起攜帶發送請求。 Basic Authentication HTTP Basic authentication is described in RFC 2617. It’s a simple username/password scheme. 將用戶名與密碼進行Base64轉碼,但這種轉碼是可逆的。某些爬蟲工具可能會獲取這些請求信息,直接獲取用戶的賬號和密碼,如果采用HTTPS方式發送請求,每次請求和響應會被SSL加密,爬蟲無法獲取這些信息。另一個問題,由于API通常不能信任用戶使用的客戶端,如果用戶在多個設備(平板、電腦、手機)中登錄了這個API服務,其中一個設備出現安全問題,需要修改密碼,那么其他設備也需要重新登錄才行。為了解決第二個問題,需要對每個設備給予不同的證書。 OAuth OAuth 是一種授權框架,能夠讓應用通過HTTP 服務獲取有限的訪問,訪問用戶賬號信息,例如Facebook, GitHub, DigitalOcean都采用該技術。它可以委托認證服務授權第三方應用訪問自己的賬號信息。OAuth2 相比OAuth 1,可以在PC端、移動端設備上使用。 OAuth 定義了四種角色: 1. 資源所屬者,User, 擁有該資源的人,擁有Application所訪問資源的權限。 2. 客戶端, Application, 需要訪問用戶賬號信息的應用 3. 資源服務器, API 4. 授權服務器, API OAuth 抽象版流程圖 在應用(Application/Client)使用OAuth前需要在Service API 注冊該應用。需要在Service中提交應用的信息:名稱、網站、授權后的跳轉URL。 當應用注冊后,Service會發布“client credentials”客戶端證書,包括client identifier 和 client secret. Client ID 是公開的字符串,提供ServiceAPI標識該應用,并且用來構建呈現給用戶的授權URLs。 Client Secret用來認證Application向ServiceAPI的發起訪問用戶賬號信息的請求,需要確保Application與API之間的隱私。 Authorization Grant (權限授予方式) 在上圖的第一步中有權限授予操作。OAuth2 提供四種授予權限的方式,根據不用場景使用: 1. Authorization Code: 在服務端應用采用 2. Implicit: 移動端APP,Web應用 3. Resource Owner Password Credentials: 在可信任的應用中使用 4. Client Credential:應用訪問API采用的 Authorization Code Flow 第一步,用戶 訪問授權請求的鏈接,例如 鏈接包含五個信息: API 授權點 client_id: client_id, redirect_uri=CALLBACK_URL response_type=code, 指定應用的授權的方式,采用authorization code grant 方式 scope=read. 指定訪問的等級 第二步,授權應用后,會獲取authorization code 第三步,根據code換取 token
來源:本站整理 發布時間:2019/1/31 16:30:13 瀏覽次數
上一篇教程:用好PowerPoint2007的重用幻燈片
下一篇教程:flash教程視頻
教程評論


評論人: 驗證碼:
內 容:
相關教程
亚洲AⅤ无码片一区二区三区