メニューボタン
IBMi海外記事2015.07.22

ジョブ・ユーザー名と現行ジョブのユーザー

Patrick Botz 著

開発者の方が、他のユーザーよりはるかに頻繁にミスをすると思います。彼らは、ジョブ・ユーザー名はジョブを現在実行中のユーザー・プロファイルも表していると想定しています。これは現在も、過去においても常に根拠のない想定です。ジョブ・ユーザー名は単に、ジョブを当初開始したときのユーザー ID を表しているにすぎません。ある時点においてジョブを実行しているユーザー・プロファイル (つまり、現行ユーザー) はジョブ・ユーザーと同じである場合や、そうでない場合もあります。これは、ささいで害のないミスのように見えるでしょう。しかし、そうではない場合が多いのです。

過去のヒントや掲載では効果的で実装コストがかからず、最も重要な点として、管理コストがかからないアクセス制御環境を作成するセキュリティー・アーキテクチャーについて説明してきました。簡単に言えば、次のようなセキュリティー・アーキテクチャーをお勧めします。

  1. 管理者が初期アプリケーション・プログラムへのアクセスを制御する
  2. アプリケーションがビジネス機能へのユーザー・アクセスを制御する
  3. アプリケーションにより提供された許可されたビジネス機能を正常に実行するため、許可されたユーザーに必要な権限をアプリケーションが獲得するよう開発者が保証する

現行ユーザーではなくジョブ・ユーザーを使用すると、このアーキテクチャーで既存のアプリケーションを改造する際に、よりコストがかかる場合が少なくありません。これは、開発者が上記の項目 3 を達成するため OS により提供されている仕組みの多くが、現行ユーザーおよびグループ値を操作しているためです。システムは、ジョブ・ユーザー値を使用してオブジェクトの権限を確認することはありません。(これには例外が 1 つありますが、この話には影響しません。)

アプリケーションを実装する場合、ジョブ・ユーザーまたは現行ユーザーのいずれを使用する必要があるか判断する前に、どのようにセキュリティー・アーキテクチャーを実装するか検討する必要があります。ほとんどのケースで、実際には開発者には現行ユーザー値が必要です。ジョブ・ユーザーを使用したいという稀なケースもあるかもしれませんが、これは通常は、推奨されたセキュリティー・アーキテクチャーで実装されたアプリケーションでのみ発生します。

では、ジョブの現行ユーザーをどのように見つけるのでしょうか? 簡単です。ジョブ・ユーザーの取得に使用するのと同じツールを使用します。異なる値を参照するだけです。

CL では RTVJOBA コマンドで両方の値を取得します。USER パラメーターには Job ユーザーが含まれています。ほとんど全員がこれを使用します。CURUSER パラメーターには現行ユーザー値が含まれています。アプリケーションを改造する場合、変更は取るに足りません。既存の CL コードが、ジョブ・ユーザー値を取得すると想定してください。以下のようなコード・スニペットが CL プログラムに表示されます。

技術情報08

以下の変更をするだけで、正しいユーザー情報を使用できます。

技術情報09

RPG および他のプログラミング言語では、QUSRJOBI API は同じ値を返します。しかし、現行ユーザー値は、 JOBI0600 受信側のフォーマットでのみ戻されるという 1 点が違っており、これにより多少複雑になる場合があります。このフォーマットでは、JOBI0100 フォーマットよりパフォーマンス・ヒットが高くなります。この特定のアプリケーションのパフォーマンスが極めて重要な場合、変更を稼働させる前に、多少のパフォーマンス・テストを実施したいでしょう。

アプリケーションで必要な変更は、API への固有の呼び出しそれぞれに完全に依存します。ジョブを実行しているユーザーの名前を取得することが API を呼び出す唯一の理由である場合、フォーマット名とユーザー値のコピー元となるオフセットを変更しなければならないだけです。しかし、コードが API で戻された他の値を使用している場合、さらに変更が必要な場合があります。QUSRJOBI API に追加の呼び出しをして、現行ユーザーを取得しなければならない場合があります。QUSRJOBI API 資料のリンクはここをクリックしてください。

Botz & Associates の社長および CTO である Patrick の専門は、セキュリティー戦略、セキュリティー・ポリシー制約、パスワード管理、シングルサインオン (SSO)、業界および政府機関のコンプライアンス、バイオメトリクス。SSO stat! サービスのアーキテクトである。過去に IBM でリード・セキュリティー・アーキテクトとして従事し、IBM Lab Services セキュリティー・コンサルティング・チームを設立した。Pat への連絡はここからお願いします。

あわせて読みたい記事

PAGE TOP