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

前
次

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

使用準備済のCASでアプリケーションをセキュリティ保護できないライブ・サイトで、アプリケーションのシングル・サインオンおよびサインアウトを有効にする方法の理解に役立つ簡単な例を次に示します。

トピック:

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

必要なことは、WARファイルの解凍、コンテキスト・ファイルの変更およびアプリケーションのデプロイのみです。

  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つのシングル・サインアウト・リンクがあります。

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

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

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

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

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

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

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

注意:

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

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

  • 完全なURL。例:

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

  • 一致するURL。例:

    http://hostname:port/SitesWebapp/*

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

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

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

SSOサンプル・アプリケーションのシングル・サインオンおよびシングル・サインアウトを構成する基本コードを使用して、本番サイト上のアプリケーションを保護できます。

図62-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ページからコールされます。

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

保護されているページを訪問者がアクセスしようとしたときにサインイン・フォームを表示するか、そのフォームを公開ページに埋め込んで、Webサイトのシングル・サインオンを実装できます。

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

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

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

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

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

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

シングル・サインアウトURLを取得するか、iframeの埋込み手法を使用して、シングル・サインアウトを実装します。

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

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

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

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