Skip to main content

 

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

Applies only to Traditional Web Apps

 

 

OutSystems

SAML 2.0認証を構成する

SAML 2.0プロトコルを使用してOutSystemsをフェデレーション認証システムに連携し、外部IDプロバイダ(IdP)に接続することで、シングルサインオン(SSO)操作やシングルログアウト操作を実現することができます。

一般的な認証ワークフローは以下のとおりです。

  1. ログインしていないユーザーがOutSystemsアプリケーション(SAMLのサービスプロバイダ(SP))へのアクセスを試みます。
  2. ユーザーがWebページ(エンタープライズのログインマネージャ)にリダイレクトされ、エンタープライズのユーザー名とパスワードの入力が求められます。
  3. ユーザーのログインが検証されると、ログインしたユーザーの検証済みIDがエンタープライズのIDプロバイダからOutSystemsアプリケーションに通知され、ユーザーが元のポータルWebサイトにリダイレクトされます。

現在の制限

以下に示すとおり、OutSystemsの現在のSAML 2.0実装にはいくつかの制限があります。OutSystemsプラットフォームは継続的に改良されているため、このページで最新の制限の一覧を定期的にご確認ください。

  • 現在、Usersモジュールで提供されるSAML 2.0サポートは、従来のWebアプリケーションにのみ適用されます。モバイルアプリまたはリアクティブアプリでSAML 2.0を使用するには、このユースケースに対応するIdP ConnectorIdP MobileIdP ReactなどのForgeコンポーネントを利用できます。
    注記: 上記のForgeコンポーネントは、OutSystemsでサポートされていません。Forgeコミュニティで管理されています。
  • シングルログアウトを実装するには、このページで示されている手順に従ってOutSystemsアプリケーションのログアウトフローを変更する必要があります。
  • Usersアプリケーションはマルチテナントですが、SAML 2.0、Azure AD、OKTAの各認証方式を使用する場合、マルチテナントはサポートされません。

ログインごとに実行する必要があるロジックがある場合や、Usersアプリケーションでサポートされていない特定の構成がIdPに含まれる場合は、UsersアプリケーションのUsersモジュールをコピーして拡張し、特定の要件を満たすことを検討してください。

OutSystemsアプリケーションでSAMLを使用する

SAML 2.0エンドユーザー認証を構成するには、以下の手順を実行する必要があります。

  1. UsersアプリケーションでSAML 2.0認証を構成します。
  2. OutSystemsアプリケーションのログアウトフローを変更します(シングルログアウトを使用する場合のみ必要)。

1. UsersアプリケーションでSAML 2. 0認証を構成する

UsersアプリケーションでSAML 2. 0認証を構成するために必要な情報をIDプロバイダから事前にすべて取得していることを確認します。

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

  1. Usersアプリケーションで、サイドバーにある[Configure Authentication]をクリックします。
  2. Authentication]ドロップダウンリストから[SAML 2.0]を選択します。
  3. 使用するIDプロバイダに応じて、必要な構成値を入力します。

    ヒント: 構成をすばやく行うため、Usersアプリケーションでサービスプロバイダ(SP)のメタデータXMLファイルをエクスポートしてIdPにインポートすることができます(IDプロバイダ(IdP)にこの機能がある場合)。
    同様に、IdPサーバー設定が含まれるフェデレーションのメタデータXMLファイルをUsersアプリケーションにインポートすることもできます(IdPにこのメタデータファイルをエクスポートするオプションがある場合)。

2.OutSystemsアプリケーションのログアウトフローを変更する

この変更は、使用しているOutSystems UI Webのバージョンが1.7.7より古い場合のみ行う必要があります。

サービスプロバイダ(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を入力します。

  2. Service Studioで、OutSystemsアプリケーションのホームモジュールを開き、LoginInfo Webブロック(UI Flows > Common > LoginInfo)のLogout画面アクションを開きます。
    次の手順で、SAML 2.0の構成の設定でログアウトURLが指定されている場合にリダイレクトを実行するようにフローを編集します。

  3. (Usersモジュール内にある)User_GetUnifiedLogoutUrlサーバーアクションを使用してIdPのログアウトURLを取得し、これが空でない場合はそのURLにユーザーをリダイレクトします。

  4. ログアウトURLが空の場合は、User_Logoutサーバーアクションを呼び出し、ユーザーをログアウトしてセッションをターミネートします。

  5. サーバーアクションの呼び出しの後、IdPのログインURLにユーザーをリダイレクトします。User_GetUnifiedLoginUrlサーバーアクションを呼び出してこのURLを取得し、これが空でない場合はそのURLにユーザーをリダイレクトします。

  6. IdPのログインURLが空の場合は、[Common\Login]画面にユーザーを移動します。

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

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

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

  2. (Usersモジュール内にある)User_GetUnifiedLoginUrlサーバーアクションを使用してIdPのログインURLを取得し、これが空でない場合はそのURLにユーザーをリダイレクトします。

  3. ログインURLが空の場合は、[Common\Login]画面にユーザーを移動します。

  4. [Login]リンクで新しいLogin画面アクションを参照します。

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

IDプロバイダのサーバーグループをOutSystemsグループにマッピングする

Usersアプリケーションの[Configure Authentication]画面でGroupsクレームを構成した場合、ユーザーログインが行われると、外部IDプロバイダ(Azure AD、OKTA、その他のSAMLベースのプロバイダ)から受け取った各グループ名とプラットフォームで構成されたグループの照合が試行されます。

一致するものがあった場合、Usersアプリケーションによってユーザーログインが既存のOutSystemsグループに関連付けられます。一致するものがない場合、IDプロバイダのサーバーグループと同じ名前の新しいグループが作成され、そのグループにユーザーが関連付けられます。

既知の制限: Azure ADでは、IDプロバイダサーバーから受け取ったグループ名はGUID識別子のみで構成されます。このため、Azure ADグループとOutSystemsグループの間が一致するようにするには、これらのGUID値を使用してOutSystemsグループの名前を付ける必要があります。

SAML認証に関する問題をトラブルシューティングする

メッセージログにアクセスする

SAMLの構成や認証に関する問題をトラブルシューティングする際は、[SAML Message Logs]ページが非常に役立ちます。このページにアクセスするには、右サイドバーの[SAML Message Logs]をクリックします。

デフォルトでは、これらのログを7日間参照できます。UsersモジュールのDeleteSAMLLogsOlderThenマルチテナントサイトプロパティを使用して、このログの保存期間をカスタマイズすることができます。

このサイトプロパティの値をカスタマイズするには、以下の手順を実行します。

  1. Service Centerを開き、[Factory > Modules]に移動してUsersモジュールを開きます。
  2. Tenants]タブを開き、[Users]リンクをクリックしてUsersテナントの詳細ページに移動します。
  3. Site Properties]タブで、リンクをクリックしてDeleteSAMLLogsOlderThenプロパティを編集し、新しいサイトプロパティの値を入力します。

ロックアウトされたときにUsersアプリケーションにアクセスする

認証が適切に構成されておらずSAMLによるログインができない場合も、デフォルトのユーザーログインページに移動し、管理者アカウント(UserManagerロールを持つユーザーである必要があります)を使用してログインすることができます。この方法によって構成済みの認証方式を回避し、ログインして不適切な設定を修正することができます。

デフォルトのユーザーログインページには、以下のURLを使用してアクセスできます。
https://<サーバー名>/Users/Login.aspx

  • Was this article helpful?