LXXII. 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 にあります。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが 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_PRINCIPAL long プリンシパルの有効期限を Kerberos タイムスタンプで指定します。
KADM5_PRINC_EXPIRE_TIME long プリンシパルの有効期限を Kerberos タイムスタンプで指定します。
KADM5_LAST_PW_CHANGE long プリンシパルのパスワードが最後に変更された時刻。
KADM5_PW_EXPIRATION long プリンシパルの現在のパスワードの有効期限を Kerberos タイムスタンプで指定します。
KADM5_MAX_LIFE long このプリンシパルに発行された Kerberos チケットの最大の生存時間。
KADM5_MAX_RLIFE long このプリンシパルに発行された Kerberos チケットの最大の 更新可能生存時間。
KADM5_MOD_NAME string 最後にこのプリンシパルを変更した Kerberos プリンシパルの名前。
KADM5_MOD_TIME long このプリンシパルの最終更新時刻を Kerberos タイムスタンプ形式で指定します。
KADM5_KVNO long プリンシパルの現在のキーのバージョン。
KADM5_POLICY string このプリンシパルを制御するポリシーの名前。
KADM5_CLEARPOLICY long 新しいプリンシパルの「デフォルトの」ポリシーには 標準手続きが関連付けられます。 KADM5_CLEARPOLICY は、この挙動を抑制します。
KADM5_LAST_SUCCESS long 最後に AS_REQ が成功したときの KDC 時刻。
KADM5_LAST_FAILED long 最後に AS_REQ が失敗したときの KDC 時刻。
KADM5_FAIL_AUTH_COUNT long AS_REQ が連続して失敗した数。
KADM5_RANDKEY long プリンシパルに対してランダムなパスワードを生成します。 パラメータ password は無視されます。
KADM5_ATTRIBUTES long KDC が使用する属性のビットフィールド。

この例では、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 プリンシパルを、指定したパラメータで変更する