ws-axis-user-ja mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hayakawa <b...@tkk.att.ne.jp>
Subject Re: cookie認証方法
Date Sun, 03 Sep 2006 14:28:07 GMT

木村さんへ

bodyです。

ご教授どうもありがとうございます。
当初の疑問は解決しました。

本日、Cookie実装のテストも完了し、
別のWebServiceライブラリまでも動作を確認できました。

このたびは、ありがとうございました。


> To: bodyさんへ
> 
>  木村です。
> 
> > 例えば、ロードバランシングによるサーバ分散への対応を考えています。
> > サーバより受け取ったCookieを使い続けることで、分散環境においても
> > 特定サーバにのみ向かうよう仕向けるわけです。
> > (複数メソッドの実行で1オペレーション完了となるようなWebService
> > です)
> 
>  上記例は、セッション管理が必要となるごく一般的な事例だと思います。
> 
> > この場合「特別な意味を持つ」ので、やはりすべきではないのでしょうか?
> 
>  そうではありません。
>  WebサービスのCookie値は、『業務ロジックとして意味を持たないIDのみに
> 限定すべきであって、Bodyさんの元々の質問にあったようにCookieに複数の
> 値を格納しようとしたり、その格納値に業務的な意味を持たせるような使い
> 方は、Webサービス的ではない』という意味です。前述のロードバランシング
> の例も、乱数などのユニークなセッションIDがCookie値に格納されるだけで
> 実現可能な訳です。
> 
> > また、axis間以外を考えた場合、Cookieによるセッション管理の動作は期待
> > するべきではないと考えてよいのでしょうか?
> > (例:Client axis / Server .Net)
> > (例:Client .Net / Server axis)とかです。
> 
>  恐らく、かなり古いバージョンのランタイムでなければ、期待とおりに動作
> すると思います。しかし、各種仕様としては、Cookieによるセッション管理が
> 必須項目でない以上、全てのクロスプラットフォームの相互接続性を保証する
> のは難しいとは思います。安心するためには、利用するランタイムを決定して
> 自ら動作検証する必要があります。
> 
> 宜しくお願いします。
> ---
> Toshi <toshi@apache.org>
> 
> On Wed, 30 Aug 2006, hayakawa wrote:
> 
> >
> > bodyです。
> >
> > 木村さんへ
> >
> > 返答ありがとうございます。
> > WS-Iにそういった記載がありますね。
> > その旨は理解しているつもりです。
> >
> >>  一番bodyさんが知りたい点は、WebブラウザでのCookieのように複数
> >> の意味ある値をWebサービスで送受信する方法だと思うのですが、それ
> >> はすべきではない、という事になります。Webサービスでのセッション
> >> 管理とは、(特別な意味を持たない乱数的な)ユニークなIDをサーバと
> >> クライアント間で送受信することにより、連続したWebサービス通信で
> >> あることを示す、というハンドリングを指します。
> >
> > 例えば、ロードバランシングによるサーバ分散への対応を考えています。
> > サーバより受け取ったCookieを使い続けることで、分散環境においても特定サー
> > バにのみ向かうよう仕向けるわけです。
> > (複数メソッドの実行で1オペレーション完了となるようなWebServiceです)
> >
> > この場合「特別な意味を持つ」ので、やはりすべきではないのでしょうか?
> >
> >
> > また、axis間以外を考えた場合、Cookieによるセッション管理の動作は期待する
> > べきではないと考えてよいのでしょうか?
> > (例:Client axis / Server .Net)
> > (例:Client .Net / Server axis)とかです。
> >
> >
> > -- 
> > hayakawa <body@tkk.att.ne.jp>
> >> To: bodyさん
> >>
> >>  木村です。
> >>
> >>  まず、「通常のWebブラウジング」と「Webサービス」でのCookieの
> >> 利用方法には違いがあります。Webブラウザでの動作や仕組みについて
> >> はご理解頂いているという前提として、「Webサービス」では
> >>
> >> ・Cookieを使ったセッション管理を試みても良いが、それが確実に
> >>  機能する保証はない
> >> ・Webサービスの正常動作のために、クライアントのCookie対応を
> >>  必須とすべきではない
> >> ・Cookieで転送される値が、クライアントにとって意味のある値を
> >>  利用すべきではない
> >>
> >> という考えがあります。これは、Webサービスの根本的な考え方として
> >> 意味のあるデータはSOAPメッセージの中でやり取りすべきであって、
> >> 特定のトランスポートプロトコル(HTTPなど)に依存すべきではない、
> >> という思想が強く影響しています。
> >>
> >>  Cookieは、HTTPプロトコルに蜜に依存している他、SOAPメッセージ
> >> の外側でデータ交換する仕組みであることから言って、Webサービス界
> >> では「異端」と言っても良いかも知れません。しかし、現実世界では
> >> Cookieを利用したセッション管理が最も普及していて、確実な手法で
> >> あるのも事実です。このため、AxisではCookieを利用したセッション
> >> 管理に対応しました。
> >>
> >>  セッション管理は、サーバ側とクライアント側双方が対応する必要
> >> がありますが、Axisでは以下の変更が必要です。
> >>
> >> ・サーバ側
> >>  WSDD内のSessionスコープパラメタにより、スコープを設定
> >>
> >> ・クライアント側
> >>  「service.setMaintainSession(true);」によりCookieを受付ける
> >>
> >>  この辺りは、オリジナルの@IT記事を改めて読み直して頂ければ詳細
> >> をご理解いただけるものと思います。
> >>
> >>  一番bodyさんが知りたい点は、WebブラウザでのCookieのように複数
> >> の意味ある値をWebサービスで送受信する方法だと思うのですが、それ
> >> はすべきではない、という事になります。Webサービスでのセッション
> >> 管理とは、(特別な意味を持たない乱数的な)ユニークなIDをサーバと
> >> クライアント間で送受信することにより、連続したWebサービス通信で
> >> あることを示す、というハンドリングを指します。
> >>
> >> 以上でご理解頂けたでしょうか?
> >> ---
> >> Toshi <toshi@apache.org>
> >>
> >> On Mon, 28 Aug 2006, hayakawa wrote:
> >>
> >>>
> >>> 木村さん
> >>>
> >>> bodyです。レスありがとうございます。
> >>> #とりあえずMLが機能していて助かりました。
> >>>
> >>>>  下記本文中で「Cookie認証」という言葉が用いられている
> >>>> のですが、何を意図しているのかよく分かりません。
> >>> 言葉足らずですみません。
> >>> Cookieを使ったセッションの管理です。
> >>>
> >>> @ITサイトからの引用ですが、
> >>> -----------------------------
> >>> セッションを利用できるようにするには、Webブラウザが持っている
> >>> 機能をWebサービス・クライアントにおいても実現することです。
> >>> いちいち記述することは大変面倒ですが、Axisには便利なAPIが用意
> >>> されているため、大変容易にセッションを利用することができます。
> >>>
> >>> Axisには「setMaintainSession()」メソッドが用意されています。
> >>> このメソッドはServiceインスタンスに対して実行することで、
> >>> Cookieを扱えるようにしてくれるものです。利用方法は、次のように
> >>> Webサービス・クライアントプログラムを変更するだけです。
> >>> -----------------------------
> >>> とあります。
> >>>
> >>> その回答として、
> >>>>> service.setMaintainSession(true);
> >>> をクライアントにて記述すればよい、との記載例なのですが、
> >>>
> >>> 例えば、
> >>> ・1サーバに対し1Cookieの保持なのか
> >>> ・Cookieの容量はどのくらいまで大丈夫なのか
> >>> などの疑問があります。
> >>>
> >>> このように色々懸念材料があるにも関わらず、
> >>> setterひとつで簡単に実装できてしまうの?ということです。
> >>>
> >>> とりあえず前提として、Cookieでのセッション管理は可能であると
> >>> いう認識でよいのでしょうか?
> >>>
> >>> 環境は、
> >>>
> >>> ◆Client
> >>> axis1.1
> >>> J2SE1.4
> >>>
> >>> ◆Server
> >>> WebSphere 5.1 or 6
> >>>
> >>> で行っています。
> >>> #現状Cookieセッション管理無しでWebServiceは動作しています。
> >>> #今手元にコードがないので、用意しておきます。
> >>>
> >>> よろしくお願いします。
> >>>
> >>> --
> >>> hayakawa <body@tkk.att.ne.jp>
> >>>
> >>>> To: bodyさん
> >>>>
> >>>>  はじめまして。
> >>>>  木村と申します。
> >>>>
> >>>>  下記本文中で「Cookie認証」という言葉が用いられている
> >>>> のですが、何を意図しているのかよく分かりません。
> >>>>
> >>>>  具体的にどのようなことを実現したいのかにつてもう少し
> >>>> 詳しく教えていただくことはできますでしょうか?
> >>>>
> >>>> よろしくお願いします。
> >>>> ---
> >>>> Toshi <toshi@apache.org>
> >>>>
> >>>> On Sat, 26 Aug 2006, hayakawa wrote:
> >>>>
> >>>>> はじめまして。bodyと申します。
> >>>>>
> >>>>> axis1.1を用いたWebサービスにおいて、Cookie認証の情報を探しています。
> >>>>>
> >>>>> http://www.atmarkit.co.jp/fjava/rensai2/wbsrvic05/wbsrvic05_3.html
> >>>>> 上記URLにおいて、axisのセッションについて書かれていますが、
> >>>>> このようにクライアントに、
> >>>>>
> >>>>> service.setMaintainSession(true);
> >>>>>
> >>>>> のコードを埋め込むだけで、認証が行われるのでしょうか?
> >>>>> (ClientにCookieを受け取ったり、維持するようなハンドリングは不要なのか?)
> >>>>>
> >>>>> また、これはサーバクライアント共にaxisを用いた場合にのみ保障されるもので、
> >>>>> 例えサーバ側からCookieが発行されていたとしても、サーバがaxis以外のエンジ
> >>>>> ンを使用している場合には動作しないものなのでしょうか?
> >>>>>
> >>>>>
> >>>>> 参考情報ありましたら、ご提供ください。
> >>>>>
> >>>>> --
> >>>>> <body@tkk.att.ne.jp>
> >>>>>
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: axis-user-ja-unsubscribe@ws.apache.org
> >>>>> For additional commands, e-mail: axis-user-ja-help@ws.apache.org
> >>>>>
> >>>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: axis-user-ja-unsubscribe@ws.apache.org
> >>>> For additional commands, e-mail: axis-user-ja-help@ws.apache.org
> >>>>
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: axis-user-ja-unsubscribe@ws.apache.org
> >>> For additional commands, e-mail: axis-user-ja-help@ws.apache.org
> >>>
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: axis-user-ja-unsubscribe@ws.apache.org
> >> For additional commands, e-mail: axis-user-ja-help@ws.apache.org
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-user-ja-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-user-ja-help@ws.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-ja-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-ja-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-ja-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-ja-help@ws.apache.org


Mime
View raw message