SAMLを使用するIDプロバイダを使用するためのOutSystemsの構成
SAMLを使用するフェデレーションSSO認証
OutSystemsアプリケーションでフェデレーション認証を設定し、SAMLプロトコルを使用して外部IDプロバイダに接続するには、IdP Forgeコンポーネントを利用できます。これは汎用のフェデレーションIDプロバイダ(IdP)コネクタです。IdPによって、OutSystemsアプリケーションを、ほとんどの商用IDプロバイダ企業が提供するシングルサインオン(SSO)と連携させることができます。
Platform Server Release Jul.2019 CP2(2019年8月23日)以降では、環境全体のSAML 2.0認証をUsersアプリケーションで直接構成できます。手順の詳細については、オンラインヘルプの「SAML 2.0認証を構成する」をご覧ください。
この連携では、OutSystemsアプリケーション(サービスプロバイダ - SP)にアクセスすると、ユーザーはWebページ(エンタープライズのログインマネージャ)にリダイレクトされ、エンタープライズのユーザー名とパスワードの入力が求められます。ユーザーのログインが検証されると、ログインしたユーザーの検証済みIDがエンタープライズのIDプロバイダからOutSystemsアプリケーションに通知され、ユーザーが元のポータルWebサイトにリダイレクトされます。
IdPコンポーネントとIDプロバイダの間の接続を正常に確立するには、認証フローを変更して、ユーザーをIDプロバイダのログインにリダイレクトするようにIdPコンポーネントとIDプロバイダの両方を構成する必要があります。この記事では、必要な設定について説明します。
アプリケーションでIdPコネクタの使用を構成する
ログインフロー
- CommonフローのNoPermission画面を変更します。
標準的なOutSystemsアプリケーションには、認証と例外の処理を行うCommonフローがあります。
シナリオの一例として、認証が必要なリソースにユーザーがアクセスしようとしているときに、まだ認証されていない場合があります。
この場合、アプリケーションでセキュリティ例外が発生し、この例外がCommonフローで処理され、ユーザーはログイン画面にリダイレクトされます。
そのため、OutSystemsアプリケーションの連携のための最初の手順として、ユーザーがログイン画面ではなくIDプロバイダにリダイレクトされるようにこの動作を変更します。
- NoPermission画面のPreparationを変更し、IdP_SSO_URLアクションによって得られるURLにユーザーをリダイレクトします。
注記: システムに複数のテナントがある場合、テナントを切り替えてからIdP_SSO_URLを呼び出す必要があります。
ログアウトフロー
- CommonフローのLoginInfo Webブロックを変更します(オプション: シングルログアウト)。
標準的なOutSystemsアプリケーションでは、ログアウト操作もCommonフローで行います。
デフォルトでは、ログアウトによってOutSystemsアプリケーションサーバーのセッションが無効になります。しかしIdP SSOシナリオの場合は、何回もIdPサーバーでログアウトを実行し、IdP SSOサーバー上の特定のURLにブラウザをリダイレクトする必要があります。
これを実現するため、ログアウトのデフォルト動作を変更する必要があります。
SP(IdPコネクタ)によって開始されるログアウトにIdPサーバーが対応している場合は、IdPサーバーから提供される[IdP server Single Logout URL]フィールドを構成します(シングルログアウトを実行するためのSAMLメッセージがIdPコネクタによって生成されます)。
注記: アプリケーションがUser_LogoutアクションまたはLogoutシステムアクションを呼び出さないようにする必要があります。その呼び出しは、IdPコネクタが実行します。
-
LoginInfoのPreparationを変更し、IdPサーバーから提供されるURLにユーザーをリダイレクトします。
-
SPによってSAMLメッセージを介して開始されるログアウトにIdPサーバーが対応している場合は、IdP_SingleLogout_URLアクションを呼び出し、その出力でCommon\ExternalURLを呼び出します。
IdPコネクタを構成する
IdPコンポーネントでSAMLシングルサインオンを構成するには、IDプロバイダに基づいて値を設定する必要があります。
-
IdP Server Issuer/Entity ID: SAML IDプロバイダ(IdPサーバー)を一意に識別するURL。IdPサーバーから送信されるSAMLメッセージは、SAMLメッセージの
<saml:Issuer>
アトリビュートのこの値と完全に一致している必要があります。 -
IdP server Single Sign-On URL:ユーザーがサインインできるようにIdPコネクタがリダイレクトするURL。
-
Certificate:IDプロバイダから発行されたX.509公開証明書。これを使用してIdPサーバーからのSAMLメッセージの署名を確認します。
-
SP Issuer/Entity ID:IdPコネクタからSAMLで送信されるSAMLサービスプロバイダの発行者(SPエンティティID)。
オプション(必要な場合):
-
IdP server Single Logout URL:IDプロバイダサーバーのシングルログアウトURL。SPによって開始されるシングルログアウトにサーバーが対応している場合に使用します。
-
IdPConnector (SP) Keystore:IdPサーバーに送信されるSAMLメッセージに署名するときにIdPコネクタが使用する秘密鍵と公開証明書(IdPサーバーによって暗号化された場合にアサーションを復号化するときにも使用します)が含まれるキーストア。PFX/PKCS12形式がサポートされます。
-
KeyStore password:キーストア内のキーを保護するためのパスワード。
-
Session_Cookie(サイトプロパティ):IdPコネクタのセッションID(通常は「ASP.NET_SessionId」)を含むCookie名を保持する変数。
注記: 証明書を更新する場合は、IDプロバイダとOutSystemsのIdPコンポーネントの両方で更新するようにしてください。
IDプロバイダを構成する - 例
Azure AD / ADFS
Platform Server Release Jul.2019 CP2(2019年8月23日)以降では、Azure AD(Azure Active Directory)認証モードをUsersアプリケーションで直接使用することができ、「クレーム」の設定にAzure ADのデフォルト値がすでに入力されています。手順の詳細については、オンラインヘルプの「Azure AD認証を構成する」をご覧ください。
-
Azure Active Directoryポータルにサインインし、ギャラリーからOutSystems Azure ADアプリケーションを追加します。
-
[Enterprise applications]に移動します。
-
[New application]をクリックします。
-
OutSystems Azure ADを検索します。
-
アプリケーションを選択して[Add]をクリックします。
-
-
サインオン方式として[SAML]を選択します。
-
OutSystems Azure ADアプリケーションダッシュボードで、[Single sign-on]エントリをクリックします。
-
[SAML]を選択します。
-
-
SAMLによるシングルサインオンを設定します。
-
[Basic SAML Configuration]セクションの編集アイコンをクリックします。
-
必要な値を適切に設定します。
-
Identifier (Entity ID):
http://ご利用のサーバー/IdP/
-
Reply URL (Assertion Consumer Service URL):
https://ご利用のサーバー/IdP/SSO.aspx
-
- または、IdPコネクタのメタデータファイルをアップロードできます。
-
-
その後、セクション3と4で示した情報を使用してIdPコネクタを構成するか、Azure ADアプリケーションでダウンロードしたフェデレーションのメタデータXMLファイルをアップロードできます。
Okta
Platform Server Release Oct.2019(2019年10月3日)以降では、OKTA認証用の特定の構成がUsersアプリケーションに含まれています。手順の詳細については、オンラインヘルプの「OKTA認証を構成する」をご覧ください。
-
Oktaのトライアルアカウントを作成します。
-
OktaのWebサイトにアクセスし、会社のメールアドレスを使用してサインアップし、トライアルアカウントを作成します。
-
アカウントの詳細が記載されたメールが送信されます。
-
-
Oktaドメインにサインインします。
-
メールの説明に従って、Oktaドメインのホームページにアクセスします。
-
ユーザー名とパスワードを入力して、[Sign In]をクリックします。
-
-
OktaドメインにSAMLアプリケーションを追加します。
- 管理ダッシュボードにアクセスして、[Add Application]をクリックします。
- [Create New App]ボタンをクリックします。
- Webアプリケーション用のSAML連携を作成するために、[Web]と[SAML 2.0]を選択します。[Create]をクリックして続行します。
- App name(例:
OutSystems Okta
)を定義して、[Next]をクリックします。
-
連携で使用するSAML設定を構成します。
-
[Single sign on URL](SAMLレスポンスを処理するOutSystems環境のURL)を設定します。
http://ご利用のサーバー/IdP/SSO.aspx
-
[Audience URI (SP Entity ID)]を設定します。
http://ご利用のサーバー/IdP/SSO.aspx
-
[Show Advanced Settings]リンクをクリックして、その他の値を設定します。
-
Digest Algorithm:SHA1
-
Signature Algorithm:RSA-SHA1
-
Assertion Signature:Unsigned
-
[Next]をクリックすると、フィードバックのためにいくつかの情報が求められます。オプション[I'm a software vendor. I'd like to integrate my app with Okta]を選択し、[Finish]をクリックして構成を完了します。
-
最後に、[View Setup Instructions]をクリックしてIdPコネクタを構成するために必要なデータを取得します。
-
OneLogin
Platform Server Release Jul.2019 CP2(2019年8月23日)以降では、SAML 2.0認証をUsersアプリケーションで直接構成できます。手順の詳細については、オンラインヘルプの「SAML 2.0認証を構成する」をご覧ください。
-
無料のOneLoginアカウントを作成します。
-
管理コンソールにログインします。
-
[Apps]タブをクリックして、[Add App]ボタンをクリックします。
-
SAMLを検索して、[SAML Test Connector (IdP)]オプションを選択します。
-
アプリケーションのDisplay Nameを構成して、[Save]ボタンをクリックします。
-
[Configuration]タブをクリックして、以下のプロパティを構成します。
-
ACS (Consumer) URL Validator:SAMLレスポンスを処理するOutSystems環境のURL(
http://ご利用のサーバー/IdP/SSO.aspx
) -
ACS (Consumer) URL:SAMLレスポンスを処理するOutSystems環境のURL(
http://ご利用のサーバー/IdP/SSO.aspx
)
-
-
[SSO]タブをクリックして、以下のプロパティを構成します
- SAML Signature Algorithm:SHA-1
-
最後に、示された情報を使用してIdPコネクタを構成します。
PingOne
Platform Server Release Jul.2019 CP2(2019年8月23日)以降では、SAML 2.0認証をUsersアプリケーションで直接構成できます。手順の詳細については、オンラインヘルプの「SAML 2.0認証を構成する」をご覧ください。
-
無料のPing Identityアカウントを作成します。
-
管理コンソールにログインします。
-
[Applications]タブをクリックして、[Add Applications]ボタンをクリックします。
-
[New SAML Application]オプションを選択します。
-
アプリケーション名、説明、カテゴリを構成して、[Continue to Next Step]をクリックします。
-
[Application Configuration]で以下のプロパティを構成します。
-
Assertion Consumer Service (ACS):SAMLレスポンスを処理するOutSystems環境のURL(
http://ご利用のサーバー/IdP/SSO.aspx
) -
Entity ID:SAMLレスポンスを処理するOutSystems環境のURL(
http://ご利用のサーバー/IdP/SSO.aspx
) -
Signing Algorithm:RSA_SHA1
-
-
[Continue to Next Step]をクリックして、[Save & Publish]をクリックします。
-
最後に、示された情報を使用してIdPコネクタを構成します。