SAML 2.0 ベースのフェデレーテッド認証
IBM® Marketing Platform は、SAML 2.0 ベースの ID プロバイダー (IdP) を実装しています。 この IdP は、IBM Marketing Software 製品間のシングル・サインオン・フェデレーションや、IBM Marketing Software 製品とサード・パーティー・アプリケーションの間のシングル・サインオン・フェデレーションを可能にします。
フェデレーションとは、トラステッド環境内で連携する IdP とアプリケーションのグループであり、SAML 2.0 (Security Assertion Markup Language) ベースの規格を使用して相互にサービスを提供します。
フェデレーションのメンバーであるアプリケーションは、サービス・プロバイダー (SP) と呼ばれます。IdP サーバーと SP は、オンプレミスでもクラウドでもホストできます。
SAML 2.0 フェデレーションでは、シングル・サインオンにさまざまな認証メカニズムを使用できます。例えば、ある SP でそのアプリケーションの認証メカニズム (企業内、OAuth、OpenId、SAML、Kerberos など) を使用して認証されたユーザーは、フェデレーテッド・シングル・サインオンを使用して他の SP にもアクセスできます (それらのアプリケーションが同じフェデレーションに属し、ユーザーが適切にマップされている場合)。
IdP サーバーは、ユーザー・マッピングに基づいてトークンを作成、検証、または削除します。サポート対象のデータベース・タイプ用にデータ・アクセス・オブジェクトが実装され、IdP サーバーに組み込まれています。
管理者が SP 間でユーザー ID をマップすると、マップされたユーザーは、シングル・サインオン・アクセスを利用できるようになります。例えば、SP_A と SP_B が両方ともフェデレーションのメンバーであるとします。User1 は SP_A のアカウントであり、User2 は SP_B のアカウントです。User1 アカウントは、フェデレーション内で User2 アカウントにマップされています。User1 の資格情報で SP_A にログインした場合、ユーザーは SP_B へのシングル・サインオン・アクセスが可能です。また、User2 の資格情報で SP_B にログインした場合は、SP_A へのシングル・サインオン・アクセスが可能です。
図
次の図は、フェデレーションを示しています。
IBM 実装のコンポーネント
IBM が実装する SAML 2.0 ベースのフェデレーテッド・シングル・サインオンは、以下のコンポーネントで構成されています。
これらのコンポーネントは、Marketing Platform インストール済み環境の tools/lib ディレクトリーにあります。
- SAML 2.0 ベースの IdP サーバー (WAR ファイルとして配信) idp-server.war
- クライアント・ファサード: idp-client.jar
IdP クライアント・ファサードは、セキュリティー・トークンを処理する API を使用して Java™ で実装します。これは JAR ファイルとして配信します。API の Javadoc 資料は Marketing Platform Javadoc に含まれています。
IdP クライアント・ファサードにより、Java SP は、迅速に IdP サーバーと統合してフェデレーションの一部になることができます。
サポートされるユース・ケース
現在の実装では、SP はセキュリティー・トークンを処理して、SP 間でシングル・サインオン認証を確立できます。
新しい SAML トークンの生成
この実装では、シングル・サインオン認証要求を開始したユーザーのために新しい SAML トークンを生成できます。このユーザーは IdP サーバーでマップされている必要があります。IdP サーバーは、トラステッド・パーティーの資格情報とユーザー・マッピングに基づいて新しいセキュリティー・トークンを作成し、SAML 2.0 アサーションを使用してそのセキュリティー・トークンを発行します。
例えば、IdP サーバーで SP_A の User1 が SP_B の User2 にマップされている場合、User1 が SP_B リソースにアクセスしようとすると、IdP サーバーはトラステッド・パーティーとして User1 のセキュリティー・トークンを生成します。
既存の SAML トークンの検証
この実装では、別の SP からユーザーのアクセス要求を受け取った SP が提示した既存の SAML トークンを検証できます。SP は、まず、IdP サーバーと連携してセキュリティー・トークンとクライアント・マッピングを検証し、自身のドメイン内のマップされたユーザーを識別します。
例えば、SP_A が User1 のために SP_B リソースにアクセスしようとして IdP セキュリティー・トークンを提示すると、SP_B はこのトークンを IdP サーバーに渡します。トークンが有効で User1 が SP_B ユーザーにマップされていれば、IdP サーバーは SP_B ドメイン内の SP_B ユーザーを解決して、アサーションを返します。
既存の SAML トークンの削除
この実装では、ユーザーがシステムからログアウトしたときや、アクティブでないためにセッションがタイムアウトになったときに、SP ユーザーの既存の SAML トークンを削除できます。IdP サーバーは、ログアウト要求を受け取ると、トラステッド・パーティーの資格情報とユーザー・マッピングに基づいてトークンを削除し、最終アクセスのタイム・スタンプをリセットします。ユーザーのマッピングが削除されることはありません。
制限
現在の実装は、以下のユース・ケースをサポートしていません。
- ユーザー・インターフェースまたは API を介して SP ユーザー間の新しいユーザー・マッピングを作成する
- ユーザー・インターフェースまたは API を介して SP ユーザー間の既存のユーザー・マッピングを更新する
- ユーザー・インターフェースまたは API を介して SP ユーザー間の既存のユーザー・マッピングを削除する
フェデレーテッド認証とパーティション
IBM Marketing Software 環境に複数のパーティションがある場合は、SAML 2.0 ベースのフェデレーテッド認証をパーティションごとに別々にセットアップできます。これを実装するには、 ページの IBM Marketing Platform | セキュリティー | フェデレーテッド認証 (Federated Authentication) | パーティション | パーティション[n] カテゴリーでパーティションごとに新しいプロパティー・セットを作成する必要があります。