高度なカスタマイズ > Info*Engine ユーザーガイド > Web サービスフレームワーク > セキュリティ要件について > セキュリティポリシー
  
セキュリティポリシー
Web サービスを展開する前に、サービスのセキュリティを確保する方法を決定する必要があります。サポートされているすべてのセキュリティポリシーは以下のとおりです。
証明書を使用した SAML 送信者証明
このメカニズムは、整合性と機密性を確保するための相互証明書と、認証のための SAML 送信者保証トークンを使用して、メッセージを保護します。
このセキュリティポリシーを使用すると、SOAP クライアントは、サーバーがリクエストを実行するときに使用するユーザー名を示す名前識別子が含まれている SAML Subject (SAML Assertion 内) を指定します。この場合、クライアントとサーバーがそれぞれのキーストアとトラストストアのコンテンツを使用して信頼関係を確立するため、メッセージのペイロードは署名付きで暗号化されます。
この状況では、サーバーは、リクエストを処理する前に、指定されたユーザー名が有効であることのみを確認します。
このポリシーでは、クライアントがサーバーのキーストアとトラストストアに対応するキーストアとトラストストアを持っている必要があります。さらに、サーバーが信頼できるユーザー名を含んでいる SAML Assertion を指定するコールバックハンドラが Java クライアントに必要です。
* 
このメカニズムを使用する場合は、クライアントが SOAP リクエストに関連付けられているユーザー名を証明することを理解しておくことが非常に重要です。SOAP クライアントは、実質的に、1 人または複数のユーザーになりすまします。そのために、対応するパスワードを指定する必要はありません。このメカニズムは、クライアントアプリケーションがユーザーを適切に認証していることが確実であり、キーストアおよびトラストストアのコンフィギュレーションにおける証明書の交換を使用してそのクライアントも信頼することに問題がないと考えられる、SSO (シングルサインオン) タイプのシナリオでのみ適切です。
対称キーを使用したユーザー名認証
対称キーを使用したユーザー名認証のメカニズムは、SOAP 操作を保護して整合性と機密性の両方を確保します。対称キー暗号は、メッセージの署名と暗号化の両方に使用される単一の共有秘密キーに依存しています。通常、対称キーはパブリックキー暗号よりも高速です。
このメカニズムでは、クライアントは独自の証明書またはキーを所有しませんが、そのユーザー名とパスワードを、認証に使用されるために送信します。クライアントとサーバーは秘密キーを共有します。この共有されている対称キーは、実行時に生成され、サービスの証明書を使用して暗号化されます。クライアントは、サーバーの証明書のエイリアスを識別することにより、トラストストアでエイリアスを指定する必要があります。
この状況では、サーバーは、指定されたユーザー名を、指定された対応するパスワードを使用して認証します。
このポリシーでは、クライアントがサーバーのコンフィギュレーションに対応するトラストストアを持っている必要があります。さらに、サーバーが確認できるようにリクエストとともに送信するユーザー名とパスワードを提供するためのコールバックハンドラが Java クライアントに必要です。このメカニズムの例については、対称キーを使用したユーザー名認証の例を参照してください。
SSL 経由の X.509 証明書による認証
このセキュリティポリシーでは、機密性を確保するためには SSL (https) が使用され、ユーザーを認証するためには X.509 証明書が使用されます。ユーザーの証明書はサーバーによって信頼されている必要があり、Windchill で検証されるユーザー名は証明書から抽出されます。デフォルトでは、ユーザー名は証明書の件名 (参加者から先行する CN= を削除したもの) から抽出されます。証明書と Windchill ユーザー名の基本的なマッピングだけでは十分ではない可能性があるため、ユーザー名を抽出するために使用されるロジックを設定することができます。以下を使用して、com.ptc.jws.security.SubjectToUidHandler インタフェースを実装し、サーブレットの実装を設定することができます。
wt.property com.ptc.jws.security.x509SSL.<サーブレット名>.SubjectToUidHandlerClass
これは、ユーザーが使用する実装を指定します。
プロパティ名に含まれている <サーブレット名> は、SubjectToUidHandler 実装が使用される対象のサーブレットを示します。
* 
SSL によって保護されているサービスに対して Java クライアントを作成するときは、サービスの WSDL の https URL を javax.xml.ws.Service コンストラクタ引数に対して java.net.URL のインスタントして指定する必要があります。HTTP サーバーの SSL 証明書は、証明機関によって署名されるか、クライアントの <JAVA_HOME>/jre/lib/security/jssecacerts 証明書ストアに手動でインポートされる必要があります。