2017-04-18 15 views
0

私たちはJavaでsoapクライアントを実装しています(cxf wsdl2javaを使用)。以前のプロジェクトでは、認証はWS-SecurityまたはBasic HTTP Authenticationのいずれかに基づいていました。これらは両方ともSoapUIで簡単にテストでき、javaで実装できます。サーバーがADFS認証を使用するときにJava SOAPクライアントを実装する方法は?

ただし、この時点では、サーバーはリバースプロキシとして動作するWebアプリケーションプロキシと認証目的でADFS(Active Directory Federation Services)を使用します。私はこれが何を意味するのか分かりませんが、ブラウザでwsdlエンドポイントURLを開くと、オフィスログインページhttps://login.microsoftonline.com/のようなログインページにリダイレクトされます資格情報を入力します。

手動でログインすると、最後に?authToken = xxxが付加されたwsdlエンドポイントにリダイレクトされ、トークンが1時間続くと思います。私たちは、より標準的な認証を使用するようにプロバイダに依頼しようとしましたが、今のところこれが唯一のものです。私たちはこれにどのようにアプローチしますか?

SoapUIからのテストリクエストをしようとすると、応答としてログインページの完全なHTMLコードが取得されます。 SoapUIにフォームベースの認証オプションがありますが、ログインページには複数のアカウントタイプと複数のユーザー名/パスワードフィールドがあるため動作しません。テストの回避策は、手動でログインし、authTokenを使用することです。しかし、これをJava cxfクライアントでどのように自動化できますか?

ブラウザでのエンドポイントURLに接続する場合、これはURLが後のログインページにリダイレクトどのように見えるかです:

[ADFS seriverへのURL] /adfs/ls?version=1.0 &アクション= &サインイン領域=壷%3AAppProxy%3Acom & appRealm = a10037ed-ca1e-e711-9436-00215a9b01ac &にreturnurl = [WSDLエンドポイントURL] &クライアント要求-ID = 13A5B5A6-B574-0000-6FBA-A51374B5D201

答えて

1

あなたはすることができます」ログイン画面を使用してSOAPを使用してADFSで認証する。これは、ADFSはWS-FedまたはSAML-PまたはOpenID Connect(ADFS 4.0)のみをサポートするためです。

できることは、WS-Tustを使用してこれを行うことです。

WS-Fedは、2つのプロファイルをサポートしています。パッシブ(ブラウザのログイン画面)またはアクティブ(Webサービス/ WCF)。あなたは後者を使う必要があります。

ADFSで使用できるアクティブなプロファイルエンドポイントがいくつかあります。すべてがデフォルトで有効になっているわけではありませんので、有効にする必要があります。

+0

私はこれをプロバイダに提案します。ありがとうございます! –

関連する問題