セキュリティの問題のトラブルシューティング
このトピックでは、InterSystems IRIS で SOAP セキュリティに関する問題の原因を特定する際に役立つ情報を提供します。
セキュリティに関係のない問題については、"InterSystems IRIS での SOAP の問題のトラブルシューティング" を参照してください。
トラブルシューティングに必要な情報
SOAP の問題をトラブルシューティングするには、通常、以下の情報が必要です。
-
WSDL およびこれが参照するすべての外部ドキュメント。
-
(メッセージ関連の問題の場合) 何らかの形式のメッセージ・ロギングおよびトレース。以下のオプションがあります。
オプション SSL/TLS で使用可能かどうか HTTP ヘッダを表示するかどうか コメント InterSystems IRIS SOAP ログ はい いいえ セキュリティ・エラーの場合、このログは、SOAP フォルトに含まれるものよりも詳細を表示します。 Web ゲートウェイ・トレース はい はい MTOM (MIME 添付) を使用する SOAP メッセージの問題の場合、HTTP ヘッダを表示することは重要です。 サードパーティのトレース・ツール いいえ ツールに依存 トレース・ツールの中には、送信された実際のパケットなど、下位レベルの詳細を表示するものもあります。これらの情報は、トラブルシューティングの際に重要になる場合があります。 これらのオプションについては、"InterSystems IRIS での SOAP の問題のトラブルシューティング" を参照してください。
-
まれな状況として SOAP クライアントで HTTP 認証を使用する場合は、認証のログ記録を有効にすることができます。"ログイン資格情報の提供" を参照してください。
また、フォルトを正しく処理して最適な情報を受け取るようにすることは非常に有効です。"SOAP フォルトの処理" を参照してください。
考えられるエラー
このセクションでは、InterSystems IRIS Web サービスおよび Web クライアントで考えられるセキュリティ関連のエラーについて説明します。
-
InterSystems IRIS Web サービスまたは Web クライアントを生成したばかりの場合、まだ WS-Security ヘッダを認識するように構成されていないことがあります。この場合、Web メソッドを実行しようとすると、以下のような汎用エラーが発生します。
<ZSOAP>zInvokeClient+269^%SOAP.WebClient.1
以下を Web サービスまたは Web クライアントに追加して、再コンパイルします。
Parameter SECURITYIN="REQUIRE";
この汎用エラーは、Web メソッドを誤って呼び出すことによって発生する可能性もあります (例えば、Web メソッドに返り値がないときに返り値を参照した場合)。
この項目は、WS-Policy を使用している場合には適用されません。
-
Web メソッドを実行しようとすると、以下のようなセキュリティ・エラーが発生する場合もあります。
ERROR #6454: No supported policy alternative in configuration Policy.Client.Demo1SoapConfig:service
"セキュリティ・エラー発生時に確認する項目" を参照してください。
-
着信メッセージが検証に失敗する場合があります。この場合、SOAP ログにこのエラーが示されます。以下はその例です。
08/05/2011 14:40:11 ********************* Input to Web client with SOAP action = http://www.myapp.org/XMLEncr.DivideWS.Divide <?xml version='1.0' encoding='UTF-8' standalone='no' ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:s='http://www.w3.org/2001/XMLSchema' xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" > <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>wsse:FailedAuthentication</faultcode> <faultstring>The security token could not be authenticated or authorized</faultstring> <detail></detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
"セキュリティ・エラー発生時に確認する項目" を参照してください。
セキュリティ・エラー発生時に確認する項目
着信メッセージが検証に失敗した場合、または "サポートされている代替ポリシーがない" というエラーを InterSystems IRIS が発行した場合、以下の項目を確認すると役立ちます。
-
格納された InterSystems IRIS 資格情報セットを取得する場合、その名前が正しく入力されていることを確認します。
-
InterSystems IRIS 資格情報セットを取得した後、オブジェクトのタイプをチェックして、%SYS.X509CredentialsOpens in a new tab であることを確認します。
-
適切な証明書が使用されていることを確認します。
証明書を暗号化に使用する場合、メッセージの送信先のエンティティの証明書を使用します。暗号化は、この証明書の公開鍵を使用します。
証明書を署名に使用する場合、所有している証明書を使用し、関連付けられた秘密鍵を使用して署名します。この場合、秘密鍵をロード済みであることおよびその秘密鍵ファイルのパスワードが正しく指定されていることを確認します。
-
証明書が InterSystems IRIS で信頼されている認証機関によって署名されていることを確認します。
-
WS-Policy を使用している場合は必ず、生成された構成クラスを編集して、使用する InterSystems IRIS 資格情報セットを指定します。"生成されたポリシーの編集" を参照してください。
-
Web サービスが <UsernameToken> を要求する場合、InterSystems IRIS Web クライアントがこのトークンを送信していること、およびこのトークンに正しい情報が含まれていることを確認します。InterSystems IRIS は、送信する <UsernameToken> を自動的に指定できません。これは、実行時に行う必要があります。"タイムスタンプおよびユーザ名トークンの追加" を参照してください。
Web サービスまたは Web クライアントで必要なセキュリティ・ポリシーのうち、少なくとも 1 つが InterSystems IRIS でサポートされていることを確認します。"SOAP セキュリティ標準" を参照してください。
-
認証に失敗した場合、<UsernameToken> のユーザを特定し、そのユーザが属するロールを調べます。