Leo Yeh's Blog

SAS Viya (19)

教學目標

初步了解 SAS Viya 平台中如何整合 LDAP 部署身份識別的服務。

重點概念

首先在 SAS Viya 平台部署中,身份識別主要是由環境設定的身份識別提供者所管理,其中身份識別提供者必須是 LDAP 伺服器,當我們部署 SAS Viya 平台之後,初始設定就需要設定從 LDAP 伺服器取得使用者和群組的身份識別資訊。此時對於 LDAP 基本了解將有助於 SAS Viya 平台管理員可以使用與 LDAP 管理員相同語言進行溝通。

接著什麼是 LDAP,LDAP 主要是存取目錄伺服器的的輕量級協定,目錄伺服器主要是一個分層物件導向的資料庫,LDAP 伺服器主要可以用於組織任何事情,最常見的用途就是作為一個身份管理系統,以利組織使用者和群組成員。其中 LDAP 目錄主要是以樹狀方式進行組織,目錄為目錄實體的樹,實體包括一組屬性,屬性有名稱和一個或多個值,像是 uid 為使用者名稱、cn 為通用名稱、displayName 為顯示名稱、objectclass 為物件類型…等。此外我們會使用 DNS 名稱表示樹的組織結構,像是 OU=org1, DC=sas, DC=com,所謂 DC 為網域元件,OU 為組織單位,主要為實體的分組或集合,同時組織單位可以包含其它組織單位。但是我們要如何在目錄的樹中找到我們需要的物件呢?此時在目錄中每個實體皆有一個唯一的識別碼,稱為專有名稱 (Distinguished Name,DN),同時也就是目錄樹中物件的完整路徑,像是使用者 Leo 的專有名稱為「uid=Leo, OU=org1, DC=sas, DC=com」或在 AD 網域中為「CN=Leo, OU=org1, DC=sas, DC=com」。此外我們也能夠查詢和過濾 LDAP 伺服器所提供的資訊,像是 (&(objectclass = inetorgperson)(o = org1)) 則是返回所有 inetorgperson 類型的物件,並且組織屬於 org1 的人員。

再來為什麼我們需要知道 LDAP 的概念?因為我們必須更新 SAS Viya 平台中的身份識別設定才能夠開始使用 SAS Viya 平台,作為一個管理員,最常見的設定項目主要有兩項,分別為:

  1. baseDN:主要讓 LDAP 伺服器從此實體開始搜尋樹中的實體。
  2. objectFilter:主要讓 LDAP 伺服器識別和限制返回的使用者和群組。

請注意在 SAS Viya 平台中我們主要會設定三個項目,分別為:

  1. sas.identities.providers.ldap.connection :主要設定 LDAP 伺服器的連線資訊,重要屬性欄位為 host、port、userDN、password、…等。
  2. sas.identities.providers.ldap.group:主要設定 LDAP 伺服器讀取群組的資訊,重要屬性欄位為 baseDN 等,至於 objectFilter 屬性欄位則會根據組織需求進行調整。
  3. sas.identities.providers.ldap.user:主要設定 LDAP 伺服器讀取使用者的資訊,重要屬性欄位為 baseDN 等,至於 objectFilter 屬性欄位則會根據組織需求進行調整。

最後若是我們要設定 Active Directory 為 LDAP 提供者,則僅需要設定下述屬性欄位即可。此外除了設定 389 連接埠搜尋網域中的物件之外,我們還能夠設定 3268 連接埠,以利以全域目錄的方式支援搜尋網域森林中的 Active Directory 物件,無論物件儲存在什麼位置,皆會以最快的速度和最低的網路流量在森林中進行搜尋。

1
2
3
4
5
6
7
8
9
10
11
config:
application:
sas.identities.providers.ldap.connection:
host: '<Active Directory 主機名稱>'
port: 389
userDN: '<服務帳號專有名稱>'
password: '<服務帳號密碼>'
sas.identities.providers.ldap.group:
baseDN: '<開始搜尋群組的組織專有名稱>'
sas.identities.providers.ldap.user:
baseDN: '<開始搜尋使用者的組織專有名稱>'

總結目前 SAS Viya 平台透過 LDAP 提供者進行身份識別的整合應用,但是在企業大多是以 Active Directory 伺服器為主,此時我們可以透過簡單的設定將「特定單一組織」中的所有使用者和群組載入 SAS Viya 平台中進行身份識別的應用。

相關概念

⬅️ Go back