そのまんま!

LXXIV. KADM5

導入

このパッケージは、Kerberos V (ケルベロス バージョン 5) 管理サーバへのアクセス機能を提供します。 これにより、Kerberos V のプリンシパルやポリシーの 作成・変更・削除が可能となります。

Kerberos についての詳細な情報は、http://web.mit.edu/kerberos/www/ で得られます。

Kerberos および KADM5 についてのドキュメントは、http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html にあります。

リソース型

この拡張モジュールでは KADM5 ハンドルを定義しています。これは kadm5_init_with_password() が返すものです。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。

属性フラグ用の定数

関数 kadm5_create_principal()kadm5_modify_principal() および kadm5_modify_principal() では、ビットを立てることで 特別な属性を指定することができます。以下のような定数が定義されています。

表 1. KDC が使用する属性定数

定数
KRB5_KDB_DISALLOW_POSTDATED
KRB5_KDB_DISALLOW_FORWARDABLE
KRB5_KDB_DISALLOW_TGT_BASED
KRB5_KDB_DISALLOW_RENEWABLE
KRB5_KDB_DISALLOW_PROXIABLE
KRB5_KDB_DISALLOW_DUP_SKEY
KRB5_KDB_DISALLOW_ALL_TIX
KRB5_KDB_REQUIRES_PRE_AUTH
KRB5_KDB_REQUIRES_HW_AUTH
KRB5_KDB_REQUIRES_PWCHANGE
KRB5_KDB_DISALLOW_SVR
KRB5_KDB_PWCHANGE_SERVER
KRB5_KDB_SUPPORT_DESMD5
KRB5_KDB_NEW_PRINC

オプション用の定数

関数 kadm5_create_principal()kadm5_modify_principal() および kadm5_get_principal() では、プリンシパルの オプションを連想配列形式で指定したり関数の返り値として 受け取ったりできます。連想配列のキーは、以下で定義されている 文字列定数となります。

表 2. プリンシパルを作成/変更/取得する際のオプション

定数説明
KADM5_PRINCIPALlongプリンシパルの有効期限を Kerberos タイムスタンプで指定します。
KADM5_PRINC_EXPIRE_TIMElongプリンシパルの有効期限を Kerberos タイムスタンプで指定します。
KADM5_LAST_PW_CHANGElongプリンシパルのパスワードが最後に変更された時刻。
KADM5_PW_EXPIRATIONlong プリンシパルの現在のパスワードの有効期限を Kerberos タイムスタンプで指定します。
KADM5_MAX_LIFElong このプリンシパルに発行された Kerberos チケットの最大の生存時間。
KADM5_MAX_RLIFElong このプリンシパルに発行された Kerberos チケットの最大の 更新可能生存時間。
KADM5_MOD_NAMEstring 最後にこのプリンシパルを変更した Kerberos プリンシパルの名前。
KADM5_MOD_TIMElong このプリンシパルの最終更新時刻を Kerberos タイムスタンプ形式で指定します。
KADM5_KVNOlongプリンシパルの現在のキーのバージョン。
KADM5_POLICYstringこのプリンシパルを制御するポリシーの名前。
KADM5_CLEARPOLICYlong 新しいプリンシパルの「デフォルトの」ポリシーには 標準手続きが関連付けられます。 KADM5_CLEARPOLICY は、この挙動を抑制します。
KADM5_LAST_SUCCESSlong最後に AS_REQ が成功したときの KDC 時刻。
KADM5_LAST_FAILEDlong最後に AS_REQ が失敗したときの KDC 時刻。
KADM5_FAIL_AUTH_COUNTlongAS_REQ が連続して失敗した数。
KADM5_RANDKEYlong プリンシパルに対してランダムなパスワードを生成します。 パラメータ password は無視されます。
KADM5_ATTRIBUTESlongKDC が使用する属性のビットフィールド。

この例では、KADM5 データベースに対して 接続・問い合わせ・結果 principal の表示・切断 を行います。

例 1. KADM5 拡張モジュールの概要

<?php

  $handle
= kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

  print
"<h1>get_principals</h1>\n";
  
$principals = kadm5_get_principals($handle);
  for(
$i=0; $i<count($principals); $i++)
      print
"$principals[$i]<br>\n";

  print
"<h1>get_policies</h1>\n";
  
$policies = kadm5_get_policies($handle);
  for(
$i=0; $i<count($policies); $i++)
      print
"$policies[$i]<br>\n";

  print
"<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

  
$options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );
  
$keys = array_keys($options);
  for(
$i=0; $i<count($keys); $i++) {
    
$value = $options[$keys[$i]];
    print
"$keys[$i]: $value<br>\n";
  }

  
$options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  
kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

  
kadm5_destroy($handle);
?>

問合せ先

この拡張モジュールに対するコメントがあったり、バグフィックスや 機能拡張のパッチを作成された場合、あるいは開発に参加したいなどの 場合は holger.burbach@gonicus.de までメールをください。このプロジェクトのホームページは http://oss.gonicus.de/project/?group_id=7 です。

目次
kadm5_chpass_principal -- プリンシパルのパスワードを変更する
kadm5_create_principal -- 指定したパラメータで、kerberos のプリンシパルを作成する
kadm5_delete_principal -- kerberos プリンシパルを削除する
kadm5_destroy -- 管理サーバへの接続を閉じ、関連するすべてのリソースを開放する
kadm5_flush --  Kerberos データベースに対するすべての変更を取り消し、Kerberos 管理サーバとの接続はオープンしたままにする
kadm5_get_policies -- Kerberos データベースから、すべてのポリシーを取得する
kadm5_get_principal -- Kerberos データベースから、プリンシパルのエントリを取得する
kadm5_get_principals -- Kerberos データベースから、すべてのプリンシパルを取得する
kadm5_init_with_password --  KADM5 ライブラリへの接続をオープンし、必要なステータス情報を初期化する
kadm5_modify_principal -- kerberos プリンシパルを、指定したパラメータで変更する