摘要:阮一峰老師曾經在他的博文理解里對這個概念有了深入淺出的闡述。注這是阮一峰老師文章里提到的中的認證模式之一簡化模式客戶聽起來不錯這樣我就不需要把我們公司的用戶的密碼提供給您了。這下您放心了吧注這種方式即阮一峰文章里介紹的授權碼模式。
阮一峰老師曾經在他的博文理解OAuth 2.0里對這個概念有了深入淺出的闡述。
http://www.ruanyifeng.com/blo...
本文會結合我在SAP做過的項目,來給大家介紹這個協議是如何應用到SAP產品中去的。
我做過的最早的一個和OAuth 2.0相關的項目,是2013年時作為SAP成都研究院CRM開發團隊的一員,參與設計和開發了SAP CRM和社交媒體集成解決方案。該方案實現了Twitter, Facebook和新浪微博等社交媒體和SAP CRM On Premise(以下簡稱SAP CRM)的呼叫中心(Interaction Center)的集成。
通過在SAP CRM后臺配置一個社交媒體賬號,比如某Twitter賬號,使得SAP CRM的后臺作業能夠定期把Twitter網站上@了該Twitter賬號的所有tweets抓取到CRM呼叫中心的收件箱里供坐席處理。
例如客戶在Twitter官網上發一條@AndrewPang6的tweet, 文本內容如下:
在SAP CRM完成必需的配置之后,該tweet能夠被SAP CRM的后臺作業抓取到CRM呼叫中心。坐席通過在Inbox(收件箱)里指定相應的搜索條件,如下圖所示,即可檢索出對應存儲在CRM的tweet。
*
作為SAP的另一款基于云的CRM解決方案,SAP Hybris Cloud for Customer(以下簡稱C4C), 毫無疑問也包含了社交媒體的解決方案。
我們還是用上文介紹的SAP CRM呼叫中心的社交媒體使用場景為例。
在C4C系統里創建一個新的類型為Twitter的Social Medial Channel(社交媒體渠道)。該渠道的類型為Twitter,渠道ID可以由創建者指定:
然后把創建的渠道同某個Twitter賬號綁定。在這個例子里,我創建的ID為I042416的渠道綁定到了我的Twitter賬號JerryWang_SAP上。完成之后,該Twitter賬號發布的tweets就能夠被抓取到C4C系統中。
下圖左邊是我創建好的ID為I042416的社交媒體渠道,紅色區域是我的Twitter賬號。右邊的IMPORT RUN包含了一個表格,顯示了三次后臺作業的執行情況。這些后臺作業完成的邏輯就是把JerryWang_SAP這個賬號在Twitter網站上發布的tweets抓取到C4C去。
以這三條tweets為例:
這三條tweets都成功地被抓取到C4C系統的Service(服務)工作中心,生成對應的Ticket:
點擊超鏈接,能看到Ticket明細。下圖紅色區域的內容來自我在Twitter網站上發布的其中一條tweet。
*
等等,到目前為止好像OAuth2.0在這兩個產品里沒有露面?下面以SAP CRM為例,通過模擬Andrew和一個SAP CRM客戶的對話來介紹OAuth2.0到底是怎么在社交媒體集成方案中發揮作用的。
客戶:SAP您好, 我有一個Twitter賬號,我想把Twitter網站上@了這個賬號的相關tweets同步到SAP CRM的呼叫中心里。
Andrew: 好的。請提供您的Twitter賬號和密碼。
客戶:賬號我可以提供,為什么還要提供密碼?
Andrew:有了您的Twitter賬號和密碼,SAP可以使用在RFC 7617里定義的Basic Authentication方式,調用Twitter提供的Read API拿到您希望同步到CRM去的tweets數據。您可以參考下面的wiki定義:
https://en.wikipedia.org/wiki...
客戶:?等等,您提供的這些信息太過技術化了。這樣吧,我讓我們IT人員來和您溝通。
客戶IT:這個密碼是我們的私人信息啊,能不能不提供給你們啊?
Andrew:?這個密碼我們可以通過ABAP Security Storage這個技術來存儲在ABAP Netweaver上。這樣,無論SAP的支持人員,還是您企業里的工作人員都是不可能通過技術手段來竊取到這個密碼的。SAP的安全技術您就放心吧,下面是ABAP Security Storage的官方說明:
https://help.sap.com/saphelp_...
客戶IT認真閱讀幫助文檔中...
客戶IT:除了這個把密碼提供給你們的方式,你們有其他的方式來調用Twitter的API么?
Andrew:早期的Twitter API只支持Basic Authentication, 但是后來Twitter也支持了其他的認證方式。
Twitter允許第三方開發者在官網上創建第三方應用,比如我創建了下圖名為i042416的Twitter應用:
Twitter官網會給這個應用頒發一對Key和Secret作為其唯一標識。
通過這對key和Secret, 我可以構造一個oauth_token,這個oauth_token能向Twitter表明我作為i042416這個應用的身份。我把構造好的oauth_token,作為url的一部分發給您。
完整的url如下圖所示。
這個url是屬于Twitter官網的,因此您可以放心使用。該url對應的網頁會詢問您是否愿意讓該Twitter第三方應用取得讀取您tweets的權限。如果您愿意,點擊Authorize app按鈕即可。同時Twitter官網也強調了這個應用并不具有窺探您密碼,郵箱地址或者訪問您私信的權限。
您點擊了button之后,Twitter就會返回給我一個access token。利用這個access token,我就可以開工了,在CRM ABAP代碼里調用Twitter API,讀取您的tweets。
Jerry注: 這是阮一峰老師文章里提到的OAuth2.0中的認證模式之一: 簡化模式(implicit grant type)
客戶IT:?聽起來不錯!這樣我就不需要把我們公司的Twitter用戶的密碼提供給您了。
但是,這個access token是通過明文的形式被瀏覽器返回的。如果這個access token泄漏了怎么辦?別有用心者一樣可以用它來干壞事。
Andrew:?您真專業!那這樣吧,我們換一種方式。這種方式Twitter不會直接把access token通過瀏覽器返回給我,而僅僅返回一個oauth_verifier token。
我拿到這個token之后,會在我的ABAP代碼里使用這個verifier token向Twitter服務器發起請求。Twitter收到我的請求,會給我的應用返回access token。這個access token的獲取過程是發生在ABAP會話期里的,其他人不可能竊取到。我會使用這個access token來調用Twitter API。
另一方面,即使其他人竊取到了瀏覽器返回的oauth_verifier token, 他們也無法通過同樣的方式獲取到access token, 因為他們不知道我Twitter應用的Key和Secret。這下您放心了吧?
Jerry注: 這種方式即阮一峰文章里介紹的授權碼模式(authorization code)。
客戶IT:恩,放心了,感謝您詳細的講解。那么我想要在SAP CRM的呼叫中心里使用這個解決方案,具體該如何開始呢?
Andrew:請閱讀這個SAP note獲得實施的具體步驟: 1832462 - Master Note: How to Implement Social Media Channel API to Integrate with CRM Interaction Center。
擴展閱讀
理解OAuth 2.0:http://www.ruanyifeng.com/blo...
Twitter/Facebook和SAP CRM的集成:https://blogs.sap.com/2013/11...
FAQ C4C Social Media:?https://blogs.sap.com/2017/06...
Using Oauth - Twitter Developers: ?https://developer.twitter.com...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107419.html
摘要:阮一峰老師曾經在他的博文理解里對這個概念有了深入淺出的闡述。注這是阮一峰老師文章里提到的中的認證模式之一簡化模式客戶聽起來不錯這樣我就不需要把我們公司的用戶的密碼提供給您了。這下您放心了吧注這種方式即阮一峰文章里介紹的授權碼模式。 阮一峰老師曾經在他的博文理解OAuth 2.0里對這個概念有了深入淺出的闡述。 http://www.ruanyifeng.com/blo... 本文會結合...
摘要:今天的文章來自李貝寧,成都研究院的資深程序猿和架構師。是研究院內部的教練,也是成都研究院若干內部培訓課程的講師。而李貝寧,在成都研究院三支分別使用和的開發團隊里都被任命為架構師,技術的全面性不輸于史大郎。 今天的文章來自李貝寧(Ben),SAP成都研究院的資深程序猿和架構師。 作為成都研究院里同時精通Java, JavaScript和ABAP這三門編程語言的數位同事之一,Ben曾經先后...
摘要:是什么提供身份認證和授權服務。你希望你的用戶能使用微信登錄,同時你還希望能追蹤到用戶的注冊來源,活動數據,以便你做后續的用戶增長。 Authing 是什么? Authing 提供身份認證和授權服務。 我們為開發者和企業提供用以保證應用程序安全所需的認證模塊,這讓開發人員無需成為安全專家。 你可以將以任意語言和任意技術棧編寫的應用接入到 Authing,同時你還可以自定義應用程序的登錄方...
摘要:本文單純從簡單的技術實現來講,不涉及開放平臺的多維度的運營理念。它的特點就是通過客戶端的后臺服務器,與服務提供商的認證服務器進行互動能夠滿足絕大多數開放平臺認證授權的需求。 本文單純從簡單的技術實現來講,不涉及開放平臺的多維度的運營理念。 什么是開放平臺 通過開放自己平臺產品服務的各種API接口,讓其他第三方開發者在開發應用時根據需求直接調用,例如微信登錄、QQ登錄、微信支付、微博登錄...
閱讀 2084·2021-09-29 09:35
閱讀 689·2021-09-08 09:36
閱讀 3396·2021-09-03 10:30
閱讀 2113·2019-08-30 14:21
閱讀 2913·2019-08-30 11:18
閱讀 3316·2019-08-29 17:31
閱讀 3144·2019-08-29 17:29
閱讀 1311·2019-08-29 17:13