1. 程式人生 > >Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On

Salesforce Admin篇(四) Security 之Two-Factor Authentication & Single Sign On

本篇參考:

https://c1.sfdcstatic.com/content/dam/web/en_us/www/documents/white-papers/2fa-admin-rollout-guide.pdf

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通常會經歷以下的步驟:

  1. 使用者嘗試訪問salesforce;
  2. Salesforce識別了這個SSO的請求並且生成了一個SAML請求;
  3. Salesforce重定向這個SAML請求到瀏覽器端;
  4. 瀏覽器重定向這個SAML請求到外部的identity provider;
  5. Identity provider驗證了這個使用者的身份並且將關於這個使用者身份認證的SAML斷言進行打包;
  6. Identity provider將SAML斷言結果傳送給salesforce;
  7. Salesforce驗證斷言是否正確;
  8. 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配