AD に接続し、それに応じてユーザーを認証できるように Tomcat を構成したいと考えています。
さらに、クライアント資格情報を使用していくつかの Web サービス (この場合は共有ポイント) を呼び出したいと考えています。
これまでのところ、http://tomcat.apache.org/tomcat-7.0-doc/windows-auth-howto.htmlのチュートリアルで説明されているように、SPNEGO 認証を使用するように Tomcat を正常に構成できました。Tomcat の SPNEGO 認証を使用したことに注意してください (Source Forge や Waffle ではありません)。
物事をシンプルに保ち、Tomcat の実装をそのまま使用したかったので、Source Forge の実装は使用しませんでした。さらに、すべての認証と承認を Tomcat で処理する必要がありました。SPNEGO を認証方法として使用しWEB.XML
、Tomcat の JNDI レルムを承認に使用します。
また、これは Windows のみであるため、WAFFLE は使用していません。
CXF を Web サービス スタックとして使用しています。http://cxf.apache.org/docs/client-http-transport-included-ssl-support.html#ClientHTTPTransport%28includesSSLsupport%29-SpnegoAuthentication%28Kerberos%29の CXF ドキュメントによると、必要なことはすべてWeb サービス (私の場合は共有ポイント) で認証するには、次を使用します。
<conduit name="{http://example.com/}HelloWorldServicePort.http-conduit"
xmlns="http://cxf.apache.org/transports/http/configuration">
<authorization>
<AuthorizationType>Negotiate</AuthorizationType>
<Authorization>CXFClient</Authorization>
</authorization>
</conduit>
jaas.conf で CXFClient を構成します (私の場合、Tomcat のサーバー JAAS 構成が配置されている場所で、jass.conf
次のようになります。
CXFClient {
com.sun.security.auth.module.Krb5LoginModule required client=true useTicketCache=true debug=true;
};
com.sun.security.jgss.krb5.initiate {
com.sun.security.auth.module.Krb5LoginModule required
doNotPrompt=true
principal="HTTP/tomcatsrv.corporate.intra@CORPORATE.INTRA"
useKeyTab=true
keyTab="C:/Program Files/Apache/apache-tomcat-7.0.27/conf/tomcatsrv.keytab"
storeKey=true
debug=true;
};
com.sun.security.jgss.krb5.accept {
com.sun.security.auth.module.Krb5LoginModule required
doNotPrompt=true
principal="HTTP/tomcatsrv.corporate.intra@CORPORATE.INTRA"
useKeyTab=true
keyTab="C:/Program Files/Apache/apache-tomcat-7.0.27/conf/tomcatsrv.keytab"
storeKey=true
debug=true;
};
それでも、Web サービスを呼び出すとtomcatsrv.keytab
、クライアントのユーザー名 (duncan.attard など) ではなく、サービスのユーザー名 (AD および で構成された Tomcat のユーザー名) で呼び出されます。
私の質問は次のとおりです。クライアントのユーザー名を CXF に委任 (またはある種の偽装を使用) して、Share Point の Web サービスを呼び出したときに (たとえば、Copy.asmx を使用してファイルをアップロードしたい) 方法はありますか?の場合、ファイルは としてduncan.attard
ではなく としてアップロードされますtomcat.srv
。
どうもありがとう、あなたの助けは大歓迎です。