z/OS UNIX は、pthread_security_np() 呼び出し可能サービスを 提供しており、C ランタイム・ライブラリーを介してサポートしています。これを使用すると、無許可の マルチスレッド・アプリケーションが、カーネルと RACF® が仲介および制御を行う形で、RACF セキュリティー環境を 作成および削除できるようになります。マルチスレッド・アプリケーションは、スレッドのセキュリティー環境をカスタマイズでき、サーバーのものとは異なる RACF 識別の下で実行できます。 そのサービスを使用するサーバーを許可しなければなりません。
無許可 という用語は、APF 許可ではなく、監視プログラム状態やシステム・ストレージ保護キーでは実行されないアプリケーションを指します。
pthread_security_np() サービスを使用するサーバーは、スレッドの RACF 識別を カスタマイズすることができます。 このサーバーは、クライアントの要求を処理するスレッドを開始します。このサーバーが、 クライアントの RACF 識別によって、 クライアントのために開始したスレッドをカスタマイズする場合、RACF 保護リソースへのリソース・アクセスの決定は、すべて、 そのクライアントの RACF 識別と許可を使用して行われます。
サーバーに置く信頼に応じて、サーバーの RACF 識別およびクライアント の RACF 識別の両方を、z/OS におけるリソース・アクセス管理の決定で使用するか否かを 強制するオプションを使用できます。
サーバー内のクライアントのスレッドによって アクセスされる、z/OS リソース (データ・セットなど) と z/OS UNIX リソース (UNIX ファイルなど) に対して 許可されるアクセスのタイプは、クライアントの RACF 識別によって決まります。
クライアント/サーバー・アプリケーションの設計とインプリメンテーションによっては、クライアントがサーバーに認証子を与えることが必要になる場合があります。
例えば、クライアントがサーバーに対して ID を証明するために、パスワード、パスワード・フレーズや RACF パスチケットなどの代用パスワードをそのサーバーに与えるよう求めるプロンプトがクライアントに対して出されることがあります。RACF パスワード、パスワード・フレーズやパスチケットが pthread_security_np() サービスのオプションとして指定されており、そのパスワード、パスワード・フレーズやパスチケットがクライアントのユーザー ID について有効である場合は、アクセス制御のレンダリングにおいてはクライアントの RACF ユーザーID だけが使用されます。サーバーによって作成される、このタスク・レベルの セキュリティー環境のことを認証クライアント・セキュリティー環境と 呼びます。 クライアントはサーバーを十分信頼しており、RACF パスワード、パスワード・フレーズやパスチケットをサーバーに提供できるので、サーバーはそのクライアントの代理として処理を行えます。
この能力によって、サーバーがそのクライアントのなかの 1 つ の代わりとして動作するときに、どのユーザー ID として動作できるか、およびどのリソースにアクセスできるかを、決定することができます。
追加のセキュリティー検査用に、リソースにアクセスするクライアントと、クライアントに代わってリソースにアクセスするサーバーを監査するために、2 つの監査レコードを作成できるでしょう。
この追加のセキュリティー検査をインプリメントする場合は、サーバーに関連した識別を、 クライアントの代わりにサーバーがアクセスするリソースを保護するリソース・プロファイルに対して 許可する必要が生じることがあります。