![[17.0.0.2 以及更新版本]](../ng_v17002plus.gif)
在 Liberty 中配置社群登入
您可以配置 Liberty 伺服器,讓使用者可以使用其社群媒體帳戶登入,以接受 Liberty 伺服器上所管理之網站的鑑別。請從預先定義的社群媒體平台配置中選擇,或是針對基於 OAuth 2.0 或 OpenID Connect 1.0 標準的任何社群媒體平台,定義您自己的配置。
關於這項作業
社群登入是一種單一登入 (SSO) 形式,可讓使用者使用其現有的社群媒體帳戶來登入網站,而不必特別針對該網站另建帳戶。比方說,您可以配置社群登入,使使用者可以使用其 Facebook 或 Twitter 帳戶登入您的網站。您可以針對採用 OAuth 2.0 或 OpenID Connect 1.0 標準來進行授權的任何社群媒體平台,啟用社群登入。
程序
- 針對 Facebook 配置社群登入。
- 建立 Facebook 應用程式。 如需相關資訊,請參閱 Facebook 應用程式開發。在您配置應用程式時,請提供下列格式的重新導向 URL,向應用程式登錄您的 Liberty 伺服器:
https://liberty_host:SSL_port/ibm/api/social-login/redirect/facebookLogin
建立應用程式之後,請記下應用程式 ID 和應用程式密碼,以便新增至您的 Liberty 配置。
- 開啟 Liberty 伺服器的 server.xml 配置檔,並新增
socialLogin-1.0 和 appSecurity-2.0 特性。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- 新增 facebookLogin 元素,並使用應用程式 ID 和應用程式密碼來配置它。
<facebookLogin clientId="facebook_app_id" clientSecret="facebook_app_secret" />
facebookLogin 元素指定 Facebook 連線的特定預設值。您可以配置其他的屬性 (如 Facebook 登入中所列出的),以置換預設值並指定其他的設定。
- 在 keyStore 元素上配置一個信任儲存庫,並從 Facebook 端點將憑證匯入至信任儲存庫。
例如,下列配置指向預設 Liberty 信任儲存庫檔案。
如果要將憑證匯入至 Liberty 信任儲存庫,請在您的瀏覽器中,移至 facebookLogin 元素指定的其中一個端點,並且匯出憑證。使用 iKeyman 或 Java keytool 公用程式等之類的金鑰管理工具,將憑證新增至 Liberty 信任儲存庫檔案。<keyStore id="defaultKeyStore" password="keyspass" />
提示: 在某些情況下,您可能需要匯入多份憑證。如需您需要匯入哪些憑證的相關資訊,請參閱 messages.log 檔。
- 建立 Facebook 應用程式。 如需相關資訊,請參閱 Facebook 應用程式開發。
- 針對 GitHub 配置社群登入。
- 建立 GitHub OAuth 應用程式。 如需相關資訊,請參閱 GitHub: OAuth API 中有關 Web 應用程式的資訊。在您配置應用程式時,請提供下列格式的重新導向 URL,向應用程式登錄您的 Liberty 伺服器:
https://liberty_host:SSL_port/ibm/api/social-login/redirect/githubLogin
建立應用程式之後,請記下用戶端 ID 和用戶端密碼,以便新增至您的 Liberty 配置。
- 開啟 Liberty 伺服器的 server.xml 配置檔,並新增
socialLogin-1.0 和 appSecurity-2.0 特性。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- 新增 githubLogin 元素,並使用用戶端 ID 和用戶端密碼來配置它。
<githubLogin clientId="github_client_id" clientSecret="github_client_secret" />
githubLogin 元素指定 GitHub 連線的特定預設值。您可以配置其他的屬性 (如 GitHub 登入中所列出的),以置換預設值並指定其他的設定。
- 在 keyStore 元素上配置一個信任儲存庫,並從 GitHub 端點將憑證匯入至信任儲存庫。
例如,下列配置指向預設 Liberty 信任儲存庫檔案。
如果要將憑證匯入至 Liberty 信任儲存庫,請在您的瀏覽器中,移至 githubLogin 元素指定的其中一個端點,並且匯出憑證。使用 iKeyman 或 Java keytool 公用程式等之類的金鑰管理工具,將憑證新增至 Liberty 信任儲存庫檔案。<keyStore id="defaultKeyStore" password="keyspass" />
提示: 在某些情況下,您可能需要匯入多份憑證。如需您需要匯入哪些憑證的相關資訊,請參閱 messages.log 檔。
- 建立 GitHub OAuth 應用程式。 如需相關資訊,請參閱 GitHub: OAuth API 中有關 Web 應用程式的資訊。
- 針對 Google 配置社群登入。
- 在「Google API 主控台」專案中,建立 OAuth 用戶端 ID。 如需相關資訊,請參閱建立「Google API 主控台」專案和用戶端 ID。在您配置應用程式時,請提供下列格式的重新導向 URL,向應用程式登錄您的 Liberty 伺服器:
https://liberty_host:SSL_port/ibm/api/social-login/redirect/googleLogin
建立用戶端 ID 之後,請記下用戶端 ID 和用戶端密碼,以便新增至您的 Liberty 配置。
- 開啟 Liberty 伺服器的 server.xml 配置檔,並新增
socialLogin-1.0 和 appSecurity-2.0 特性。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- 新增 googleLogin 元素,並使用用戶端 ID 和用戶端密碼來配置它。
<googleLogin clientId="google_client_id" clientSecret="google_client_secret" />
googleLogin 元素指定 Google 連線的特定預設值。您可以配置其他的屬性 (如 Google 登入中所列出的),以置換預設值並指定其他的設定。
- 在 keyStore 元素上配置一個信任儲存庫,並從 Google 端點將憑證匯入至信任儲存庫。
例如,下列配置指向預設 Liberty 信任儲存庫檔案。
如果要將憑證匯入至 Liberty 信任儲存庫,請在您的瀏覽器中,移至 googleLogin 元素指定的其中一個端點,並且匯出憑證。使用 iKeyman 或 Java keytool 公用程式等之類的金鑰管理工具,將憑證新增至 Liberty 信任儲存庫檔案。<keyStore id="defaultKeyStore" password="keyspass" />
提示: 在某些情況下,您可能需要匯入多份憑證。如需您需要匯入哪些憑證的相關資訊,請參閱 messages.log 檔。
- 在「Google API 主控台」專案中,建立 OAuth 用戶端 ID。 如需相關資訊,請參閱建立「Google API 主控台」專案和用戶端 ID。
- 針對 LinkedIn 配置社群登入。
- 建立 LinkedIn 應用程式。 如需相關資訊,請參閱 LinkedIn:使用 OAuth 2.0 進行鑑別。在您配置應用程式時,請提供下列格式的重新導向 URL,向應用程式登錄您的 Liberty 伺服器:
https://liberty_host:SSL_port/ibm/api/social-login/redirect/linkedinLogin
建立應用程式之後,請記下用戶端 ID 和用戶端密碼,以便新增至您的 Liberty 配置。
- 開啟 Liberty 伺服器的 server.xml 配置檔,並新增
socialLogin-1.0 和 appSecurity-2.0 特性。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- 新增 linkedinLogin 元素,並使用用戶端 ID 和用戶端密碼來配置它。
<linkedinLogin clientId="linkedin_client_id" clientSecret="linkedin_client_secret" />
linkedinLogin 元素指定 LinkedIn 連線的特定預設值。您可以配置其他的屬性 (如 LinkedIn 登入中所列出的),以置換預設值並指定其他的設定。
- 在 keyStore 元素上配置一個信任儲存庫,並從 LinkedIn 端點將憑證匯入至信任儲存庫。
例如,下列配置指向預設 Liberty 信任儲存庫檔案。
如果要將憑證匯入至 Liberty 信任儲存庫,請在您的瀏覽器中,移至 linkedinLogin 元素指定的其中一個端點,並且匯出憑證。使用 iKeyman 或 Java keytool 公用程式等之類的金鑰管理工具,將憑證新增至 Liberty 信任儲存庫檔案。<keyStore id="defaultKeyStore" password="keyspass" />
提示: 在某些情況下,您可能需要匯入多份憑證。如需您需要匯入哪些憑證的相關資訊,請參閱 messages.log 檔。
- 建立 LinkedIn 應用程式。 如需相關資訊,請參閱 LinkedIn:使用 OAuth 2.0 進行鑑別。
- 針對 Twitter 配置社群登入。
- 建立 Twitter 應用程式。 如需相關資訊,請參閱 Twitter 應用程式。
建立應用程式之後,請啟用要求使用者提供電子郵件位址許可權。請務必記下消費者金鑰和消費者密碼,以便新增至您的 Liberty 配置。
您可以選擇性地啟用回呼鎖定,以確保應用程式無法改寫回呼 URL。在設定之下,輸入下列格式的回呼 URL,並勾選啟用回呼鎖定設定。https://liberty_host:SSL_port/ibm/api/social-login/redirect/twitterLogin
- 開啟 Liberty 伺服器的 server.xml 配置檔,並新增
socialLogin-1.0 和 appSecurity-2.0 特性。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- 新增 twitterLogin 元素,並使用用戶端 ID 和用戶端密碼來配置它。
<twitterLogin consumerKey="twitter_consumer_key" consumerSecret="twitter_consumer_secret" />
twitterLogin 元素指定 Twitter 連線的特定預設值。您可以配置其他的屬性 (如 Twitter 登入中所列出的),以置換預設值並指定其他的設定。
- 在 keyStore 元素上配置一個信任儲存庫,並從 Twitter 端點將憑證匯入至信任儲存庫。
例如,下列配置指向預設 Liberty 信任儲存庫檔案。
如果要將憑證匯入至 Liberty 信任儲存庫,請在您的瀏覽器中,移至 twitterLogin 元素指定的其中一個端點,並且匯出憑證。使用 iKeyman 或 Java keytool 公用程式等之類的金鑰管理工具,將憑證新增至 Liberty 信任儲存庫檔案。<keyStore id="defaultKeyStore" password="keyspass" />
提示: 在某些情況下,您可能需要匯入多份憑證。如需您需要匯入哪些憑證的相關資訊,請參閱 messages.log 檔。
- 建立 Twitter 應用程式。 如需相關資訊,請參閱 Twitter 應用程式。
- 針對支援 OAuth 2.0 的社群媒體平台(例如 Instagram 或 Pinterest)配置社群登入。
- 為該社群媒體平台建立應用程式。 如需相關資訊,請參閱特定社群媒體平台的相關說明文件。
建立應用程式之後,請記下用戶端 ID 和用戶端密碼,以便新增至您的 Liberty 配置。
- 開啟 Liberty 伺服器的 server.xml 配置檔,並新增
socialLogin-1.0 和 appSecurity-2.0 特性。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- 新增 oauth2Login 元素,並配置該社群媒體平台的連線。 如需可配置屬性的相關資訊,請參閱 OAuth 2.0 登入。比方說,下列配置是定義 Instagram 應用程式的社群登入:
<oauth2Login id="instagramLogin" clientId="client_id" clientSecret="client_secret" scope="basic public_content" responseType="code" tokenEndpointAuthMethod="client_secret_post" authorizationEndpoint="https://api.instagram.com/oauth/authorize" tokenEndpoint="https://api.instagram.com/oauth/access_token" userApi="https://api.instagram.com/v1/users/self" userNameAttribute="username" website="https://www.instagram.com/developer/authentication/"> </oauth2Login>
配置提示:- Liberty 伺服器會將您在 scope 屬性上所定義的 OAuth 範圍值,傳遞給社群媒體平台。社群媒體平台必須能支援您定義的範圍,且範圍必須授與足夠的存取權給 Liberty 伺服器,以便從該社群媒體平台讀取使用者資料。此外,如果您打算讓該社群媒體應用程式呼叫其他的社群媒體 API(例如:行銷 API),所定義的值必須包含那些 API 所需要的範圍。
- 在 authorizationEndpoint 和 tokenEndpoint 屬性上定義社群媒體平台的端點。Liberty 伺服器會先將使用者重新導向至授權端點,以鑑別該使用者,並取得 OAuth 授權碼。然後它會呼叫記號端點,以交換 OAuth 記號的 OAuth 授權碼。
- 在 keyStore 元素上配置一個信任儲存庫,並從社群媒體端點將憑證匯入至信任儲存庫。
例如,下列配置指向預設 Liberty 信任儲存庫檔案。
如果要將憑證匯入至 Liberty 信任儲存庫,請在您的瀏覽器中,移至 oauth2Login 元素指定的其中一個端點,並且匯出憑證。使用 iKeyman 或 Java keytool 公用程式等之類的金鑰管理工具,將憑證新增至 Liberty 信任儲存庫檔案。<keyStore id="defaultKeyStore" password="keyspass" />
提示: 對於某些社群媒體平台,您可能需要匯入多份憑證。如需您需要匯入哪些憑證的相關資訊,請參閱 messages.log 檔。 - 回到您的社群媒體應用程式,並以下列格式來配置重新導向或回呼 URL,以指向您所配置之
oauth2Login 元素的 ID。
比方說,Instagram oauth2Login 配置範例的重新導向 URL 格式如下:https://liberty_host:SSL_port/ibm/api/social-login/redirect/oauth2login_id
https://liberty_host:SSL_port/ibm/api/social-login/redirect/instagramLogin
- 為該社群媒體平台建立應用程式。 如需相關資訊,請參閱特定社群媒體平台的相關說明文件。
- 針對支援 OpenID Connect 1.0 的社群媒體平台配置社群登入。
- 為該社群媒體平台建立應用程式。 如需相關資訊,請參閱特定社群媒體平台的相關說明文件。
建立應用程式之後,請記下用戶端 ID 和用戶端密碼,以便新增至您的 Liberty 配置。
- 開啟 Liberty 伺服器的 server.xml 配置檔,並新增
socialLogin-1.0 和 appSecurity-2.0 特性。
<featureManager> <feature>socialLogin-1.0</feature> <feature>appSecurity-2.0</feature> ... </featureManager>
- 新增 oidcLogin 元素,並配置該社群媒體平台的連線。 如需可配置屬性的相關資訊,請參閱 OpenID Connect 1.0 登入。比方說,下列配置是為使用 OpenID Connect 的 Google 應用程式,定義社群登入:
<oidcLogin id="googleOIDCLogin" clientId="client_id" clientSecret="client_secret" authorizationEndpoint="https://accounts.google.com/o/oauth2/v2/auth" tokenEndpoint="https://www.googleapis.com/oauth2/v4/token" jwksUri="https://www.googleapis.com/oauth2/v3/certs" scope="openid profile email" userNameAttribute="email" isClientSideRedirectSupported="true" issuer="https://accounts.google.com" realmNameAttribute="iss" > </oidcLogin>
配置提示:- Liberty 伺服器會將您在 scope 屬性上所定義的 OAuth 範圍值,傳遞給社群媒體平台。社群媒體平台必須能支援您定義的範圍,且範圍必須授與足夠的存取權給 Liberty 伺服器,以便從該社群媒體平台讀取使用者資料。此外,如果您打算讓該社群媒體應用程式呼叫其他的社群媒體 API(例如:行銷 API),所定義的值必須包含那些 API 所需要的範圍。
- 在 authorizationEndpoint 和 tokenEndpoint 屬性上定義社群媒體平台的端點。Liberty 伺服器會先將使用者重新導向至授權端點,以鑑別該使用者,並取得 OAuth 授權碼。然後它會呼叫記號端點,以交換 OAuth 記號的 OAuth 授權碼。
- 在 keyStore 元素上配置一個信任儲存庫,並從社群媒體端點將憑證匯入至信任儲存庫。
例如,下列配置指向預設 Liberty 信任儲存庫檔案。
如果要將憑證匯入至 Liberty 信任儲存庫,請在您的瀏覽器中,移至 oidcLogin 元素指定的其中一個端點,並且匯出憑證。使用 iKeyman 或 Java keytool 公用程式等之類的金鑰管理工具,將憑證新增至 Liberty 信任儲存庫檔案。<keyStore id="defaultKeyStore" password="keyspass" />
提示: 對於某些社群媒體平台,您可能需要匯入多份憑證。如需您需要匯入哪些憑證的相關資訊,請參閱 messages.log 檔。 - 回到您的社群媒體應用程式,並以下列格式來配置重新導向或回呼 URL,以指向您所配置之
oidcLogin 元素的 ID。
比方說,oidcLogin 配置範例的重新導向 URL 格式如下:https://liberty_host:SSL_port/ibm/api/social-login/redirect/oidclogin_id
https://liberty_host:SSL_port/ibm/api/social-login/redirect/googleOIDCLogin
- 為該社群媒體平台建立應用程式。 如需相關資訊,請參閱特定社群媒體平台的相關說明文件。
次主題
Liberty 社群媒體選單
如果配置了多個社群媒體提供者來保護要求,WebSphere® Application Server Liberty 會提供一份預設社群媒體選單。這份選單提供選項,讓您從 Liberty 伺服器中配置的可用提供者之間挑選,以便針對受保護的資源要求,向該提供者鑑別您本身。為 Liberty 配置自訂社群媒體選擇表單
您可以配置自己的社群媒體選擇表單,而不配置 Liberty 提供的預設社群媒體選擇表單。如果您配置了多個社群媒體提供者來保護要求,可選擇這個選項。

檔名:twlp_sec_sociallogin.html