WCFでいろいろ悩んでいる件

うーん、要件にうまいこと合致する組み合わせがいまいち分からない。

  • セルフホストでやりたい
  • HTTPSは使わず、HTTPでやりたい
  • カスタム認証を使いたい(イントラ前提で、PC知識があまりないユーザを弾く程度の強度の認証よく、平文がHTTPに乗っても問題ない。独自のユーザ名を使いまわりたいのでWindows認証とかは使えない)
  • クライアントはJava

ってのをやっている。SOAP/WSDLであればJavaとか関係ないだろ、って思うので、問題は上の3つなのですが、認証を載っけようとするとHTTPS必須みたいになってしまうのがどうにも使いにくいですね(しかたないのか)。この要件の中には妥協できる部分もあるんでしょうが、トレードオフもあるわけで、どこを妥協するかが難しいのです。

いちおう抜け道がありそうだなあ。

http://webservices20.blogspot.jp/2008/11/introducing-wcf-clearusernamebinding.html

んー、「SOAP/WSDLであればJavaとか関係ないだろ」とは書いたものの、Axis2側もややこしそうな印象ですね。wsHttpBindingでやると、WS-Securityがかかるので、素のAxis2だと無理で、Rampartを使わないといけない、みたいなことですかね。WCF側はあきらめてHTTPSにしてオレオレ証明書でやっちゃうのはどうかとか思ったけどそれ以前に、ちょっと大袈裟なことをしないといけないわけですかね。JAX-WSはどうなってるの? うーん。そもそもWS-Securityとか今回のケースには大袈裟すぎる気もしなくないんですよねぇ。

というかWS-*シリーズは分からないことが多すぎますね。ネットの記事はけっこう古いものが多くて、最近どうなってるかが完全に抜け落ちてる感じです(まあ枯れつつあるわけですが)。Axis2ではwsHttpBindig繋がりませんよ、なんてコメントもたまにあるんですが、それが2008年だったりすると今は繋がるのか、とかが謎すぎるわけです。さらにライブラリもどれがスタンダードなのかさっぱり分からない。WSS4J とRampertとAxis2とCXFの関係は一体……これはサーバ側で実装する際に使うものなんですかね(ClientとServerで話が混ざっているところもネットでの検索をややこしくしている)

WCFで悩んでいるんじゃなくて、WebServiceで悩んでる感じです。