本篇參考:
https://blog.bessereau.eu/assets/pdfs/salesforce_single_sign_on.pdf
https://blog.bessereau.eu/assets/pdfs/salesforce_security_impl_guide.pdf
作為salesforce管理員,在針對確保用戶安全以及用戶快速登陸往往要多加考慮以及划清界限。本篇主要介紹兩點:
1. 保障用戶安全的不止賬號和密碼,還可以通過其他的方式去增強安全性,比如 two-factor authentication,縮寫為2FA.
2. 單點登錄保證用戶可以快速登陸以及減少用戶需要記住多個系統的賬號密碼。
一. Two-Factor Authentication(2FA)
我們在支付寶沒有普及以前,如果網上購物,需要用到網銀進行支付,即提供了銀行卡賬號密碼以后,還要有一個一次性的數字串去完成交付。保證別人了解你賬號密碼的情況下依然沒法直接盜取或者盜刷你的錢財。 2FA 有着類似的功能,即當你輸入賬號密碼以后,還需要一個認證的標識去決定你最終是否可以最終登陸。這個標識掌握在你的手機中,當有登陸操作,你可以隨時清楚是否是你的登陸,如果不是,拒絕掉,增加了安全性。
使用2FA 按照以下步驟走即可:
1. 設置 sesion security level
Setup 中搜索 Session Settings,在Session Security Levels的下面,將two-factor authentication放在右側區域。
2. 創建 permission set配置2FA
輸入label創建 permission set保存以后,在system 設置中,勾選‘Two-Factor Authentication for User Interface Logins’選項
3. 選擇需要配置2FA的用戶進行assign操作。
4. 下載salesforce authenticator app. 蘋果手機去app store , android 手機去google play, 因為本人手機沒有google play環境,所以可能部分功能無法使用。
點擊添加賬號,會有兩個單詞,在permission set中配置的賬號登陸salesforce以后會跳轉到中間頁,輸入內容以后便和salesforce authenticator進行了綁定,以后登陸以后都會在手機中進行授權操作。
綁定操作以后,如何進行解綁操作? 我們第一想法是將此user從permission set中移除。但是此賬號已經和salesforce authenticator綁定,單純的移除permission set無濟於事。正確的操作為需要進入這個user,詳情頁中有一項App Registration: Salesforce Authenticator,點擊 disconnect即可。
二. Single Sign On
Single Sign On 對於我們來說並不陌生,我們在的公司可能有多個系統,不同系統之間需要記住不同的賬號增加了員工的麻煩量,忘記密碼也會增加管理員的工作。對於多個系統情況下,使用單點登錄有太多的優勢。
使用Single Sign On通常會經歷以下的步驟:
- 用戶嘗試訪問salesforce;
- Salesforce識別了這個SSO的請求並且生成了一個SAML請求;
- Salesforce重定向這個SAML請求到瀏覽器端;
- 瀏覽器重定向這個SAML請求到外部的identity provider;
- Identity provider驗證了這個用戶的身份並且將關於這個用戶身份認證的SAML斷言進行打包;
- Identity provider將SAML斷言結果發送給salesforce;
- Salesforce驗證斷言是否正確;
- user可以正常的登陸以及訪問Salesforce。
這里涉及到了幾個名詞。
SSO是Single Sign On的縮寫,意為單點登錄。
SAML是Salesforce單點登錄時使用的協議,全稱為Security Assertion Markup Language。這里再引申兩個概念。Service Provider以及Identity Provider。Identity Provider用於對用戶進行身份認證的,而 Service Provider用來請求用戶身份認證是否通過的。SAML工作的原理為當一個用戶要訪問salesforce,Service Provider會向Identity Provider發出請求來驗證當前用戶是否通過的,Identity Provider再進行查詢數據庫等操作以后返回一個斷言的response來決定是否有權限訪問。這里對SAML有一個大概的描述方便了解,感興趣的可以自行查看文檔。
我們繼續看下面的圖片,通過單點登陸授權以后我們可以通過Connected App訪問外部的Service,包括谷歌,salesforce等。這里詳細介紹兩個概念,Identity Provider以及Servide Provider。針對Google / Salesforce 等服務,我們可以理解成Service Provider, 中間的Salesforce可以理解成 Identity Provider。當我們得到了Identity Provider的授權以后,我們便可以直接訪問Service Provider配置的對應的External Service,無需再進行External Service的登陸操作。
下面通過一個demo講述以下Salesforce 2 Salesforce Single Sign-On的實例。
1. Enable My Domain:針對Salesforce的兩個org都要啟用自定義的domain,啟用方法可以查看https://help.salesforce.com/articleView?id=domain_name_overview.htm&type=5。
此篇中本人的兩個org的地址分別為:
https://zero-zhang-dev-ed.lightning.force.com
https://zhangyueqi-3-dev-ed.lightning.force.com
我們使用上面的作為 Identity Provider,下面的作為Service Provider。
2. 獲取 Identity Provider的信息。我們在Identity Provider環境搜索identity provider可以看到以下的內容,包括Issuer,Salesforce Identity等信息。如果當前沒有啟用我們點擊Enable即可。這里我們download下來Certificate 以及 metadata。
3. 配置Service Provide Single Sign-On的信息:在 SetUp出搜索 single sign on 點擊后點擊New From Metadata,文件選擇我們在Identity Provider環境中download下來的metadata。
4. 其他的配置項均保留,針對 Identity Provider Certificate選擇上面Identity Providerdownload下來的certificate,SAML Identity Type選擇 Federation項后保存。
5. 在Servide Provider中,Setup搜索 my domain 將配置的Authentication Service放出來。
6. 在 Identity Provider環境配置Connected App. Lightning 環境下SetUp中搜索 App Manager后點擊New Connected App按鈕。Connected App Name 我們這里命名為Single Sign On Connected App,名字可以任意起, 勾選Enable SAML以后,配置 Entity Id項以及ACS URL。Entity Id 對應 Service Provider中的Single Sign-On配置的Entity Id;ACS URL取得是 Service Provider中的EndPoint區域的Login URL。Subject Type選擇 Federation Id后保存。
7. 保存后的Identity Provider的 Connected App點擊Manage后選擇 Manage Profiles 或者 Manage Permission Sets來設置哪些人可以進行單點登錄設置。
至此我們便已經配置完 Salesforce 2 Salesforce Single Sign-On 功能。下面進行測試。
1. 我們在Identity Provider環境的user中配置 Federation Id為00000001,此賬號 Profile為 System Administrator,在我們上面的配置的Profile中。
2. 我們在 Service Provider中配置賬號同樣Federation ID為00000001.這里需要注意的是 Federation ID在同一個系統中必須是唯一的,在不同的系統中如果需要SSO,需要配置相同的值。
3. 兩個賬號均退出后,登陸 Identity Provider環境,登陸以后。打開瀏覽器輸入 Service Provider的domain后,選擇下方的登陸方式,點擊以后便完成了單點登錄。
總結: 篇中針對 Admin的基礎知識講解了一下 Two-Factor以及 Salesforce-Salesforce Single Sign-On的配置,很多細節知識沒有涉及到,感興趣的自行查看文檔進行深入學習。篇中有錯誤的地方歡迎指出,有不懂的歡迎提問,感興趣的可以玩一下 Salesforce 2 Community的SSO配置。