プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebCenter Sitesでの開発
12c (12.2.1)
E72540-01
目次へ移動
目次

前
次

61 本番サイトでのシングル・サインオンの使用

使用準備済のCASをアプリケーションの保護に使用できないライブ・サイトでアプリケーションのシングル・サインオンおよびサインアウトを有効にする簡単な例を使用して、本番サイトでのシングル・サインオンについて説明します。

本番サイトでのシングル・サインオンの使用の詳細は、次の項を参照してください。

61.1 SSOサンプル・アプリケーションのデプロイ

  1. wem-sso-api-cas-sample.warファイルを(/sso-sampleフォルダなどに)解凍します。アプリケーションは、Misc/Samples/WEM Samples/WEM Sample applications/ディレクトリのWebCenter Sitesインストール・ディレクトリにあります。
  2. 次のプロパティを設定して、WEB-INFフォルダにあるapplicationContext.xmlファイルを変更します。
    • casUrl: 次のように、CASサーバーのベース・パスを指定します。

      http://localhost:8080/cas
      
    • casLoginPath: 次のように、SSOサンプル・アプリケーションでホストされるログイン・フォーム・テンプレートを含めます。

      /login?wemLoginTemplate=http%3A%2F%2Flocalhost%3A9080%2Fsso-cas-sample%2Ftemplate.html 
      
  3. 変更したSSOサンプル・アプリケーションをアプリケーション・サーバーにデプロイします。
  4. アプリケーションにアクセスします。

SSOサンプル・アプリケーションは、次のページで構成されています。

  • 保護されている領域: WEM SSOフィルタで保護されているページ。このページには、シングル・サインアウト用の2つのリンクがあります(図61-1)。

    図61-1 シングル・サインアウト用のリンクを含む保護付きページ

    図61-1の説明が続きます
    「図61-1 シングル・サインアウト用のリンクを含む保護付きページ」の説明

    1つ目のリンク(リダイレクトありのシングル・サインアウト)は、CAS側でシングル・サインアウトを実行し、ユーザーをホーム・ページにリダイレクトするHTMLリンクです。2つ目のリンク(リダイレクトなしのシングル・サインアウト)もHTMLリンクですが、CAS側でシングル・サインアウトを実行しても、現在のページから遷移したり、再ロードが発生したりすることはありません。

  • 公開領域: 保護フィルタから除外されるページ。

  • ログイン・フォームを含む公開領域: このページは保護フィルタから除外されますが、ページ内にログイン・フォーム(図61-2)があります(ログイン・フォームではサインイン操作を実行できますが、現在のページから遷移したり、再ロードが発生したりすることはありません)。

    図61-2 「サインイン」リンクを含む公開領域

    図61-2の説明が続きます
    「図61-2 「サインイン」リンクを含む公開領域」の説明

注意:

ログインに成功すると、ユーザーは、CASによって、リクエストされたサービスにリダイレクトされます。セキュリティ目的で、ユーザーをリダイレクトする前に、リクエストされたサービスを検証できます。それには、Adminインタフェースの「システム・ツール」ノードのプロパティ管理ツールを使用して、信頼できるURLおよび許可されたURLのリストを指定します。信頼できるURL (カンマ区切り)をvalid.urlsプロパティに追加します。このプロパティでは、WebCenter Sitesにアクセスするために、信頼できるURLのユーザーが使用を許可されるように指定します。このプロパティのデフォルト値は、<wcsites.app.protocol>://<wcsites.app.host>:<wcsites.app.port>/<wcsites.app.contextroot>/*です。詳細は、『Oracle WebCenter Sitesプロパティ・ファイル・リファレンス』を参照してください。

URLは、次の書式のいずれかにできます。

  • 完全なURL。例:

    http://hostname:port/cs/wem/fatwire/wem/Welcome

  • 一致するURL。例:

    http://hostname:port/SitesWebapp/*

    ここで、末尾の/*は、指定した接頭辞と同じ接頭辞が含まれるURLを示します

IPを使用した信頼できるURLも同様のURLを指定する必要があります。

61.2 SSOサンプル・アプリケーションの構造の理解

SSOサンプル・アプリケーション(図61-3)には、本番サイトでシングル・サインオンおよびサインアウト機能を使用して、アプリケーションを保護するための基本コードが用意されています。次のコンポーネントを使用して、SSOサンプル・アプリケーションにアクセスします。

  • index.jsp: 開始ページ。このページには、保護されている領域公開領域およびログイン・フォームを含む公開領域の各ページ(「SSOサンプル・アプリケーションのデプロイ」を参照)へのリンクがあります。

  • template.html: CAS用のカスタム・サインイン・フォームを指定する際に使用します。このファイルへのパスは、applicationContext.xmlファイルのcasLoginPathにあるwemLoginTemplateパラメータで参照します。

/sso-sample/WEB-INFの構成ファイル

WEB-INFには、次の構成ファイルが含まれます。

  • applicationContext.xml: Spring Webアプリケーション構成ファイル。SSOサブシステムを構成します。

  • web.xml: Webアプリケーションのデプロイメント・ディスクリプタ。

/sso-sample/protected/jspの保護付きファイル

この領域のファイルは、SSOフィルタで保護されています。デフォルトでは、このフォルダに次のファイルが含まれています。

  • protected.jsp: SSOフィルタで保護されているページ。このページには、シングル・サインアウトを実行するための2つのリンクがあります。1つ目のリンクをクリックすると、CASサインアウト・ページに遷移し、サインアウトが完了するとアプリケーションのホーム・ページにリダイレクトされます。2つ目のリンクをクリックすると、このページにiframeが埋め込まれ、signoutCallback.jspページにリダイレクトされるCASサインアウト・ページがコールされます。また、protected.jspページには、現在のログイン済ユーザーを表すAssertionオブジェクトのすべての属性も表示されます。

  • protected/jsp/protectedSection.jsp: 埋込みiframeの「サインイン」リンクがクリックされた場合に、public.jspページから参照されるページです。このページは保護されているため、埋込みiframeにログイン画面が表示されます。

/sso-sample/public/jspの公開ファイル

この領域のファイルは、SSOフィルタで保護されていません。デフォルトでは、/public/jsp/フォルダに次のサンプル・ファイルが含まれています。

  • public.jsp: このページは、CASフィルタで保護されていません。

  • publicWithAuth.jsp: このページには、「サインイン」リンクが表示されます。このリンクをクリックすると、publicWithAuth.jspに、protectedSection.jspページを指すiframeが埋め込まれます。このページは保護されているため、埋込みiframeにログイン画面が表示されます。

  • signoutCallback.jsp: このページは、iframeを使用する場合にサイトアウトが完了すると、protected.jspページからコールされます。

61.3 シングル・サインオンの実装

Webサイトでシングル・サインオンを実装する場合、サインイン・フォームを実装することになります。サインイン・フォームは、次の2つのいずれかの方法でサイト訪問者に表示できます。

  • 保護付きページに訪問者がアクセスしようとすると、サインイン・フォーム(図61-4)が表示されます。これは、デフォルトのサインイン実装です。このサインイン・フォームには、CASに付属のデフォルト・サインイン・フォームまたはアプリケーションが提供するカスタム・フォームを指定できます。

    図61-4 サインイン・フォーム

    図61-4の説明が続きます
    「図61-4 サインイン・フォーム」の説明
  • サインイン・フォームを公開ページ(図61-5)に埋め込むと、ユーザーが現在のページから遷移することなくサインイン機能が実行されます。この動作を実装するには、保護付きページを指すiframeを埋め込みます。そのページは保護されているので、訪問者にはサインイン・フォームが表示されます。

    図61-5 サインイン・フォーム

    図61-5の説明が続きます
    「図61-5 サインイン・フォーム」の説明

61.4 シングル・サインアウトの実装

シングル・サインアウトをWebページで実装する場合、次のいずれかの方法で実行します。

  • 次のメソッドを起動して、single sign-out URLを取得します。

    com.fatwire.wem.sso.SSO.getSSOSession()オブジェクトのgetSignoutUrl()またはgetSignoutUrl(String callbackUrl)メソッド。

    シングル・サインアウト後に、必要に応じて、訪問者が指定したURLにCASからリダイレクトできます(これは、callbackUrlパラメータで設定します)。

  • 現在のページから遷移せずにシングル・サインアウトを実行するには、iframeの埋込み手法を使用します。この手法では、ソースにシングル・サインアウトURLを含むiframeを埋め込む必要があります。iframeがロードされると、サインアウトURLがコールされます(この方法は主に、ブラウザでのクロスドメイン制限を回避する場合に使用されます)。