0

私は現在、さまざまな ESB 製品を評価しています (実際、今はミュールに焦点を当てています)。ユース ケースは、単純な HTTP サービス、OpenGIS Web マッピング サービス WMS をプロキシすることです。

以下は、自由に公開された WMS サービスの例です。

  • 「GetCapablities」リクエストのサービスに関する XML メタデータで応答します (http://www.wms.nrw.de/wms/uebersicht_nrw2?REQUEST=GetCapabilities&VERSION=1.1.1&SERVICE=WMS)。
  • 「GetMap」リクエストのマップを含む画像データで応答します (http://www.wms.nrw.de/wms/uebersicht_nrw2?REQUEST=GetMap&VERSION=1.1.1&SERVICE=WMS&LAYERS=Uebersicht&SRS=EPSG:31466&FORMAT=image/png&BBOX =2538900,5656400,2619500,5777000&幅=200&高さ=200&スタイル=&)

どちらもデータをバイト配列として返しますが、これは私が扱っている問題である可能性があります。

Mule ESB を介してプロキシできるようになったら、次のようにセキュリティ機能を追加したいと考えています。

  • HTTP 基本認証とダイジェスト認証
  • TLS クライアント証明書による認証
  • XACML ポリシー実施ポイントの実装
  • 監査サービスに関する使用統計を提供し、それにいくつかの QoS とスロットリングを実装します。

しかし、基本的にプロキシ自体は私が望むようには機能していません。これが私がこれまでに得たものです。最初に、inbound-address にセキュリティ プロバイダーを追加するフローでプロキシしようとしました。しかし、リクエストは送信アドレスに到達していないようで、応答は空です。

<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:pattern="http://www.mulesoft.org/schema/mule/pattern" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mule-ss="http://www.mulesoft.org/schema/mule/spring-security" xmlns:ss="http://www.springframework.org/schema/security" version="CE-3.2.1" xsi:schemaLocation="...cut..."
<mule-ss:security-manager>  
    <mule-ss:delegate-security-provider name="memory-provider" delegate-ref="authenticationManager"/> 
</mule-ss:security-manager>
<spring:beans>
    <ss:authentication-manager alias="authenticationManager">  
        <ss:authentication-provider> 
            <ss:user-service id="userService"> 
                <ss:user name="ross" password="ross" authorities="ROLE_ADMIN"/>  
                <ss:user name="anon" password="anon" authorities="ROLE_ANON"/> 
            </ss:user-service> 
        </ss:authentication-provider> 
    </ss:authentication-manager>
</spring:beans>
<http:connector name="NoSessionConnector">
    <service-overrides sessionHandler="org.mule.session.NullSessionHandler" />
</http:connector>
<flow name="wfsFlow1" doc:name="wfsFlow1" processingStrategy="synchronous">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="wms" responseTimeout="10000000" doc:name="Geoserver OWS">
        <mule-ss:http-security-filter realm="mule-realm"/>
    </http:inbound-endpoint>
    <http:outbound-endpoint exchange-pattern="request-response" method="GET" address="http://www.wms.nrw.de/wms#[header:INBOUND:http.request]" encoding="UTF-8" disableTransportTransformer="true" responseTimeout="1000000" doc:name="Geoserver OWS"/>
</flow>
</mule>

問題は、バイト配列としての WMS サービスからの応答だと思います。バイト配列から文字列または html 応答に変換するために、さまざまな応答トランスフォーマーを試しましたが、うまくいきませんでした。

ブリッジ パターンも試してみましたが、期待どおりに GET 操作でパラメーターを提供していませんでしたが、基になる WMS サービスによって受け入れられない POST によって提供されていました。

私のユースケースはかなり単純だと思いますが、4週間前から実装しようとしています。これらのベンダーが提供するすべてのサンプル チュートリアルを実行しましたが、どのような種類の認証でも単純な HTTP パラメータ サービスをセットアップできませんでした。

これらの製品を使用した経験のある人はいますか? または、これらの製品のいずれかで認証を使用して HTTP プロキシを設定する方法について、いくつかの具体的な質問に答えていただければ幸いです。

どうもありがとう!

4

2 に答える 2

2

デビッド、あなたの要求は長いです。開始できるように、WSO2 ESB に関するいくつかのポイントを明確にします。

  1. WSO2 ESB は、SOAP だけでなく、さまざまなトランスポートとコンテンツ タイプをサポートします。REST とおそらく JSON のサポートに最も関心があるかもしれません。ここここのリンクが役立つ場合があります。

  2. すべての WSO2 サーバーは、外部ディレクトリ サービスにプラグインできます。手順については、ここをクリックしてください

  3. すべての要件をカバーできます。この場所にある包括的なサンプルに目を通し、ESB でできることの感触をつかむことができます。ここここここここ、およびここの記事も紹介します。これらの記事は、要件に役立つでしょう。

お役に立てれば。

于 2012-05-16T18:41:08.333 に答える
0

Muleは、ユーザーの認証と承認に関してSpringSecurityに依存しています。

セキュリティの構成は、Muleでセキュリティを処理するためのドキュメントのエントリポイントです。Spring Securityの構成、コンポーネント(HTTPブリッジなど)の保護、およびLDAP認証に関する情報があります。

デフォルトでは、Muleはアウトバウンドリクエストを実行するときにセッションをHTTPヘッダーにシリアル化します。これは、リモートサイトが信頼されていない場合のセキュリティの問題になるだけでなく、シリアル化されたセッションで生成されるHTTPヘッダーが大きすぎるため、不正な要求の問題につながる可能性があります。

セキュリティコンテキストが存在する場合、ミュールセッションがかなり大きくなることを知っていると、これが問題を引き起こす可能性があります。そして実際、あなたの設定を使用して、私は私のリモートテストサイトから悪いリクエストエラーを受け取っていました!そこで、MuleがHTTP経由でリクエストを送信しないようにするために、以下を追加しました。

<http:connector name="NoSessionConnector">
    <service-overrides sessionHandler="org.mule.session.NullSessionHandler" />
</http:connector>

またdisableTransportTransformer="true"、これも問題を引き起こす可能性があるため、構成から削除しました。

于 2012-05-14T16:14:22.583 に答える