ポリシーの作成と使用
このトピックでは、InterSystems IRIS で WS-Policy サポートを使用する方法を説明します。WS-Policy により、使用する WS-Security ヘッダまたは必要な WS-Security ヘッダを指定できます。また、WS-Addressing ヘッダおよび MTOM の使用を指定することもできます ("Web サービスおよび Web クライアントの作成" を参照)。Web サービスまたは Web クライアントを直接編集するのではなく、個別のクラスでポリシーを作成します。ほとんどの場合、低レベルのプログラミングは必要ありません。
概要
InterSystems IRIS では、Web サービスまたは Web クライアントのポリシー (またはポリシーのコレクション) は、別々の構成クラス (%SOAP.ConfigurationOpens in a new tab のサブクラス) に含まれています。ポリシーは、クラスがコンパイルされたときに有効になります。
Web サービスの WSDL が既に定義されている場合は、構成クラスを生成できます。最初に Web サービスを作成する場合は、Web サービス/クライアント構成ウィザードを使用して、事前定義されたポリシーの選択および構成を行い、Web サービスに適用できます。クラスを手動で作成することもできます。
通常、コーディングの必要はありません。ただし、場合によってはその要素をポリシーにハードコードするのではなく、詳細をプログラムで指定してもかまいません。
構成クラスの影響
構成クラスをコンパイルすると、Web サービスまたはクライアントの以降の動作は次のような影響を受けます。
-
Web サービスまたはクライアントでは、ポリシーの詳細に従って、発信メッセージに追加のヘッダ要素が含まれます。
-
Web サービスまたはクライアントは、ポリシーに基づいて着信 SOAP メッセージを検証します。これには、必要に応じた着信メッセージの解読も含まれます。
-
Web サービスまたはクライアントは、オプションで、発信メッセージを必要に応じて暗号化します。
-
Web サービスでは、WSDL が自動的に影響を受けます。具体的には、<wsp:Policy> 要素が追加され、ネームスペース宣言に次の行が含まれるようになります。
xmlns:wsp="http://www.w3.org/ns/ws-policy"
構成クラスが複数のネームスペースにマップされている場合は、これらの各ネームスペースでコンパイルする必要があります。
WS-Security、WS-Addressing、および MTOM サポートとの関係
WS-Policy に対する InterSystems IRIS のサポートは、WS-Security、WS-Addressing、および MTOM に対する InterSystems IRIS のサポートに基づいています。以下の点に注意してください。
-
ポリシーにセキュリティ・ポリシーが含まれていない場合、InterSystems IRIS は、Web サービスまたは Web クライアントの SecurityOut プロパティを使用します (Web サービスまたは Web クライアントにセキュリティ・ヘッダ要素を手動で追加するには、別途説明しているように、SecurityOut プロパティに追加します)。
-
ポリシーにセキュリティ ポリシーが含まれている場合、InterSystems IRIS は、そのポリシーに関連する要素を除いて、Web サービスまたは Web クライアントの SecurityOut プロパティを無視します。
例えば、X.509 相互証明書セキュリティ・ポリシーを使用する場合、使用する InterSystems IRIS 資格情報セットをポリシー内で直接指定することも、%SYS.X509CredentialsOpens in a new tab のインスタンスを作成し、バイナリ・セキュリティ・トークンに格納して SecurityOut プロパティに追加することもできます。資格情報セットをポリシー内で直接指定しない場合、InterSystems IRIS は SecurityOut プロパティからバイナリ・セキュリティ・トークンを取得し、それを使用します。ただし、SecurityOut プロパティの他の要素はこのシナリオには適用されないため、InterSystems IRIS はそれらを無視します。
-
ポリシーで WS-Addressing を必要とする場合、InterSystems IRIS は WSADDRESSING クラス・パラメータを無視します。
ただし、AddressingOut プロパティが設定されていると、InterSystems IRIS は、指定の WS-Addressing ヘッダを使用します。それ以外の場合、WS-Addressing ヘッダの既定のセットが使用されます。
-
ポリシーで MTOM を必要とする場合、InterSystems IRIS は MTOMREQUIRED クラス・パラメータおよび MTOMRequired プロパティを無視します。
Web サービスと Web クライアントの関係
Web サービスにポリシーを添付する場合、すべてのクライアントは、そのポリシーに従うことが可能でなければなりません。Web サービス・ポリシーに代替ポリシーが何も含まれていない場合、クライアントには、Web サービスと同じポリシーが必要です。このとき、必要に応じて、サーバ側の証明書の代わりにクライアント側の証明書を使用します。
同様に、Web クライアントにポリシーを添付する場合、サービスは、そのポリシーに従うことが可能でなければなりません。
実際には、InterSystems IRIS でサービスとクライアントの両方を作成する場合、最も簡単な手順は次のとおりです。
-
Web サービス・クラスを作成します。
-
Web サービス構成クラスを、サービス・ポリシーと共に作成します。
-
SOAP ウィザードを使用して、クライアント構成クラスなどのクライアント・クラスを生成します。
これを実行した後、生成されたクライアント・クラスを検証し、必要に応じて変更を加えます。
通常、このためにラッパ・クラスも作成します。
これらのタスクについては、"Web サービスおよび Web クライアントの作成" を参照してください。
-
生成された構成クラスを検証し、必要に応じて変更を加えます。"生成されたポリシーの編集" を参照してください。
構成クラスの詳細は、"WS-Policy 構成クラスの詳細" を参照してください。
ポリシーの作成と添付
ポリシーを作成し、これを Web サービスまたは Web クライアントにアタッチするには、構成クラスを作成してコンパイルします。このクラスを作成するには、以下のような方法があります。
-
Web サービス/クライアント構成ウィザードの使用。このオプションは、Web サービスまたは Web クライアントのクラスが既に存在している場合に適用されます。
-
SOAP ウィザードの使用このオプションは、WSDL から開始する場合に適用されます。
ウィザードで構成クラスが生成されるのは、WSDL に WS-Policy 要素が含まれている場合のみです。
詳細は、"Web サービスおよび Web クライアントの作成" を参照してください。
-
GeneratePolicyFromWSDL() メソッドの使用によって、WSDL から構成クラスのみを生成します。このオプションは、Web サービスまたは Web クライアントのクラスが既に存在していて、これを再生成しない場合に適用されます。
-
既存の Web サービスまたは Web クライアントの構成クラスを手動で作成します。詳細は、次のトピックを参照してください。
WSDL からポリシー・クラスを生成する場合、次のセクションで説明するように、ポリシー・クラスの編集が必要になる場合があります。
Web サービス/クライアント構成ウィザードの使用法
スタジオの Web サービス/クライアント構成ウィザードを使用して、ポリシーを作成および添付することができます。このウィザードを使用する手順は次のとおりです。
-
[ファイル]→[新規作成] をクリックします。
-
[一般] タブで、[Web サービス/クライアント構成] をクリックします。
-
[OK] をクリックします。
スタジオにダイアログ・ボックスが表示されます。
-
ポリシーの適用対象とする Web サービスまたは Web クライアントを選択します。ウィザードには、コンパイルされるサービスおよびクライアントのみが一覧表示されます。
そのためには、必要に応じて [サービス] または [クライアント] ドロップダウン・メニューをクリックし、Web サービス・クラスまたは Web クライアント・クラスをクリックします。
-
[次へ] をクリックします。
スタジオに別のダイアログ・ボックスが表示されます。
-
オプションで、このダイアログ・ボックスの 2 番目のフィールドに表示されている構成クラス名を編集します。
Note:このクラスが既に存在する場合、ウィザードは、既存のコンテンツを無視し、それを上書きします。ウィザードの最後に到達しない限り、新しいクラスは作成されません。
既定の構成クラス名は、Web サービスまたはクライアント・クラス名に Config を追加したものです。
-
このページの残りの詳細は、"セキュリティ・ポリシーの説明" および "ポリシー・オプションのリファレンス" を参照してください。
-
[完了] をクリックします。
ウィザードにより、クラスが作成され、保存されます。
-
生成された構成クラスを確認します。構成クラスには、発信メッセージにタイムスタンプを追加するポリシー式も含まれています。
<sp:IncludeTimestamp/>
-
オプションで、構成クラスを編集し、再保存します。
例えば、代替ポリシーを追加したり、ウィザードによって作成されたポリシーを調整したりするには、この操作を行います。
クラスは、自動的にはコンパイルされません。また、ポリシーは、クラスがコンパイルされないと有効になりません。
構成クラスをコンパイルした後、それを無効にする場合は、XData ブロックをコメントアウトし、再コンパイルします。
WSDL からのポリシーの生成
クライアント・クラスは既にあるものの、対応する構成クラスがない場合があります。これは、WSDL からクライアント・クラスを生成し、その後 WS-Policy 情報を含むように WSDL が変更された場合などに発生します。このような場合、以下のように、%SOAP.WSDL.ReaderOpens in a new tab のユーティリティ・メソッドを使用して、構成クラスのみを生成できます。
-
%SOAP.WSDL.ReaderOpens in a new tab のインスタンスを作成します。
-
そのインスタンスのプロパティを規定どおりに設定します。%SOAP.WSDL.ReaderOpens in a new tab については、クラス・ドキュメントを参照してください。
Process() メソッドは使用しないでください。
-
インスタンスの GeneratePolicyFromWSDL() メソッドを呼び出します。
このメソッドには、以下のシグニチャがあります。
method GeneratePolicyFromWSDL(wsdlURL As %String, clientWebServiceClass As %String, policyConfigClass As %String) as %Status
以下はその説明です。
-
wsdlURL は、ポリシーを含む WSDL の URL です。WSDL が 1 つのポートのみを指定することが前提となっています。
-
clientWebServiceClass は、Web クライアント・クラスの名前です。この Web クライアントが指定の WSDL と一致することを確認する必要があります。
-
policyConfigClass は、作成される構成クラスの名前です。
-
Web サービスの WSDL が指定するポリシーを含む Web サービス・クライアントの構成クラスが作成 (または上書き) されます。WSDL にポリシーがない場合は、空の構成クラスが作成されます。インスタンスの CompileClasses プロパティが 1 の場合は、この構成クラスがコンパイルされます。
生成されたポリシーの編集
構成クラスを WSDL から生成し、WSDL が InterSystems IRIS のこのインスタンスの外側にある場合、構成クラスを編集して、使用する証明書および SSL/TLS 構成に関する情報を組み込む必要があります。または、この情報を実行時に指定できます。
また、[保護セッション (安全な通信) を確立する] を選択した場合は、安全な通信の存続時間のオプションを指定するポリシーを編集できます。
以下のテーブルに詳細を示します。
生成されたポリシーに含まれている要素 | 以下のことを実行します。 |
---|---|
<sp:HttpsToken> | クライアントに添付されたポリシーの場合、次のいずれかを実行します。
|
<sp:InitiatorToken> | クライアントに添付されたポリシーの場合、次のいずれかを実行します。
サービスに添付されたポリシーの場合、変更は必要ありません。 |
<sp:RecipientToken> | 以下のいずれかを行います。
|
<sp:SecureConversationToken> | 必要に応じて、"InterSystems 拡張属性の追加" の説明に従って、cfg:Lifetime 属性を追加します。既定の存続時間は 5 分です。 |
セキュリティ・ポリシーの説明
ウィザードの主な目的は、構成可能なセキュリティ・ポリシーを用意することです。[セキュリティ・ポリシー] の選択肢は、以下のとおりです。
-
セキュリティ・ポリシーなし
以下のセクションは、すべてのポリシー・オプションを示しています。
SSL/TLS 接続セキュリティ
このポリシーは、Web クライアントと Web サービス間で HTTP over SSL/TLS (HTTPS) を使用することを要求します。これにより、データ・ストリームの機密性と整合性、サーバの認証、およびクライアントのオプションの認証が提供されます。
SSL/TLS 経由のユーザ名認証
このポリシーは、クライアントに、(ユーザ名およびパスワードと共に) <UsernameToken> を送信することを要求します。また、HTTP over SSL/TLS (HTTPS) も要求します。これにより、データ・ストリームの機密性と整合性の維持、サーバの認証、およびクライアントのオプションの認証が可能となります。
実行時、Web クライアントは、既定のパスワード・タイプを使用してユーザ名トークンを作成および追加する必要があります。"ユーザ名トークンの追加" を参照してください。
SSL/TLS 経由の X.509 証明書認証
このポリシーは、クライアントに、署名済みの本文とタイムスタンプ、およびシグニチャを検証できる X.509 証明書と共にメッセージを送信することを要求します。WS-Addressing ヘッダが含まれている場合は、それも署名されます。また、HTTP over SSL/TLS (HTTPS) も要求します。これにより、データ・ストリームの機密性と整合性の維持、サーバの認証、およびクライアントのオプションの認証が可能となります。
対称鍵による認証
このポリシーは、メッセージの署名と暗号化の両方に使用する、1 つの共有秘密鍵を必要とします。この対称鍵は、実行時に生成され、サービスの証明書の公開鍵を使用して暗号化されます。
サービスは、認証のために、暗号化されたユーザ名および既定のパスワード・タイプのパスワードを必要に応じて要求することができます。このオプションを選択した場合、クライアントは、"ユーザ名トークンの追加" の説明に従って、実行時に <UsernameToken> を追加する必要があります。手動で <UsernameToken> を暗号化する必要はありません。InterSystems IRIS によって自動的に暗号化されます。
保証証明書を使用した対称鍵
このポリシーは、メッセージの署名と暗号化の両方に使用する、1 つの共有秘密鍵を必要とします。この対称鍵は、実行時に生成され、サービスの証明書の公開鍵を使用して暗号化されます。
サービスは、認証のために、暗号化されたユーザ名および既定のパスワード・タイプのパスワードを必要に応じて要求することができます。このオプションを選択した場合、クライアントは、"ユーザ名トークンの追加" の説明に従って、実行時に <UsernameToken> を追加する必要があります。手動で <UsernameToken> を暗号化する必要はありません。InterSystems IRIS によって自動的に暗号化されます。
このメカニズムは、クライアント保証証明書を使用して、メッセージ・シグニチャに関連付けられたトークンを拡張します。
X.509 相互証明書セキュリティ
このポリシーは、すべての相手に、メッセージ本文とタイムスタンプ、および WS-Addressing ヘッダ (含まれている場合) に署名することを要求します。また、オプションで、相手の証明書の公開鍵を使用してメッセージ本文を暗号化します。
サービスは、認証のために、暗号化されたユーザ名および既定のパスワード・タイプのパスワードを必要に応じて要求することができます。このオプションを選択した場合、クライアントは、"ユーザ名トークンの追加" の説明に従って、実行時に <UsernameToken> を追加する必要があります。手動で <UsernameToken> を暗号化する必要はありません。InterSystems IRIS によって自動的に暗号化されます。
SSL/TLS 経由の SAML 承認
このポリシーは、クライアントに、X.509 証明書または公開鍵を含む SAML トークンを送信することを要求します。対応する秘密鍵は、メッセージ本文とタイムスタンプ、および WS-Addressing ヘッダ (含まれている場合) に署名します。また、HTTP over SSL/TLS (HTTPS) も要求します。これにより、データ・ストリームの機密性と整合性の維持、サーバの認証、およびクライアントのオプションの認証が可能となります。
X.509 証明書を持つ SAML
このポリシーは、SAML トークンを送信することをクライアントに要求します。このポリシーはまた、メッセージ本文とタイムスタンプ、および WS-Addressing ヘッダ (含まれている場合) に署名します。また、オプションで、相手の証明書の公開鍵を使用してメッセージ本文を暗号化します。
ポリシー・オプションのリファレンス
事前定義のポリシーには、同じオプションが多数あります。以下のリストは、すべてのオプションの詳細をウィザードに表示される順序に従って示しています。
該当する場所 : すべてのセキュリティ・ポリシー。
このオプションを選択した場合、Web サービスおよび Web クライアントは、共通の秘密セキュリティ・コンテキストを確立して使用します。そして両者で同じ対称鍵を生成し、これを署名、暗号化、シグニチャ検証、および解読に使用できます。
該当する場所 : すべてのセキュリティ・ポリシー。
このオプションは、前のオプションも選択した場合にのみ適用されます。[派生キーを要求する] を選択した場合、元のセッション・キーではなく、派生キーがメッセージで使用されます。
該当する場所 : すべてのセキュリティ・ポリシー。
このオプションは、メッセージを送信する場合に WS-ReliableMessaging プロトコルを使用する必要があることを指定します。このプロトコルを使用すると、ソフトウェア・コンポーネント、システム、またはネットワークで障害が発生してもSOAP メッセージが確実に配信されます。
InterSystems IRIS Web サービスでパラメータを指定することで、WS-ReliableMessaging の動作を調整できます。"Web サービスで信頼性の高いメッセージングを処理する方法を制御する" を参照してください。
該当する場所 : SSL/TLS を使用するすべてのポリシー。クライアントのみに適用されます。
クライアントが使用する SSL/TLS 構成。
すべての適用可能なポリシーにおいて、ウィザード内で SSL/TLS 構成を選択するか (その選択をハードコード)、またはプログラムで選択し、Web サービスまたは Web クライアントに追加できます。"SSL/TLS 構成を使用するように指定する方法" を参照してください。
該当する場所 : SSL/TLS を使用するすべてのポリシー。
SSL/TLS 接続でクライアントが自らを認証することを要求する場合、オプションでこれを選択します。[SSL 構成] の説明を参照してください。
該当する場所 : SSL/TLS を使用しないすべてのポリシー。
(オプション) 相手の証明書の公開鍵を使用して SOAP 本文を暗号化します。
該当する場所 : SSL/TLS を使用しないすべてのポリシー。
(オプション) 署名の前にメッセージを暗号化することを要求します。このオプションを選択しない場合、メッセージは、署名されてから暗号化されます。
該当する場所 : SSL/TLS を使用しないすべてのポリシー。
(オプション) 関連付けられた秘密鍵がメッセージに署名する証明書を送信するバイナリ・セキュリティ・トークンにメッセージ・シグニチャを適用するよう要求します。
該当する場所 : SSL/TLS 経由の X.509 証明書認証。クライアントのみに適用されます。
メッセージに署名するときにクライアントが使用する InterSystems IRIS 資格情報セット。シグニチャは、関連付けられている証明書で秘密鍵を使用します。サブセクション "資格情報セット" を参照してください。
該当する場所 : 複数のポリシー。
(オプション) <UsernameToken> を含む暗号化要素を送信することをクライアントに要求します。
このオプションを選択すると、"ユーザ名トークンの追加" の説明に従って、実行時に <UsernameToken> を追加する必要があります。手動で <UsernameToken> を暗号化する必要はありません。InterSystems IRIS によって自動的に暗号化されます。
該当する場所 : 対称鍵を使用するポリシー。クライアントのみに適用されます。
対称鍵を生成するためにクライアントが使用する InterSystems IRIS 資格情報セット。これは、サービスの証明書である必要があります。対称鍵は、証明書の公開鍵を使用して生成されます。"資格情報セット" を参照してください。
該当する場所 : 保証証明書を使用した対称鍵。クライアントのみに適用されます。
保護トークンに署名するためにクライアントが使用する InterSystems IRIS 資格情報セット。これは、クライアントの証明書である必要があります。サブセクション "資格情報セット" を参照してください。
該当する場所 : X.509 相互証明書セキュリティおよび X.509 証明書を持つ SAML。クライアントのみに適用されます。
Web クライアントが使用する InterSystems IRIS 資格情報セット。クライアントは、メッセージの署名に、関連付けられている秘密鍵を使用し、イニシエータ・トークンをサービスに送信して、サービスを有効化し、シグニチャの検証と応答の暗号化を行います。サブセクション "資格情報セット" を参照してください。
該当する場所 : X.509 相互証明書セキュリティおよび X.509 証明書を持つ SAML。
Web サービスが使用する InterSystems IRIS 資格情報セット。クライアントは、受信者トークン内の証明書の公開鍵を使用して、発信メッセージ本文を暗号化します。サービスは、関連付けられた秘密鍵をメッセージの署名に使用します。サブセクション "資格情報セット" を参照してください。
該当する場所 : すべてのセキュリティ・ポリシー。
Web サーバおよび Web クライアントが使用するアルゴリズム・スイート。詳細は、"WS-SecurityPolicy 仕様Opens in a new tab" のセクション 6.1 を参照してください。
該当する場所 : すべてのセキュリティ・ポリシー。
(オプション) セキュリティ・ヘッダ要素の厳密なレイアウトを強制します。
該当する場所 : すべてのポリシー。
このオプションを選択すると、Web サービスまたは Web クライアントは、発信メッセージに WS-Addressing ヘッダ要素を含め、着信メッセージに WS-Addressing ヘッダ要素があると想定します。
[WS-Addressing 有効] を使用した場合、InterSystems IRIS は、WS-Addressing ヘッダ要素の既定セットを使用します。含まれる要素の詳細は、"WS-Addressing ヘッダ要素の追加と使用" を参照してください。
[WS-Addressing 有効] を選択しても、"WS-Addressing ヘッダ要素の追加と使用" の説明に従って、WS-Addressing ヘッダ要素を手動で作成し、これをアタッチできます。このようにした場合、Web サービスまたは Web クライアントは、既定のヘッダ要素ではなく作成したヘッダ要素を使用します。
該当する場所 : すべてのポリシー。
このオプションを選択すると、Web サービスまたは Web クライアントは、発信メッセージに MTOM パッケージを使用し、着信メッセージに MTOM パッケージがあると想定します。
資格情報セット
多くのポリシーにおいて、以下のように InterSystems IRIS 資格情報セットを選択できます。
-
[X.509 証明書] ドロップダウン・リストから資格情報セットを選択します。
-
証明書のフィールドの値を指定して、資格情報セットを選択します。そのためには、[フィールド] ドロップダウン・リストからフィールドを選択し、入力ボックスに値を入力します。
使用できるフィールドは次のとおりです。
-
Alias
-
SubjectKeyIdentifier
-
Thumbprint
-
SerialNumber
-
IssuerDN
-
IssuerName — IssuerDN フィールドの検索文字列として動作します。システムは、IssuerDN フィールドに指定の文字列が含まれている最初の資格情報セットを選択します (一方、IssuerDN を使用する場合は、正確に一致しなければなりません)。
-
SubjectDN
-
SubjectName — SubjectDN フィールドの検索文字列として動作します。システムは、SubjectDN フィールドに指定の文字列が含まれている最初の資格情報セットを選択します (一方、SubjectDN を使用する場合は、正確に一致しなければなりません)。
-
または、プログラムで資格情報セットを選択できます。"プログラムによる資格情報セットの取得" を参照してください。この場合、"実行時の証明書の追加" の説明に従って、証明書をバイナリ・セキュリティ・トークンでパッケージ化し、これを発信メッセージに追加する必要もあります。
実行時の証明書の追加
Web サービスまたは Web クライアントが、プログラムで証明書を選択して含める必要がある場合は、以下の手順を実行します。
-
"プログラムによる資格情報セットの取得" の説明に従って、%SYS.X509CredentialsOpens in a new tab のインスタンスを取得します。
以下はその例です。
set credset=##class(%SYS.X509Credentials).GetByAlias(alias,password)
または以下のようにします。
set credset=..SecurityIn.Signature.X509Credentials
-
この資格情報セットの証明書を含む %SOAP.Security.BinarySecurityTokenOpens in a new tab のインスタンスを作成します。以下はその例です。
set bst=##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
credentials は、前の手順で取得した資格情報セットです。
これにより、シリアル化された Base 64 のエンコード形式の証明書を保持する <BinarySecurityToken> 要素を表すオブジェクトが返されます。
-
Web クライアントまたは Web サービスの SecurityOut プロパティの AddSecurityElement() メソッドを呼び出します。このメソッドの引数として、前に作成したバイナリ・セキュリティ・トークンを使用します。以下はその例です。
do ..SecurityOut.AddSecurityElement(bst)
2 つのバイナリ・セキュリティ・トークン (暗号化用と署名用) が必要な場合があります。[署名の前に暗号化] オプションを選択したかどうかに応じて、これらを適切な順序で追加してください。ポリシーがメッセージを暗号化してからこれに署名する場合、暗号化に使用するバイナリ・セキュリティ・トークンを追加してから署名に使用するバイナリ・セキュリティ・トークンを追加してください。逆に、ポリシーが署名してから暗号化する場合は、署名に使用するバイナリ・セキュリティ・トークンを先にする必要があります。
以下に、Web サービスの Web メソッドの例を示します。
//get credentials
set x509alias = "something"
set pwd = "password"
set credset = ##class(%SYS.X509Credentials).GetByAlias(x509alias,pwd)
//get certificate and add it as binary security token
set cert = ##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
do ..SecurityOut.AddSecurityElement(cert)
Web クライアントの場合、通常はプロキシ・クライアントを編集しないため、コードは多少異なります。
set client=##class(proxyclient.classname).%New()
//get credentials
set x509alias = "something"
set pwd = "password"
set credset = ##class(%SYS.X509Credentials).GetByAlias(x509alias,pwd)
//get certificate and add it as binary security token
set cert = ##class(%SOAP.Security.BinarySecurityToken).CreateX509Token(credset)
do client.SecurityOut.AddSecurityElement(cert)
//invoke web method of client
実行時のポリシーの指定
InterSystems IRIS Web クライアントでは、実行時に使用するポリシーを指定できます。これにより、ポリシー構成クラスがオーバーライドされます。実行時にポリシーを指定するには、Web クライアント・インスタンスの PolicyConfiguration プロパティを設定します。この値は、以下の形式にする必要があります。
Configuration class name:Configuration name
ここで、Configuration class name は、このトピックで前述したように、ポリシー構成クラスの完全なパッケージおよびクラス名であり、Configuration name は、そのクラス内のポリシーの <configuration> 要素の name 属性です。
サポートされていないポリシーに対するコンパイル・エラーの抑制
既定では、構成クラスのコンパイル時に、InterSystems IRIS でサポートされていないポリシー式が構成に含まれていると、InterSystems IRIS はエラーを発行します。そのようなエラーを抑制するには、構成クラスで次のように設定します。
Parameter REPORTANYERROR=0;
SOAP ウィザードを使用して WSDL から Web クライアントまたは Web サービスを生成するときに、InterSystems IRIS によって構成クラスも生成される場合は、そのクラスにこのパラメータ設定が含まれます。
サポートされている代替ポリシーが 1 つあれば、サポートされていない代替ポリシーは無視できます。