視訊:Liberty 上的 OpenID Connect

以下是「Liberty 上的 OpenID Connect」視訊的文字稿,示範如何在 Liberty 上配置 OpenID Connect。此文字稿是視訊的分鏡腳本。「音訊」說明旁白和標題。「螢幕動作」說明視訊中顯示的內容。

視訊 Liberty 上的 OpenID Connect

表 1. 標題頁面. 顯示標題,然後顯示 OpenID Connect 基本實務,以及支援的 OpenID 提供者與使用 OpenID Connect 的優點。
場景 音訊 螢幕動作
1 此視訊將顯示如何使用 WebSphere® Application Server Liberty,來設定簡易的 OpenID Connect Web 單一登入實務。 顯示「快速設定 OpenID Connect」標題。
2 在這裡您可以看到 "OpenID Connect" 基本流程。當使用者第一次嘗試存取受 OpenID Connect 保護的 Web 應用程式或依賴方時,會將使用者重新導向至 OpenID Connect 提供者。OpenID Connect 提供者會鑑別使用者,並取得使用者的授權,然後以授權碼做出回應。接著,應用程式儲存器會擷取回應中的代碼,將代碼傳回給 OpenID 提供者進行驗證,並接收 ID 和存取記號。如此一來,使用者將接受鑑別以存取受保護的 Web 應用程式。應用程式可以利用存取記號,向 OpenID Connect 提供者索取使用者資訊(例如:電子郵件位址),或者可以存取支援 OpenID Connect 的任何服務。在本視訊中,我將應用程式稱為「依賴方」或 RP,將「OpenID 提供者」稱為 OP。

讓我們看看數個支援的 OpenID 提供者。

顯示 OpenID Connect 基本實務,內含依賴方 (RP)、OpenID Provider 提供者 (OP),以及一位一般使用者。
3 您可以將 IBM® WebSphere Liberty 配置成 OpenID 提供者或依賴方。您也可以使用 IBM Security Access Manager(亦稱為 ISAM)作為 OP。或者,您可以使用一些支援的協力廠商 OpenID 提供者。 顯示幾個支援的 OpenID 提供者。
  • IBM WebSphere
  • IBM Security Access Manager
  • Amazon
  • Microsoft
  • Okta
  • Google
4 OpenID Connect 形同 OAuth 2.0 頂端的身分識別層,提供若干優點。藉由 OpenID Connect,使用者具備單一網際網路身分,可使用該身分接受若干伺服器、服務和應用程式之間的鑑別,如此可減輕應用程式中的維護工作量,因為它們再也不需要自己的使用者登錄。

對於開發人員,這可簡化鑑別使用者作業,且不需負責儲存和管理密碼。OpenID Connect 也能將安全服務延伸到以任何語言(例如 JavaScript、Ruby、node.js 或 Java™)撰寫的雲端型應用程式與行動式應用程式,且它能夠以單一安全管理程式形式運作,來供應雲端環境中的數百部 Liberty 伺服器。由於 OpenID Connect 結合了身分、鑑別和 OAuth 等諸多優點,OpenID Connect 的改良明顯超過 OAuth 本身。

顯示使用 OpenID Connect 的數項優點。
  • OpenID Connect 讓使用者易於使用單一網際網路身分(使用者帳戶),來接受若干伺服器、服務和應用程式的鑑別。
  • 應用程式不再需要維護本身的使用者登錄。
  • OpenID Connect 將安全服務延伸至雲端應用程式和行動式應用程式,可透過 JavaScript、Ruby、node.js、Java 等之類的語言來存取
  • 能夠以單一安全管理程式身分,來供應雲端中的數百部 Liberty 伺服器
  • OpenID Connect 的改良明顯超過 OAuth 2.0
表 2. 示範如何配置 OpenID 提供者
場景 音訊 螢幕動作
5 WebSphere Application Server Liberty 可以配置成 OpenID 提供者及/或依賴方。如果您希望 Liberty 同時作為 OP 和 RP,必須在不同的 Liberty 伺服器實例中配置它們。我們會將 Liberty 伺服器設定成 OP 和 RP,並看看 Liberty OP 和 RP 之間的簡易 Web 單一登入實務。 顯示將 Liberty 設定成 OpenID Connect 提供者和依賴方標題。
6 首先,我們設定 OpenID 提供者。

為此,我們將安裝 WebSphere Liberty 8554 或更新版本,這是使用 OpenID Connect 特性所需要的。安裝「OpenID 伺服器」特性

建立 Liberty 伺服器,並新增 OP 配置至 server.xml 檔,這個檔案以可下載範例形式提供於 IBM developerWorks® 中。

顯示 OP 設定概觀。
  1. 安裝 WebSphere Liberty 8.5.5.4 或更新版本 > java -jar wlp-developers-runtime-8.5.5.4.jar
  2. 安裝「OpenID 伺服器」特性(不需下載)> bin/featureManager install openidConnectServer-1.0 --when-file-exists=ignore
  3. 建立 Liberty 伺服器 > server create oidcServer
  • 使用其他配置來編輯 server.xml(可下載的範例)
  • 必要特性
  • SSL 金鑰儲存庫
  • 使用者登錄
  • OpenID 伺服器
7 首先,解壓縮 Liberty JAR 檔。這會建立 wlp 目錄。移至 wlp 之下的 bin 目錄,並執行 featureManager install 指令,以安裝「OpenID Connect 伺服器」特性。

在相同目錄中,執行 server create 指令,以建立 Liberty OP 伺服器。我們將它命名為 oidcServer

oidcServer 現在已建立在 server.xml 檔中,內含最起碼的配置。您可以在 wlp/usr/server/oidcServer 目錄中找到配置。

在這裡,您可以看見我們剛才所建立的 server.xml 檔內容。配置相當簡易,只有一項特性和埠資訊。我們將以含有 OP 伺服器配置的 server.xml 檔取代它。(畫面分割,右側出現 OP 配置)。

(說明 server.xml 檔中的更新項目)在這項 OP 伺服器配置中,
  • 已新增必要特性。
  • 新增主機名稱。
  • 已包含 SSL 特性的金鑰儲存庫配置。
  • 由 OP 維護使用者帳戶,因此配置了使用者登錄。

其餘是使用 OAuth 技術的 OP 配置。它含有代其執行授權之依賴方的相關資訊。

您可以從 IBM DeveloperWorks 下載我們剛才新增的 server.xml 檔。我們將啟動 OP 伺服器。現在我們已設定了 OpenID 提供者,可以設定 Liberty 依賴方。

示範如何使用命令提示字元來更新 server.xml 檔。
表 3. 示範如何配置依賴方
場景 音訊 螢幕動作
8 為了設定依賴方,如同 OP 配置一般,我們需要 Liberty 8.5.5.4 版或更新版本,並且將安裝「OpenID 用戶端」特性。

我們將建立另一部 Liberty 伺服器,並編輯 server.xml 檔。

然後我們將安裝應用程式,並與 OpenID 提供者交換金鑰,以進行 SSL 通訊。

顯示 RP 設定概觀。
  1. 安裝 WebSphere Liberty 8.5.5.4 > java -jar wlp-developers-runtime-8.5.5.4.jar
  2. 安裝「OpenID 用戶端」特性(不需下載)> bin/featureManager install openidConnectClient-1.0 --when-file-exists=ignore
  3. 建立 Liberty 伺服器 > server create oidcRP
    • 使用其他配置來編輯 server.xml(可下載的範例)
    • 必要特性
    • SSL 金鑰儲存庫
    • OpenID 用戶端
    • 應用程式
  1. 安裝應用程式(使用 OpenID Connect)>> 將應用程式 ear/war 檔複製到 app 目錄之下
    • 與 OP 交換金鑰,以進行 SSL 通訊
9 已在這部機器上配置 Liberty 8.5.5.4 版。我們將安裝「OpenID 用戶端」特性,並建立一部名稱是 oidcRP 的伺服器。這裡是預設 server.xml 檔。現在,我們將與含有 RP 配置的 server.xml 檔相互比較。這些區段(特性、端點主機名稱、金鑰儲存庫) 就是我們先前處理 OP 時所看到的相同更新項目。

此時,我們所用的是「OpenID 用戶端」配置,而非 OP 伺服器配置。它指定鑑別要求要送往的 OP URL。

RP 配置也會包含應用程式配置,且這些應用程式需要靠 OP 執行鑑別。

請注意,RP 中沒有使用者登錄配置。RP 所需的配置就只有這些。我們將應用程式複製到 RP 的 app 目錄。啟動 RP 伺服器之前,請確定 RP 和 OP 會交換金鑰儲存庫中的金鑰,以進行 SSL 通訊。在這項示範中,我們將使用相同的金鑰儲存庫和相同的密碼。

現在,我們將啟動 RP 伺服器,看看是否設定正確。

示範如何使用命令提示字元來更新 server.xml 檔。
表 4. 示範如何測試 OP/RP 設定
場景 音訊 螢幕動作
10 OP 和 RP 伺服器已啟動。在瀏覽器中,移至應用程式 URL。當出現提示時,我們將從 OP 輸入帳戶資訊。我們會看到 RP 需要靠 OP 執行鑑別。在鑑別使用者之後,RP 會在使用者面前顯示應用程式頁面。現在就讓我們測試看看。 示範如何測試 OP/RP 設定。
  1. 同時啟動 OP 和 RP 伺服器 > server start oidcServer > server start oidcRP
  2. 在瀏覽器中,指向 RP 上的應用程式登入頁面 > https://oidc-rp.rtp.raleigh.ibm.com:9443/testpage
  3. 當出現提示時,輸入 OP 所維護的使用者 ID 與密碼 > user1 / security
  4. RP 需要靠 OP 進行鑑別
  5. 一旦鑑別成功,RP 會提供應用程式頁面,內含使用者資訊。
11 在瀏覽器中,我們將輸入位於 RP 伺服器上的應用程式 URL。會提示您提供使用者名稱與密碼。請注意,OP 伺服器會提示我們輸入,這是因為 RP 將鑑別委派給 OP。

我們將輸入 user1security,這是 OP 帳戶的認證。現在,我們使用 OP 帳戶順利登入 RP 上的應用程式。

示範瀏覽器登入,其中顯示使用 OP 帳戶順利登入 RP 上的應用程式。
表 5. 結論. 顯示可以在哪裡找到 OpenID Connect 的相關資訊。
場景 音訊 螢幕動作
12 如需相關資訊,請造訪這些線上資源。 顯示說明文件資訊:
WebSphere Liberty 下載頁面
https://developer.ibm.com/wasdev/downloads/liberty-profile-using-non-eclipse-environments/
OpenID Connect 特性安裝
伺服器:https://developer.ibm.com/wasdev/downloads/#asset/features-com.ibm.websphere.appserver.openidConnectServer-1.0
用戶端:https://developer.ibm.com/wasdev/downloads/#asset/features-com.ibm.websphere.appserver.openidConnectClient-1.0
「IBM Knowledge Center - OpenID Connect」主頁面
http://www-01.ibm.com/support/knowledgecenter/api/content/nl/en-us/SSAW57_8.5.5/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/rwlp_using_oidc.html
IBM DeveloperWorks(包含 OP/RP 範例)
http://www.ibm.com/developerworks/websphere/library/techarticles/1502_odonnell/1502_odonnell.html

如需 OpenID Connect 的相關資訊,請參閱使用 OpenID Connect


指示主題類型的圖示 概念主題

檔名:video_transcript_oidc_liberty.html