Office365(標準SSL接続)外部Webサービスの問題 IE9 silverlight(C#) (Sharepoint sandbox サンドボックス)

Office365(標準SSL接続)外部Webサービスの問題 IE9 silverlight(C#) (Sharepoint sandbox サンドボックス)

Office365 (SSL接続)で外部Webサービスを使う場合はいくつか問題があります。

  1. 外部Webサービスが HTTP接続の場合
    IE7は 「セキュリティで保護されたWebページコンテンツのみ表示しますか?」でOKで正常に動作します。
    IE9は このメッセージを表示する場合と、メッセージを表示せずに無応答になる場合があります。
    –>その対応方法は(IEに設定必要なのでスマートではありません)
    [セキュリティ設定]にて[混在したコンテンツを表示する]の中から[有効にする]ば正常に処理されます。
  2. 外部サービスがHTTPS(SSL)の場合は正常に動作しますが、
    IISもしくは Apache(Tomcat+Axis2+Java)等でOpenSSL等で正式な証明書を設定していない場合は
    やはりIE9は無応答になる場合があります。(エラーの内容が「クロスドメイン~」とういいつもの内容なのでエラー特定ができないのでけっこうはまります。)

重要なことをメモしておきます

クライアントドメインポリシー

Webサービス(WebService )にclientaccesspolicy.xml を必ずWebServiceサイト直下のport=80におかないといけません。(SSLの場合は443でも見える必要があるか未確認)設置しないと以下のエラーがでます。

<エラー内容>
URI ‘http://xxxx.com/services/xxxx?wsdl’ への要求試行時にエラーが発生しました。これは、正しいクロスドメイン ポリシーを適用せずにクロスドメインでサービスにアクセスしようとしたことか、SOAP サービスには適していないポリシーが原因で発生した可能性があります。サービスの所有者に問い合わせて、クロスドメイン ポリシー ファイルを公開し、SOAP 関連の HTTP ヘッダーが送信されるようにしてもらう必要がある可能性もあります。このエラーは、Web サービス プロキシで InternalsVisibleToAttribute 属性を使わずに内部型を使用した場合にも発生することがあります。詳細については、内部例外を参照してください。

(http, https 対応しています。)

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
                <domain uri="http://*" />
                <domain uri="https://*" />
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

CentOS6.3+Apache(or IIS)+OpenSSL+Tomcat7+Axis2 でSSL通信の方法(from Office365+Silverlight)

これがないとApacheからTomcat7に(http)接続できません。

ProxyPass /ws/ ajp://localhost:8009/

これがないとApacheからTomcat7にSSL(https)接続できません。

<VirtualHost _default_:443>
     ~省略~
     ProxyPass /ws/ ajp://localhost:8010/
</VirtualHost>

これがないとApacheからSSL(https)でTomcat7に接続できません。port=8009はtomcatのshutdownのときにつかうようなので変更しない。(うまく停止できなくなる?)

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" scheme="https" secure="true" SSLEnabled="true" />

これがないとTomcat7からaixs2にssl接続できません。

    <transportReceiver name="https"
                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
    	<parameter name="port">8443</parameter>
	</transportReceiver>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です