![[17.0.0.4 以及更新版本]](../ng_v17004plus.gif)
Liberty 社群媒體選單
如果配置了多個社群媒體提供者來保護要求,WebSphere® Application Server Liberty 會提供一份預設社群媒體選單。這份選單提供選項,讓您從 Liberty 伺服器中配置的可用提供者之間挑選,以便針對受保護的資源要求,向該提供者鑑別您本身。
只有配置成保護原始資源要求的提供者,才會出現為預設選單上的選項。凡是沒有配置成保護原始要求的提供者,就不會顯示成選項。此外,如果只配置一個提供者來保護特定的要求,就不會顯示選擇頁面。而是會自動將您重新導向至該提供者,來進行鑑別。
針對受單一提供者保護的端點配置鑑別表單
在下列範例中,移除了 Facebook 和 Twitter 登入配置,因此沒有任何社群媒體提供者會保護所有端點。新增了 linkedinLogin 元素,並保護 helloworld 端點。同樣地,新增了 googleLogin 元素,並且配置成保護 snoop 端點。
<githubLogin clientId="..." clientSecret="..." authFilterRef="filter_helloworld" />
<linkedinLogin clientId="..." clientSecret="..." authFilterRef="filter_helloworld" />
<googleLogin clientId="..." clientSecret="..." authFilterRef="filter_snoop" />
<authFilter id="filter_helloworld">
<requestUrl id="myRequestUrl" urlPattern="helloworld" matchType="contains" />
</authFilter>
<authFilter id="filter_snoop">
<requestUrl id="myRequestUrl" urlPattern="snoop" matchType="contains" />
</authFilter>
當您嘗試存取 helloworld 端點時,您會看到預設選擇頁面,其中具有 GitHub 和 LinkedIn 選項。GitHub 和 LinkedIn 配置成保護這個特定端點,因此會以鑑別選項形式包含它們。不過 Google 未配置成保護此端點,因此對於這項要求,會將它排除而不作為選項。
接著,假設伺服器會在 snoop 端點提供可用的 Web 應用程式。當您嘗試存取 snoop 端點時,會將您重新導向至 Google,而不顯示選擇項,這是因為 Google 是唯一一個被配置成保護此端點的提供者。
註: 對於 socialLogin-1.0 特性,預設社群媒體選單在
Windows Server 2012 作業系統上的 Internet Explorer
中可能無法運作適當。當您選擇提供者,並提交選單時,Internet Explorer 可能會提交顯示的按鈕文字作為預設值,而不是提交配置給該按鈕的 HTML 值。如此一來,您可能需要使用不同的 Web 瀏覽器。Internet Explorer 以外的瀏覽器就能正常地與預設選單搭配運作。
針對受多個提供者保護的端點配置鑑別表單
在下列範例中,facebookLogin 和 twitterLogin 元素會配置成保護所有的要求,因為它們沒有指定鑑別過濾器參照。githubLogin 元素則藉由鑑別過濾器參照,而配置成保護 helloworld 端點。如需配置鑑別過濾器的相關資訊,請參閱鑑別過濾器。
假設 Liberty 伺服器會在 /acme 端點提供可用的 Web 應用程式。當您嘗試存取 /acme 端點時,您會看到預設選擇頁面,其中具有 Facebook 和 Twitter 選項。Facebook 和 Twitter 會保護所有端點,因此它們會以鑑別選項形式包含在選擇頁面中。GitHub 提供者未配置成保護此端點,因此對於這項要求,會將它從選單中排除。
接著,假設伺服器會在 /helloworld 端點提供可用的 Web 應用程式。當您嘗試存取 /helloworld 端點時,您會看到預設選擇頁面,其中具有 Facebook、Twitter 和 GitHub 選項。類似於第一個範例,Facebook 和 Twitter 會保護所有端點,因此它們會以鑑別選項形式包含在選擇頁面中。GitHub 配置成保護這個特定端點,因此會以鑑別選項形式包含在內。