平臺功能-子賬號授權改造升級介紹
改造內(nèi)容
本次改造內(nèi)容分為兩塊,第一是子賬號sessionkey的改造;第二是子賬號授權模式的改造;
①. 子賬號sessionkey改造,影響主要面向ISV(第三方應用開發(fā)者)
- 改造前:子賬號登陸獲取的授權碼sessionkey值跟主賬號的一致;
- 改造后:給子賬號頒發(fā)重新生成的sessionkey值,與主sessionkey相關但參數(shù)值不同, 子sessionkey授權時長與主sessionkey一致,支持主子sessionkey各自獨立刷新高危讀寫API的有效時長,子賬號授權方式和返回參數(shù)解析不變;
②. 子賬號授權模式的改造,影響主要面向用戶;(請點擊改造后用戶授權流程)
- 改造前:只支持所有子賬號對第三方應用的訪問權;
- 改造后:可支持通過角色授權第三方應用或針對個別子賬號單獨授權第三方應用;
改造范圍
只要支持子賬號的應用都生效;(本次改造暫不對旺旺插件類應用生效)
改造目的
對用戶來說:
①. 保護用戶數(shù)據(jù)安全;后期會在api層面根據(jù)不同權限不同子賬號sessionkey限制api權限(還在規(guī)劃中);
②. 多個應用使用一套賬號系統(tǒng);一個賣家會使用多個isv的系統(tǒng),如ERP、CRM等,可以使用一套帳號系統(tǒng);
③. 分角色分員工使用系統(tǒng);賣家主賬號可以根據(jù)員工權限和角色決定是否給予系統(tǒng)使用權限;
對ISV和商家來說:
①. 日志監(jiān)控;使用子賬號的sessionkey,便于記錄操作源頭,做安全日志監(jiān)控;并且官方會統(tǒng)一開放操作日志供用戶查詢,進一步記錄到最準確的操作者; (目前官方記錄的操作日志都是基于父帳號的,因為子賬sessionkey就是直接使用父帳號的,改造之后會做成繼承子sessionkey的控制);
注意:
日志查詢?nèi)肟冢涸谧淤~號管理系統(tǒng)的“操作日志”中查詢;
監(jiān)控業(yè)務范圍:主要是幾塊核心的業(yè)務,如商品、交易等的修改、刪除等操作,所以監(jiān)控的API只有部分高危的API;
監(jiān)控對象范圍:所有支持子賬號并調(diào)用修改價格等高危監(jiān)控的API的第三方應用,以及淘寶后臺相應操作記錄;
日志開放內(nèi)容:只記錄行為,不記錄具體的API,具體到操作者nick,時間,appkey(若是第三方應用),操作內(nèi)容等;
子賬號sessionkey生效規(guī)則
- 子sessionkey與主sessionkey的授權有效時長相等,當主賬號sessionkey失效時,子sessionkey也同樣失效;子賬號無法授權需給予提示;
- 主賬號在“子賬號管理”中取消對某子賬號的授權,則該子賬號的所有外部sessionkey均失效;子賬號無法授權時給予提示;
- 在子sessionkey有效的前提下,主子賬號都可各自刷新其R1、R2、W1、W2四個時長,且相互不受影響;(詳見//open.taobao.com/doc/detail.htm?id=1002);
- 子賬號首次授權、短授權驗證需彈出授權頁面,無法授權成功需提示原因。
子賬號sessionkey頒發(fā)規(guī)則
- 老授權方式:TOP授權大開關,控制所有子賬號可用或不可用。
a. 針對老授權方式:將取消TOP給子賬號授權的大開關,兩個入口取消:
1. TOP的授權頁面,取消授權子賬號的勾選框,如圖(1);
2. 賬號管理中的應用授權頁修改,取消下圖紅框中的功能,如圖(2);
圖(1)
圖(2)
b. 主賬號對子賬號的授權在賣家中心的“子賬號管理”中設置,官方會將授權關系推送到TOP,TOP只給擁有訪問權的子賬號頒發(fā)子sessionkey,否則不予頒發(fā)。
- 新授權方式:TOP取消授權大開關,用戶在“賣家中心---子賬號管理”中選擇子賬號授權(可通過角色授權,也可直接對某子賬號授權),如圖(3)圖(4)。
a. 進入“賣家中心—子賬號管理—員工管理—組織結構”,選中你要編輯的員工子賬號或新建員工:
圖(3):直接對某子賬號授權
b. 進入“賣家中心—子賬號管理—員工管理—角色管理”,選中某個要編輯的角色:
圖(4):角色授權
子賬號授權切換規(guī)則
a. 對于已經(jīng)支持子賬號的APP,允許ISV自主切換,之后會在UP列表出現(xiàn)切換按鈕”升級子賬號授權模式”,點擊彈窗確認提示,如下圖的模式,2個月后將統(tǒng)一切換完畢;
b. 對于未支持子賬號的APP,項目上線后選擇支持子賬號時,必須都將采用改造后的子賬號sessionkey。
ISV修改內(nèi)容
已經(jīng)支持子賬號的老APP
① 程序改動:
A. 子賬號登陸過程,取消直接取父帳號的sessionkey使用的過程,重新使用TOP提供的授權方式獲取授權
碼,appkey和appsecreat不做改動;
B. 如果程序中是一次接受一次sessionkey的邏輯,可以修改成一次接受多個(以數(shù)組形式存放),避免子賬號之
間踢下線的現(xiàn)象;
② UP列表點擊切換按鈕,進TOP開發(fā)者中心→應用管理→應用列表,如“子賬號授權切換規(guī)則”圖片所示;
未支持子賬號的老APP
① 在TOP應用管理→管理授權界面,補構上“是否支持淘寶子賬號登陸”,如圖:
② 程序參考內(nèi)容如上;
新申請的APP
① 應用創(chuàng)建之后,在TOP應用管理→管理授權界面,構上“是否支持淘寶子賬號登陸”,如上;
② 程序參考內(nèi)容如上;
子賬號授權體系
l 基于OAuth2.0的登錄驗證授權方式(官方推薦使用)://open.taobao.com/doc/detail.htm?id=118 (對于使
用短授權的API建議使用該授權協(xié)議);
如何知道當前用戶是否是子賬號?通過解析返回的json格式,解析返回有sub_taobao_user_id和sub_taobao_user_nick。具體方法看文檔2.2;
l 基于TOP協(xié)議的登錄授權方式://open.taobao.com/doc/detail.htm?id=105(已支持短授權API,但不推薦使
用)
如何知道當前用戶是否是子賬號?通過解析返回的top_paramater參數(shù),具體方法參考//open.taobao.com/doc/detail.htm?spm=0.0.0.181.wmACQo&id=110
ISV改造過程建議
① 后臺定時輪詢操作
針對應用實現(xiàn)的定時訂單下載、定時商品上架、定時庫存更改等功能操作,可以保持使用緩存在本地的主賬號sessionkey,
因為一旦子賬號關閉或過期,該子賬號的sessionkey都會失效,導致應用定時功能無法正常進行;
② 日常操作
對于日常的操作功能,如價格修改,屬性修改等,官方強烈建議根據(jù)當前會話者的sessionkey來作為調(diào)用根據(jù),特別是調(diào)用到高危api(刪、改操作的操作;官方以后會將高危的API寫的操作做成繼承子sessionkey的控制,相關的操作記錄會記錄到對應的子賬號,做到最準確的安全監(jiān)控(這部分官方日志信息以后會統(tǒng)一開放);
③ 單app單sessionkey
對于商家后臺等自用型應用,isv一般程序設置是寫死appkey,接受一個sessionkey(父帳號sk),子賬號授權碼改造后(不同子賬號不同sessionkey),支持多個子賬號的帳號系統(tǒng)應用需要設置接受多個sessionkey,避免多個賬號登陸出現(xiàn)排擠下線現(xiàn)象;
④ 及時判斷sessionkey是否有效
- 對于本地保存sessionkey形式的,建議用戶每次登陸后將當前返回的新sessionkey與本地保存對應用戶老的sessionkey做對比,如果不一致,要用新sessionkey覆蓋老sessionkey,保持sessionkey的有效性;因為淘寶子賬號在欠費、停用、主賬號取消過某個應用的授權、W2過時未重新登陸、R過時未刷新的情況下,對應子賬號的老sessionkey就會失效,之后重新使用,會重新頒發(fā)新sessionkey;
- 不保存在本地,每次用戶登錄獲取當前sessionkey使用;(推薦使用)目前TOP的授權系統(tǒng),在sessionkey沒有失效前,每次登陸會直接進入系統(tǒng)并返回同一個sessionkey,若失效或sessionkey時長過期,之后登陸會重新跳轉到授權頁面并返回新頒發(fā)的sessionkey,所以采取使用當前登陸返回的sessionkey永遠是最新的;(對于使用父帳號后臺定時輪訓操作的功能,還是建議保持父帳號的sessionkey保存在本地)
子賬號API
調(diào)用詳情參考://open.taobao.com/doc/api_cat_detail.htm?cat_id=10123&category_id=102;
FAQ
- 關于此文檔暫時還沒有FAQ