教程分類
教程瀏覽排行

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教程視頻
教程評論


評論人: 驗證碼:
內 容:
相關教程
腾讯分分彩稳赢技巧 墨竹工卡县| 丹凤县| 当涂县| 高州市| 元氏县| 温宿县| 上杭县| 兰溪市| 休宁县| 孟连| 同德县| 吉隆县| 东乡县| 阜城县| 西和县| 错那县| 大化| 常宁市| 澳门| 忻州市| 盐城市| 西乡县| 灵川县| 谷城县| 清苑县| 探索| 来凤县| 孝义市| 齐齐哈尔市| 庄浪县| 保山市| 佛学| 项城市| 宝坻区| 略阳县| 南宫市| 雷波县| 衡水市| 南部县| 望都县| 九龙县| 玉环县| 汤阴县| 武川县| 甘谷县| 牟定县| 海南省| 山东| 宁都县| 德阳市| 吴堡县| 杭锦旗| 农安县| 寿宁县| 将乐县| 鞍山市| 慈溪市| 临沭县| 阳朔县| 玛曲县| 柯坪县| 宁南县| 英德市| 肇州县| 阳曲县| 神农架林区| 宕昌县| 齐齐哈尔市| 达尔| 积石山| 犍为县| 灵璧县| 丰原市| 波密县| 邯郸县| 武强县| 枣强县| 安福县| 洞头县| 荃湾区| 简阳市| 舟山市| 横山县| 洪湖市| 苏州市| 涿州市| 建昌县| 县级市| 五河县| 工布江达县| 武隆县| 稻城县| 无棣县| 巴彦淖尔市| 永新县| 博乐市| 瓮安县| 兰州市| 亚东县| 澎湖县| 尼勒克县| 建平县| 田东县| 连南| 茌平县| 瑞安市| 平泉县| 正宁县| 边坝县| 溧阳市| 南丹县| 济源市| 天镇县| 吴川市| 太仆寺旗| 鄂托克前旗| 波密县| 北辰区| 英吉沙县| 义乌市| 广西| 屏南县| 垦利县| 苍梧县| 绥滨县| 囊谦县| 灵丘县| 桦川县| 勃利县| 容城县| 公安县| 舟曲县| 汉阴县| 隆子县| 大英县| 彰化县| 平凉市|