[17.0.0.4 and later]

Liberty のソーシャル・メディア選択フォーム

要求を保護するように構成されたソーシャル・メディア・プロバイダーが複数ある場合、WebSphere® Application Server Liberty は、デフォルト・ソーシャル・メディア選択フォームを提供します。このフォームは、保護リソース要求に対してユーザー自身を認証するため、Liberty サーバーに構成されている使用可能なプロバイダーから選択するためのオプションをユーザーに提供します。

デフォルト選択フォームに表示されるオプションは、元のリソース要求を保護するように構成されているプロバイダーのみです。元の要求を保護するように構成されていないプロバイダーは、オプションとして表示されません。さらに、ある特定の要求を保護するように構成されたプロバイダーが 1 つのみである場合、選択ページは表示されません。代わりに、認証のためにそのプロバイダーに自動的にリダイレクトされます。

複数プロバイダーの保護されたエンドポイントの認証フォームの構成

次の例では、facebookLogin エレメントおよび twitterLogin エレメントは、認証フィルター参照を指定していないため、すべての要求を保護するように構成されています。githubLogin エレメントは、認証フィルター参照を使用して、helloworld エンドポイントを保護するように構成されています。認証フィルターの構成について詳しくは、認証フィルターを参照してください。

<facebookLogin clientId="..." clientSecret="..." />
<twitterLogin consumerKey="..." consumerSecret="..." />
<githubLogin clientId="..." clientSecret="..." authFilterRef="filter_helloworld" />
<authFilter id="filter_helloworld">
  <requestUrl id="myRequestUrl" urlPattern="helloworld" matchType="contains" />
</authFilter>

/acme エンドポイントで使用可能な Web アプリケーションが Liberty サーバーで提供されていると想定します。/acme エンドポイントにアクセスしようとすると、Facebook と Twitter のオプションが含まれたデフォルト選択ページが表示されます。Facebook と Twitter は、すべてのエンドポイントを保護するため、これらは選択ページに認証オプションとして含まれます。GitHub プロバイダーは、このエンドポイントを保護するように構成されていないため、この要求の選択フォームから除外されます。

次に、/helloworld エンドポイントで使用可能な Web アプリケーションがサーバーで提供されていると想定します。/helloworld エンドポイントにアクセスしようとすると、Facebook、Twitter、および GitHub のオプションが含まれたデフォルト選択ページが表示されます。最初の例と同じように、Facebook と Twitter は、すべてのエンドポイントを保護するため、選択ページに認証オプションとして含まれます。GitHub は、この特定のエンドポイントを保護するように構成されているため、認証オプションとして含まれます。

単一プロバイダーの保護されたエンドポイントの認証フォームの構成

次の例では、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 以外のブラウザーでは、デフォルト選択フォームは正しく機能します。

トピックのタイプを示すアイコン 概念トピック

ファイル名: cwlp_sec_social_form.html