Skip to main content

 

 

 

 
Language:

 

 
Applies only to Traditional Web Apps
 
 
OutSystems

従来のWebアプリのログアウトフローを更新してSAML 2.0をサポートする

このドキュメントで説明する手順は、バージョン1.7.7より前のバージョンのOutSystems UI Webを使用してアプリを作成した場合にのみ必要です。
アプリ作成時のテンプレートの正確なバージョンがわからない場合は、以下の手順に従ってログインおよびログアウトフローがすでに更新されているかどうかを確認してください。

サービスプロバイダ(SP)によって開始されるシングルログアウト操作がIDプロバイダ(IdP)でサポートされており、この機能をサポートする場合、OutSystems UI Webの古いバージョンを引き続き使用するためには、OutSystemsアプリケーションのログアウトフローを変更する必要があります。以下に示す手順はオプションであり、このシングルログアウトシナリオに適用されます。

デフォルトでは、ログアウトフローがOutSystemsアプリケーションサーバーのセッションを無効にします。ログアウト操作がサービスプロバイダ側(OutSystemsアプリケーション)で開始される場合もありますが、IdP SSOシナリオではほとんどの場合、ログアウトもIdPサーバー上で実行されます。これは、IdPサーバー内の特定のURLにユーザーをリダイレクトすることによって行われます。この場合、ユーザーのログアウト時にユーザープロバイダがこのリダイレクトを実行するように、Usersを使用して各OutSystemsアプリケーションを更新する必要があります。

以下の手順を実行します。

  1. Usersアプリケーションで、[Configure Authentication]ページの[IdP server Single Logout URL]フィールドに、IdPプロバイダから提供される特定のログアウトURLを入力します。

1.Service Studioで、OutSystemsアプリケーションのホームモジュールを開きます。

  1. Manage Dependencies]ウィンドウを開き、左側のプロデューサモジュールのリストでUsersを選択して、依存関係として以下のサーバーアクションを選択します。

    • User_GetUnifiedLoginUrl
    • User_GetUnifiedLogoutUrl

    Usersモジュールから2つのサーバーアクションへの依存関係を追加する

  2. Apply]をクリックします。

  3. LoginInfo WebブロックのLogout画面アクションを開きます。これは[UI Flows > Common > LoginInfo]にあります。

次の手順を実行してアクションフローを編集し、SAML 2.0構成設定でログアウトURLが指定されている場合はリダイレクトされるようにします。

以下の手順を実行します。

  1. このアクションのOriginalUrl入力パラメータで以下の値を使用してUser_GetUnifiedLogoutUrlサーバーアクションを呼び出し、IdPのログアウトURLを取得します。

    If(GetExceptionURL()="", GetOwnerURLPath(), GetExceptionURL())

  2. ログアウトURLが空ではない場合、そのURLにユーザーをリダイレクトします。それ以外の場合はUser_Logoutサーバーアクションを呼び出し、ユーザーをログアウトさせてセッションを終了します。

  3. サーバーアクションの呼び出しの後、IdPのログインURLにユーザーをリダイレクトします。このアクションのOriginalUrl入力パラメータで以下の値を使用してUser_GetUnifiedLoginUrlサーバーアクションを呼び出し、このURLを取得します。

    If(GetExceptionURL()="", GetOwnerURLPath(), GetExceptionURL())

  4. ログインURLが空ではない場合、そのURLにユーザーをリダイレクトします。それ以外の場合は、[Common\Login]画面にユーザーを移動させます。

上記の手順で考えられる実装のサンプルフローを以下に示します。

更新されたログアウトフローの実装例

LoginInfo WebブロックにLogout画面アクションを参照するLoginリンクが含まれる場合は、以下の手順も実行する必要があります。

  1. LoginInfo Webブロック内に「Login」という名前の新しい画面アクションを作成し、新しいアクションのフローを編集します。

  2. このアクションのOriginalUrl入力パラメータで以下の値を使用してUser_GetUnifiedLoginUrlサーバーアクションを呼び出し、IdPのログインURLを取得します。

    If(GetExceptionURL()="", GetOwnerURLPath(), GetExceptionURL())

  3. ログインURLが空ではない場合、そのURLにユーザーをリダイレクトします。それ以外の場合は、[Common\Login]画面にユーザーを移動させます。

  4. LoginInfo WebブロックのUIを編集し、Loginリンクが新しいLogin画面アクションを参照するようにします。

上記のすべての手順の可能な実装のサンプルフローを以下に示します。

LoginInfo > Login画面アクションの更新されたフロー