シングルサインオン
OutSystemsでは、シングルサインオン機能がデフォルトで用意されています。アプリケーションの1つで認証されると、資格情報を提供することなくすべてのアプリケーションにエンドユーザーがアクセスできます。シングルサインオンは、クッキーの使用を有効にしているモジュールでのみサポートされています。
シングルサインオンの使用
作成されたすべてのアプリケーションは、シングルサインオン機能をデフォルトで備えています。これは、アプリケーションのユーザープロバイダモジュールが「User」に設定されているためです。しかし、異なるユーザープロバイダを使用した場合は、以下の手順を実行します。
-
エンドユーザーとセッションを他のモジュールに提供するUser Providerモジュールを特定して、Service Studioでモジュールを開きます。
Is User Provider
モジュールプロパティをYes
に設定し、モジュールをパブリッシュします。 -
エンドユーザーとセッションをユーザープロバイダモジュールと共有するユーザーサブスクライバモジュールを特定します。サブスクライバモジュールを1つずつ開き、ユーザープロバイダモジュールのプロパティのドロップダウンリスト(モジュールプロパティにある)から[User Provider module]を選択します。
シングルサインオンを行う場合は、Service Centerの統合モジュールを確認します。モジュールを編集して[Single Sign-On]タブを選択し、ユーザープロバイダモジュールとユーザーサブスクライバモジュールを確認します。
ユーザーの共有
ユーザープロバイダモジュールにはエンドユーザー情報を保存するエンティティがあります。このエンティティはPublic
プロパティがYes
に設定されているため、ユーザーサブスクライバモジュールで再利用できます。
エンドユーザー認証を行うには、与えられた資格情報がユーザープロバイダモジュールのエンティティのレコードと合致しているかどうかを確認します。
セッションの共有
セッションは、エンドユーザーがサーバーにアクセスし、統合モジュールの任意のページを初めてリクエストしたときに作成されます。しかし、セッションは統合モジュールで共有されるため、呼び出される最初のOn Session Start
アクションはユーザープロバイダモジュールの1つになります。そのとき、On Session Startアクションがリクエストされたモジュールに存在する場合は、そのアクションが呼び出されます。
以降は、画面、Webブロック、および公開アクション経由で個々のモジュールに初めてアクセスするたびに、ユーザーサブスクライバモジュールのOn Session Startアクションが呼び出されます。
シングルサインオンを行う場合、統合モジュールで共有されるセッションは1つのみで、これらのモジュールで定義されたすべてのセッション変数で構成されます。他のモジュールからセッション変数を参照または変更する必要がある場合は、公開アクションを使用する必要があります。これは、モジュール間のセッション参照を追加および削除する方法が他にないためです。
公開アクションを使用したセッション変数の共有は、同一セットの統合モジュールでのみ有効です。ご注意ください。それ以外の場合は、セッションが異なるため、モジュールごとに異なる変数を参照します。