Adabas ユーティリティの認可

Adabas は、役割ベースのアクセス制御(RBAC)のコンセプトを使用して、Adabas ユーティリティの認可を実装します。

セキュリティ定義の範囲は、1 つのデータベース(モード ADABAS)に制限することも、インストールされているすべてのデータベースがあるマシン(モード INI)に制限することもできます。

詳細については、「Adabas ユーティリティの認可(モード ADABAS)」または「Adabas ユーティリティの認可(モード INI)」を参照してください。

このドキュメントでは、次のトピックについて説明します。


Adabas 役割ベースのアクセス制御

認可は、選択的なアクセス権限を表す役割をユーザーに割り当てる方法で、データベース上での Adabas ユーティリティの使用を制限する手段を提供します。

ローカルマシンへのアクセスに使用した資格情報で、ユーザーが識別されます。

Adabas ユーティリティは、セキュリティリポジトリのセキュリティ定義に対して、提供された資格情報をチェックします。セキュリティリポジトリは、コンフィグレーション時に選択されたモードによって異なります。詳細については、「コンフィグレーション」を参照してください。

資格情報に役割が割り当てられている場合は、データベースに要求された処理に対するアクセス権限が決定されます。アクセス権限が十分であれば、ユーザーはデータベースでユーティリティを実行できます。アクセス権限が不十分または欠落している場合は、認可が失敗し、ユーティリティの使用が拒否されます。

セキュリティリポジトリは、付与された権限を格納します。特定の処理の拒否はサポートしていません。

監査証跡には、Adabas ユーティリティの使用試行の成功と失敗の両方が記録されます。

現在のバージョンの場合:

  • Adabas ユーティリティは、認証チェックを実行しません。

  • サポートされている資格情報は、ローカルシステムの資格情報です。

  • 認可とは、ユーティリティと、処理が実行されるデータベースの "usage or no usage" を意味します。

  • 監査証跡はログファイルに書き込まれます。これは構成できます。

  • 認可機能は、次の Adabas ユーティリティでのみ使用できます:ADABCKADADBMADAELAADAFDUADAFRMADAOPRADAORDADARBAADARECADAREPADASCRADAULD

データモデル

Adabas 役割ベースのアクセス制御は、ユーザーの役割に基づいてデータベースアクセスを制限します。

特定の Adabas ユーティリティを実行する権限が役割に付与され、ユーザーは、割り当てられた役割を通じて Adabas ユーティリティの実行を許可されます。

Adabas RBAC は、オブジェクトタイプ Users、Roles、Actions、および Resources を認識します。Assignments と Privileges は、これらのエンティティ間の関係を表します。

User

ユーザー名。

Role

役割名グループのアクセス権限。

Action

Adabas ユーティリティ。

Resource

データベース ID です。現在のデータベースは DBID.CURRENT で表されます。

Assignment
  • 1 人のユーザーに複数の役割を割り当てることができます。

  • 1 つの役割を複数のユーザーに割り当てることができます。

Privilege
  • 1 つの役割に複数の権限を付与できます。

  • 特定の権限を複数の役割に付与できます。

アーキテクチャ

セキュリティライブラリは、セキュリティリポジトリに定義されているアクセス権限に対して、Adabas ユーティリティのアクセス要求を検証します。

graphics/auth_utils.png

認証

Adabas ユーティリティの認証では、ユーザー認証にログイン資格情報を使用します。

  • UNIX:ユーザー ID

  • Windows:ドメインおよびユーザー ID

認可プロセス

Adabas ユーティリティの認可では、RBAC セキュリティ定義を使用して、指定されたデータベース上での要求された処理を認可します。

セキュリティライブラリは、セキュリティリポジトリに定義されているアクセス権限に対して、アクセス要求を検証します。

一致するアクセス権限が見つかった場合、Adabas ユーティリティは、要求された処理の実行を許可されます。そうでない場合は、要求が拒否されます。

セキュリティインフラストラクチャ

必要なコンポーネントとコンフィグレーションファイルのインストールは必須です。

初期セットアップ

セキュリティインフラストラクチャは、Adabas ユーティリティに必要です。

インストール中に、以下のような初期セキュリティコンフィグレーションが作成されます。

  • 監査証跡が事前設定されます。

  • 制限のない役割ベースのセキュリティ定義の最小セットがインストールされます。

  • 認可はアクティブになりません。

コンフィグレーションファイル

このセクションでは、認可機能を設定する方法について説明します。

Adabas ユーティリティの認可のコンフィグレーションは、次のファイルに格納されます。

コンフィグレーションファイル 説明
adaauth.ini Adabas ユーティリティの認可の設定
adaaudit.ini 監査証跡の構成
adarbac.ini 役割ベースのアクセス制御の定義(MODE=INI)

これらのファイルは、ローカルマシンを設定し、すべてのデータベースに適用されます。また、マシン上の Adabas バージョン 6.5 以上の、すべての製品のインストールと製品バージョンに適用されます。

コンフィグレーションファイルは ASCII ファイルなので、標準のテキストエディタで編集できます。これらのファイルへのアクセスを制限する必要があります。セクション「セキュリティの考慮事項」を参照してください。ここでは、データベースのセキュリティ保護(「強化」)方法について説明しています。

コンフィグレーションファイルの場所は、プラットフォームによって異なります。詳細については、拡張オペレーションのドキュメントの「Adabas ユーティリティの承認のコンフィグレーション」を参照してください。

認可のコンフィグレーション

adaauth.ini コンフィグレーションファイルに含まれる情報は、そのマシンとすべてのデータベース、およびマシン上のバージョン 6.5 以上のすべての製品のインストールと製品バージョンに適用されます。

セクション 項目 説明
AUTHZ AUDIT_FILE 監査証跡コンフィグレーションファイルの場所
RBAC_FILE セキュリティ定義の場所(MODE=INI)
ACTION Adabas ユーティリティの認可機能を有効にします
MODE セキュリティ定義のソースを定義します

注意:
現時点では、このファイルによって、Adabas ユーティリティの認可機能の有効/無効が切り替えられます。デフォルト設定は "disabled" です(ACTION = NO)。この設定は、後続の製品バージョンで削除または変更される可能性があります。

このファイルの構文の詳細については、『拡張オペレーション』ドキュメントの「adaauth.ini」の説明を参照してください。

監査証跡のコンフィグレーション

adaaudit.ini コンフィグレーションファイルは、監査証跡のレイアウトと場所を定義します。

セクション 項目 説明
AUDIT LOG_FILE 監査証跡ログファイルの場所
FORMAT ログファイルエントリのレイアウトを決定します
  • TEXT(デフォルト)

  • CSV

SEPARATOR CSV レイアウトで使用される区切り文字

監査証跡ログファイルの要件は、次のとおりです。

  • 監査エントリがログファイルに追加されます。

  • そのため、Adabas ユーティリティのユーザーには、ログファイルへの WRITE アクセス権限が必要です。

  • ログファイルのサイズを監視し、必要に応じてバックアップまたは移動する必要があります。

注意:
Adabas ユーティリティの実行を許可されているすべてのユーザーは、LOG_FILE とそれが含まれているディレクトリの両方に対する READ/WRITE アクセス権限を持っている必要があります。

このファイルの構文の詳細については、『拡張オペレーション』ドキュメントの「adaaudit.ini」の説明を参照してください。

パフォーマンスの考慮事項

この機能がシステム全体のパフォーマンスに与える影響は最小限に抑えられています。

Adabas ユーティリティの承認(モード ADABAS)

adaauth.ini コンフィグレーションファイルで MODE=ADABAS が定義されている場合は、アクセス対象の Adabas データベースがセキュリティ定義のソースです。

セキュリティ定義

Adabas データベースには、セキュリティ定義を格納する RBAC システムファイルという固有のシステムファイルが含まれています。作成すると、初期定義の基本セットがロードされます。これらのセキュリティ定義は、アプリケーションのニーズに合わせて調整および拡張できます。

このモードの利点は、各認可要求がローカルで決定されることです。そのため、パフォーマンスへの影響は最小限に抑えられています。

このアプローチは、オフラインおよびオンラインでデータベースにアクセスするユーティリティの認可をサポートします。

初期状態

モード ADABAS では、初期セキュリティ定義により、すべての Adabas ユーティリティへの無制限アクセスが実装されます。

初期状態では、RBAC システムファイルによってユーザー PUBLIC と役割 PUBLIC が定義され、役割 PUBLIC がユーザー PUBLIC に割り当てられています。役割 PUBLIC には、すべての Adabas ユーティリティを実行する権限が付与されています。

セキュリティリポジトリにまだ認識されていないすべてのユーザーは、以前のバージョンの Adabas の場合と同様に、無制限にアクセスできるように、ユーザー PUBLIC として扱われます。

管理マニュアル

認可機能の設定と管理に必要なユーティリティは次のとおりです。

  • ADADBM - RBAC システムファイルの作成

  • ADAREP - RBAC システムファイルの問い合わせ

  • ADARBA - RBAC システムファイルの管理

ADADBM - RBAC システムファイルの作成

ADADBM の RBAC_FILE 機能を使用して、RBAC システムファイルを作成します。

注意:
RBAC_FILE 機能を使用するには、データベースがオフラインになっている必要があります。

ADAREP - RBAC システムファイルの問い合わせ

ADAREP の SUMMARY 機能を使用して、データベースシステムファイルを表示します。

注意:
RBAC システムファイルは、RBAC ファイルが定義されている場合にのみ表示されます。ファイルがロードされていない場合は表示されません。

ADARBA - RBAC システムファイルの管理

ADARBA の機能は、セキュリティ定義の作成、読み取り、更新、削除に使用します。

注意:
ADARBA を使用するには、データベースがオンラインになっている必要があります。

Adabas ユーティリティの認可(モード INI)

認可モード INI の場合、セキュリティ定義は、マシンおよびすべてのデータベースに適用されます。また、マシン上のバージョン 6.5 以上のすべての製品および製品バージョンに適用されます。

セキュリティ定義

adarbac.ini コンフィグレーションファイルは、役割を定義し、1 つ以上のオブジェクトで一連の処理を実行する権限を割り当てます。ファイル内のエントリ間の関係について、概要を以下に示します。

graphics/utils_conf_rbac.png

セクション 項目 説明
USER_ROLE user_name ユーザー/役割の割り当て
ROLE_PERMISSION role_name 役割/権限の割り当て
PERMISSIONS permission_name 処理/オブジェクトの割り当て
OBJECTS object_name データベース ID の割り当て
OPERATIONS operation_name ユーティリティの割り当て

このファイルの構文の詳細については、『拡張オペレーション』ドキュメントの「adarbac.ini」の説明を参照してください。

Adabas ユーティリティの認可の基礎

この基礎編では、次のトピックについて説明します。

前提条件

Adabas ユーティリティに認可を使用するには、セキュリティインフラストラクチャが必要です。初期のセキュリティコンフィグレーションがインストール時に設定され、この状態では監査証跡が事前設定され、認可はアクティブになっていません。

Adabas の認可では、ログイン資格情報が使用されます。これは、UNIX プラットフォームの場合はユーザー ID、Windows プラットフォームの場合はドメインとユーザー ID です。

Adabas ユーティリティ ADARBA は、RBAC セキュリティ定義の管理、ユーザーおよび役割定義の作成や削除、割り当ておよび特権の許可や取り消しに使用します。

構成

このセクションでは、Adabas RBAC システムファイルに格納されている RBAC セキュリティ定義を使用するように、Adabas ユーティリティの認可を設定する方法について説明します。

Start of instruction setAdabas ユーティリティの認可のコンフィグレーション方法

  1. セキュリティコンフィグレーションファイル adaauth.ini のセクション [AUTHZ] で次のように設定します。

    • ACTION=YES - Adabas の認可を有効にします

    • MODE=ADABAS - 認可モード ADABAS を使用します

    設定 RBAC_FILE は、このコンフィグレーションでは使用しません。

    この基礎編の場合は、設定 AUDIT_FILE は未変更のままにできます。

  2. デモデータベースを作成します。

    crdemodb 100
  3. データベース情報を問い合わせます。

    adarep dbid=100 summary

    まだ RBAC システムファイルが定義されていないので、MODE=ADABAS を設定した場合でも、この時点では Adabas ユーティリティ ADAREP の実行が許可されます。

  4. RBAC システムファイルを作成し、初期セキュリティ定義を読み込みます。

    adadbm db=100 rbac_file=<any_file_number>

    RBAC システムファイルが定義され、初期定義がロードされたので、この時点で Adabas ユーティリティ ADAREP の実行が許可されます。

  5. データベースを起動し、初期セキュリティ定義を表示します(RBAC 定義の管理は、データベースがオンラインの場合にのみサポートされます)。

    adarba db=100 list users

    初期ユーザー PUBLIC が表示されます。

    adarba db=100 list roles

    初期役割 PUBLIC が表示されます。

    adarba db=100 list assignments

    初期割り当て PUBLIC,PUBLIC が表示されます。

    デフォルトでは、ユーザー PUBLIC には役割 PUBLIC が付与され、ユーザー PUBLIC には役割 PUBLIC に付与されているすべての権限が割り当てられます。

認可

初期の RBAC セキュリティデータでは、ログインユーザー ID で、セキュリティが有効になっている Adabas ユーティリティの実行が許可されます。これは、RBAC システムに認識されていないユーザーは、デフォルトで役割 PUBLIC が付与されたユーザー PUBLIC として承認されることが理由です。

次の手順で、現在のログイン ID の権限を制限します。

Start of instruction set現在のログイン ID の権限を制限する方法

  1. 新しいユーザーを作成します。

    adarba db=100 create user=my-login-user

    ここで、my-login-user は現在のユーザー ID です。

  2. 新しい役割を作成します。

    adarba db=100 create role=newrole
  3. 新しいユーザーに新しい役割を付与します。

    adarba db=100 grant assignment role=newrole user= my-login-user
  4. 割り当てを確認します。

    adarba db=100 list assignments

    以下が表示されます。

    • PUBLIC,PUBLIC(初期割り当て)

    • PUBLIC,my-login-user(新しいユーザーのデフォルトの割り当て)

    • newrole,my-login-user(新しい割り当て)

  5. 制限された権限を新しい役割に付与します。

    adarba db=100 grant privilege action=ada.uti.rba  role=newrole
  6. 権限を確認します。

    adarba db=100 list privileges

    以下が表示されます。

    • すべてのデフォルト権限

    • ada.uti.rba,DBID.CURRENT,newrole

    ユーザー my-login-user には PUBLICnewrole の役割が割り当てられているので、以前のようにすべての処理を実行できます。

  7. ユーザー my-login-user のアクセス権限を ADARBA に制限します。

    adarba db=100 revoke assignment role=PUBLIC user= my-login-user
  8. ADARBA 以外の Adabas ユーティリティを実行します。

    adarep db=200 sum	

    これにより、「Security violation.Permission denied.(セキュリティ違反。権限が拒否されました。)」が返されます。

    アクセス権限を調整またはリストアする場合も、必要に応じて、ADARBA でそれらを定義できます。例を示します。

    adarba db=100 grant privilege action=ada.uti.rep  role=newrole

    または

    adarba db=100 grant assignment role=PUBLIC user= my-login-user