Leo Yeh's Blog

SAS Viya (95)

教學目標

初步了解 SAS Event Stream Processing 使用者身份驗證的基本概念。

重點概念

首先 SAS Event Stream Processing Studio 和 SAS Event Stream Manager 除了能夠透過 sasboot 登入操作之外,更能夠整合 LDAP 提供使用者登入和管理存取權限,在 SAS Event Stream Processing 中需要使用者和密碼才能夠綁定至 LDAP 伺服器,並且針對 LDAP 伺服器身份驗證的客戶端支援匿名綁定,若要設定 LDAP 以啟用針對 SAS Event Stream Processing Studio 和 SAS Event Stream Manager 的存取,則請在執行安裝自動化腳本之前請先建立在「/sas_viya_playbook/roles/consul/files/」目錄中的「sitedefault.yml」設定檔。

接著在 SAS Event Stream Processing 中沒有提供 SAS Environment Manager 環境管理,因此我們無法透過 SAS Environment Manager 環境管理進行 LDAP 相關設定,此時就會需要透過「sas-bootstrap-config」工具進行 LDAP 相關設定,請注意除了設定「config/identities」中 LDAP 相關參數之外,還必須設定「config/application」和「config/SASLogon」中 LDAP 相關參數,當我們設定完成之後,需要重新啟動所有 SAS Event Stream Processing 服務,當重啟完成之後,我們就能夠透過 LDAP 帳號登入 SAS Event Stream Processing Studio 和 SAS Event Stream Manager 。

使用「sas-bootstrap-config」工具的前置作業

1
$ source /opt/sas/viya/config/consul.conf

使用「sas-bootstrap-config」工具查看相關設定

1
$ /opt/sas/viya/home/bin/sas-bootstrap-config --token-file /opt/sas/viya/config/etc/SASSecurityCertificateFramework/tokens/consul/default/client.token kv read --recurse 'config/identities'

使用「sas-bootstrap-config」工具設定相關設定

1
$ /opt/sas/viya/home/bin/sas-bootstrap-config --token-file /opt/sas/viya/config/etc/SASSecurityCertificateFramework/tokens/consul/default/client.token kv write --force 'config/identities/sas.identities.providers.ldap.connection/host' 'ldap.xxx.com'

再來 LDAP 的身份驗證機制只需要簡單的使用者 ID 和密碼就能夠產生憑據,並且透過有效憑據就能夠在事件傳送時透過 SAS Logon 服務進行身份驗證,一開始使用者主要需要向發佈/訂閱 API,適配器或 HTTP 客戶端提供憑據,當憑據未經修改地傳送到事件流處理伺服器,伺服器主要會將 REST 請求中未修改的憑據傳送給已設定的 SAS Logon 服務,此時伺服器將驗證請求的結果返回給客戶端,當驗證成功之後才會進行事件的處理。此外 SAS Event Stream Processing 要求使用者至少在發布/訂閱的 URL 中提供使用者名稱,或者可以直接在發布/訂閱的 URL 中提供密碼,否則 SAS Event Stream Processing 客戶端 API 將在客戶端的本地檔案系統中搜尋 .authinfo 或 .netrc 檔案,以利獲取與提供與使用者名稱匹配的密碼,無論哪種方式密碼皆能夠是以明文或 SAS 編碼儲存,建議直接將「hostname xxx」設定為「default」,避免發生找不到對應「.authinfo」或「.netrc」檔案中密碼的錯誤資訊。

最後雖然 LDAP 的身份驗證機制是最簡單的設定方式,但是由於多個服務會自動與 SAS Event Stream Processing 關聯在一起,因此 SAS Logon 服務必須維持可用的狀態, SAS Event Stream Processing Edge 是例外,以及這驗證方式安全性較低,因為使用者 ID 和密碼直接暴露在外,所以強烈建議使用加密,以避免使用者憑據以明文形式進行傳送。

相關資源

⬅️ Go back