Leo Yeh's Blog

SAS Viya (9)

教學目標

初步了解在 SAS Viya 中的驗證選項與介面的概念。

重點概念

首先我們在了解 SAS Viya 3.2 中驗證選項之前,最好先了解 SAS Viya 3.2 主要有三種部署類型,分別為:

  1. 完整部署 (Full Deployment)
  2. 僅程式操作部署 (Programming Only Deployment)
  3. 僅視窗操作部署 (Visual Only Deployment)

其中所謂完整部署主要是指包括 SAS 雲端分析服務、微服務、狀態服務和 SAS 基礎元件的完整部署。所謂僅程式操作部署主要是指不包括微服務元件的部署,此部署方式若要使用 SAS 雲端分析服務,則僅能透過 SAS Studio 和 SAS 程式碼進行 SAS 雲端分析。所謂僅視窗操作部署主要是指不包括 SAS Studio 元件的部署,此部署方式若要使用 SAS 雲端分析服務,則僅能透過 SAS Visual Analytics 等網站應用程式進行 SAS 雲端分析。

接著根據不同的部署類型,我們主要有兩種介面讓使用者存取 SAS Viya 3.2 服務,分別為程式介面驗證和視窗介面驗證,主要差別在於程式介面驗證主要是以 SAS Studio 為主,視窗介面驗證主要是以 SAS Visual Analytics 等網站應用程式為主,此外 SAS Cloud Analytics Services 還有提供 Python 介面、Java 介面和 Lua 介面進行存取驗證。

再來在 SAS Viya 3.2 中的視窗介面驗證主要是整合狀態服務和無狀態服務,也就是微服務。使用者主要會透過 SAS Logon Manager 的視窗介面進行登入,其主要是透過 HTTP 代理的方式進行存取,請注意識別的微服務必須連接 LDAP 提供者以利提供使用者和群組資訊,所謂 LDAP 提供者可以是 Microsoft Active Directory 、Open LDAP、… 等。此外我們主要有是四種驗證選項讓使用者存取 SAS Logon Manager,分別為:

  1. LDAP Provider
  2. Kerberos
  3. OAuth
  4. SAML

透過上述四種驗證選項 SAS 雲端分析服務環境將會由 SAS Logon Manger 產生內部 OAuth Token 進行執行操作,在大部份的案例中實際工作階段主要是由 CAS Server Controller 透過 cas 服務帳號啟動 CAS Session Controller 也就是啟動 SAS 雲端分析服務。

最後程式介面驗證重點在於 SAS Studio 、 SAS Object Spawner 和 SAS Workspace Server 如何存取 SAS 雲端分析服務,在 SAS Viya 3.2 中我們可以針寸 CAS 和 SAS Studio 設定主機使用可插拔驗證模組 ,同時使用 PAM 的指令存取 CAS 建立驗證資訊之檔案。此外在 SAS Viya 3.2 中的 SAS Studio 在完整部署中主要是整合 HTTP 代理,所以 SAS Viya 3.2 使用者無法直接連線 SAS Studio 網站應用程式,並且在 SAS Studio 輸入的使用者帳號和密碼不會傳送給 SAS Logon Manager 進行驗證,而是 SAS Object Spawner 使用主機中的 PAM 設定驗證使用者名稱和密碼,此時是否需要本機帳號取決於 PAM 設定和 LDAP 提供者中的帳號,請注意 SAS Object Spawner 會透過 sas 服務帳號啟動 SAS Workspace Server。此時 SAS Worksapce 除了透過使用者帳號和密碼與 LDAP 提供者進行驗證之外,還會透過使用者帳號和密碼與 SAS 雲端分析服務進驗證,同時 CAS Controller 也會透過 PAM 的設定驗證使用者憑證和啟動工作階段處理程序。

總結在 SAS Viya 3.2 中提供非常完整的身份驗證解決方案,每家企業會有專屬的身份驗證方式,此時如何在導入 SAS 解決方案時有效整合現行身份驗證的方式,將會是 SAS Viya 3.2 相較於 SAS 9 更能夠為企業組織帶來使用者單一登入與帳號密碼統一管理的效益。此外目前許多企業是採用 Windows Active Directory 進行身份驗證,此時我們僅需要在 SAS Environment Manager 中針對 Identify Service 設定下述資訊,就能夠載入Windows Active Directory 中的使用者帳號和群組資訊進行控管,當成 LDAP 提供者,但請注意某些服務必須搭配主機帳號對應才能夠正常存取使用。

1
2
3
4
5
6
7
8
9
10
11
config:
application:
sas.identities.providers.ldap.connection:
host: '<LDAP HOSTNAME>'
port: 389
userDN: '<Service Account DN>'
password: '<Service Account Password>'
sas.identities.providers.ldap.group:
baseDN: '<OU to start user search from>'
sas.identities.providers.ldap.user:
baseDN: '<OU to start group search from>'

相關資源

⬅️ Go back