2017-10-09 11 views
1

要求オブジェクトからSAML応答を取得し、そこからユーザープロファイル属性を抽出する必要があるカスタムWebアプリケーション(WAR)を開発しました。 WebSphere(サービスプロバイダ)以下のアプローチを実装しようとSSI中にTAIとACSがSAML応答を処理した後にSAML応答にアクセスする方法

に同じ展開前記:: - OneLogin(IDプロバイダ)SAMLレスポンスとリレーの状態 送信 - SAML応答は、ACSアプリケーション によって処理されるが - ACSアプリケーションはユーザをカスタムWebアプリケーション(IdPのRelayStateで設定)にリダイレクトします - このアプリケーションは要求からSAML応答オブジェクトを取得し、動的キャッシュにユーザプロファイル属性を設定し、ユーザをメインアプリケーションのホームページにリダイレクトします。

現在、ACSがカスタムWebアプリケーション(リレー・ステートに設定)にリダイレクトすると、SAML応答(WebSphere TAIおよびACSアプリケーションによって一度受信され、処理されます)は使用できないようです。 ACSアプリケーションのSAML応答を保存してカスタムWebアプリケーションに渡すことは可能ですか?

助けていただけたら助かりますか?

暖かいよろしく、 Ekansh

答えて

1

オリジナルのSamlResponseメッセージをアプリケーションで取得することはできません。ただし、アプリケーションからSAMLトークン(SAML XMLファイル)を取得することは可能です。通常、このSAMLトークンを使用して、SOAPセキュリティヘッダーまたはHttpヘッダーのいずれかでWebサービスコールを行うか、ダウンストリームサービスコール用の新しいSAMLトークンのSAMLトークンを交換するためのWS-Trust呼び出しを行います。 ブラウザリダイレクトではなく、Webサービスコール(JAX-WSまたはJAX-RS)を行うことはできますか? Webサービスコールが機能する場合は、そのサービスを有効にする手助けをすることができます。

+0

ありがとうございます。 Userが両端に存在する場合(IdPとSP)、SAMLトークンからSAML属性を抽出できます。しかし、SPエンドでユーザーが存在し、作成する必要があるシナリオはどうでしょうか。このようなシナリオでは、ACSがアクセスを許可されていない場合でも、SAMLトークンは存在しますか。 SAMLトークンにはユーザー固有の情報(例:ユーザー名、電子メールなど)が存在するため、そのようなシナリオでは新しいユーザーを即座に作成する必要があります。 –

+0

WebSphere SAML SPには2つの構成オプションがあります。デフォルトでは、ユーザーはSPに存在する必要はなく、サブジェクトは信頼できるSAMLトークンから作成されます。もう1つの選択肢は、ユーザーがSPにいなければならないということです。ユーザーがSPにいる必要があり、ユーザーがまだSPにいない場合は、件名を作成する前にユーザーアカウントを作成するためのSPIを提供します。ユーザー・アカウントを作成するには、com.ibm.wsspi.security.web.saml.NameIDMappingインターフェースを実装します。実装では、必要に応じてSAMLトークンからユーザーエントリを作成します。 TAI構成では、sso_1.sp.userMapImpl =を追加することによって、このSPIを構成するためにpropertyを使用します。 – Chunlong

+0

ありがとうございますChunlong。しかし、私はこれについての質問があります。現在WAS 8.0.0.4を使用しています。あなたが言及した "DEFAULT CONFIGURATION OPTION"は、 "sso_ .sp.idMap"ですか? –

0

保存およびSAML応答を通過するには無意味です。基本的には、定義されたプロトコルとして、ユーザがAuthenticated @ OneLoginになると、SAML応答のSAMLトークンがACSに返送されます。 ACSはSAMLトークンを検証し、ユーザーがさらに進めることを許可します。

ユーザーをカスタムWebアプリケーションにリダイレクトしてSAMLを使用する場合は、理想的にSAMLサービスプロバイダライブラリをアプリケーションに実装する必要があります。カスタムWebアプリケーションは別のSAMLクライアントとして機能し、 OneLogin。このケースでは、ACSへのログイン時にすでに認証自体を持っているため、このケースではOneLoginというIDプロバイダでSSOがオンになっている場合に、SSOのようなSSOを取得します。

+0

ありがとうございました。 Userが両端に存在する場合(IdPとSP)、SAMLトークンからSAML属性を抽出できます。しかし、SPエンドでユーザーが存在し、作成する必要があるシナリオはどうでしょうか。このようなシナリオでは、ACSがアクセスを許可されていない場合でも、SAMLトークンは存在しますか。このようなシナリオでは、ユーザー固有の情報(例:ユーザー名、電子メールなど)がSAMLトークンに存在するため、新しいユーザーをその場で作成する必要があります。 –

+0

あなたのIdPがユーザーを認証し、有効なSAMLトークンをACSに提供するようになりました。今では、ACSがユーザーをFly上で作成する必要があるかどうかを決定するか、彼に尋ねます管理者に連絡するか、彼に失敗を表示する。 SAMLにはこれで果たす役割はありません。私の前の入力が何らかの形であなたを助けてくれたと思うなら、それをAnswerとしてマークすることを忘れないでください。 –

+0

Thanks Soumen。デフォルトのWebsphere ACSアプリケーションは、ユーザーに権限がないとマークしているようです。したがって、私のアプリケーションでは、件名を取得しようとしているときに、件名(privateCredentials)からSAMLトークンのSet []を順番に選択します。空の配列[]を返しています。このシナリオでSAMLトークンを送信するように既定のACSを設定する方法はありますか。 –

関連する問題