PHP マニュアル
前のページ |  | 次のページ

# CXXIV. Radius

# 導入

このパッケージは、FreeBSD の libradius をもとにしたものです。 この PECL モジュールは、Radius 認証 (RFC 2865) および Radius 課金 (RFC 2866) を完全にサポートします。 このパッケージは、Unix (FreeBSD および Linux でテストしました) および Windows で使用可能です。

> 注意: libradius に関する正確な説明はここ にあります。設定ファイルについての詳細な説明は ここです。

# インストール手順

どうやってインストールするの?

- tar パッケージを (通常は php4/ext に) 展開する

- radius-x.x の名前を radius に変更する

- php4 ディレクトリで ./buildconf を実行する

- ./configure --enable-radius を実行する

- make; make install

あるいは、もし .so 形式にしたければ

- tar パッケージを展開する

- radius-x.x ディレクトリで phpize を実行する

- radius-x.x ディレクトリで ./configure を実行する

- make; make install

Windows の場合は、 http://snaps.php.net/ から `php_radius.dll` をダウンロードして使用することを推奨します。 PECL スナップショットのページ(使用する PHP のバージョンに応じて以下の適切なレポジトリを 選択してください)からこのバンドルされていない PECL エクステンションを入手することができます。 : PECL for PHP 4.3.x, PECL for PHP 5.0.x または PECL Unstable。

# 定義済み定数

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

`RADIUS_ACCESS_REQUEST` ()

  認証のリクエスト

`RADIUS_ACCESS_ACCEPT` ()

  アクセスが許可されました

`RADIUS_ACCESS_REJECT` ()

  アクセスが拒否されました

`RADIUS_ACCOUNTING_REQUEST` ()

  課金のリクエスト

`RADIUS_ACCOUNTING_RESPONSE` ()

  課金のレスポンス

`RADIUS_ACCESS_CHALLENGE` ()

  アクセスチャレンジ

`RADIUS_USER_NAME` (string)

  ユーザ名

`RADIUS_USER_PASSWORD` (string)

  パスワード

`RADIUS_CHAP_PASSWORD` (string)

  Chap パスワード。 chappass = md5(ident + plaintextpass + challenge)

`RADIUS_NAS_IP_ADDRESS` (string)

  NAS IP アドレス

`RADIUS_NAS_PORT` (int)

  NAS ポート

`RADIUS_SERVICE_TYPE` (int)

  サービスの型、以下のいずれか

  `RADIUS_LOGIN`
  `RADIUS_FRAMED`
  `RADIUS_CALLBACK_LOGIN`
  `RADIUS_CALLBACK_FRAMED`
  `RADIUS_OUTBOUND`
  `RADIUS_ADMINISTRATIVE`
  `RADIUS_NAS_PROMPT`
  `RADIUS_AUTHENTICATE_ONLY`
  `RADIUS_CALLBACK_NAS_PROMPT`

`RADIUS_FRAMED_PROTOCOL` (int)

  フレームのプロトコル、以下のいずれか

  `RADIUS_PPP`
  `RADIUS_SLIP`
  `RADIUS_ARAP`
  `RADIUS_GANDALF`
  `RADIUS_XYLOGICS`

`RADIUS_FRAMED_IP_ADDRESS` (string)

  IP アドレス

`RADIUS_FRAMED_IP_NETMASK` (string)

  ネットマスク

`RADIUS_FRAMED_ROUTING` (int)

  ルーティング

`RADIUS_FILTER_ID` (string)

  フィルタ ID

`RADIUS_FRAMED_MTU` (int)

  MTU

`RADIUS_FRAMED_COMPRESSION` (int)

  圧縮、以下のいずれか

  `RADIUS_COMP_NONE`
  `RADIUS_COMP_VJ`
  `RADIUS_COMP_IPXHDR`

`RADIUS_LOGIN_IP_HOST` (string)

  ログイン IP ホスト

`RADIUS_LOGIN_SERVICE` (int)

  ログインサービス

`RADIUS_LOGIN_TCP_PORT` (int)

  ログイン TCP ポート

`RADIUS_REPLY_MESSAGE` (string)

  応答メッセージ

`RADIUS_CALLBACK_NUMBER` (string)

  コールバック番号

`RADIUS_CALLBACK_ID` (string)

  コールバック ID

`RADIUS_FRAMED_ROUTE` (string)

  フレームのルート

`RADIUS_FRAMED_IPX_NETWORK` (string)

  フレームの IPX ネットワーク

`RADIUS_STATE` (string)

  状態

`RADIUS_CLASS` (int)

  クラス

`RADIUS_VENDOR_SPECIFIC` (int)

  ベンダ固有の属性

`RADIUS_SESSION_TIMEOUT` (int)

  セッションタイムアウト

`RADIUS_IDLE_TIMEOUT` (int)

  アイドルタイムアウト

`RADIUS_TERMINATION_ACTION` (int)

  停止アクション

`RADIUS_CALLED_STATION_ID` (int)

  呼び出し先ステーション ID

`RADIUS_CALLING_STATION_ID` (string)

  呼び出し元ステーション ID

`RADIUS_NAS_IDENTIFIER` (int)

  NAS ID

`RADIUS_PROXY_STATE` (int)

  Proxy の状態

`RADIUS_LOGIN_LAT_SERVICE` (int)

  ログイン LAT サービス

`RADIUS_LOGIN_LAT_NODE` (int)

  ログイン LAT ノード

`RADIUS_LOGIN_LAT_GROUP` (int)

  ログイン LAT グループ

`RADIUS_FRAMED_APPLETALK_LINK` (int)

  フレームの Appletalk リンク

`RADIUS_FRAMED_APPLETALK_NETWORK` (int)

  フレームの Appletalk ネットワーク

`RADIUS_FRAMED_APPLETALK_ZONE` (int)

  フレームの Appletalk ゾーン

`RADIUS_CHAP_CHALLENGE` (string)

  チャレンジ

`RADIUS_NAS_PORT_TYPE` (int)

  NAS ポート型、以下のいずれか

  `RADIUS_ASYNC`
  `RADIUS_SYNC`
  `RADIUS_ISDN_SYNC`
  `RADIUS_ISDN_ASYNC_V120`
  `RADIUS_ISDN_ASYNC_V110`
  `RADIUS_VIRTUAL`
  `RADIUS_PIAFS`
  `RADIUS_HDLC_CLEAR_CHANNEL`
  `RADIUS_X_25`
  `RADIUS_X_75`
  `RADIUS_G_3_FAX`
  `RADIUS_SDSL`
  `RADIUS_ADSL_CAP`
  `RADIUS_ADSL_DMT`
  `RADIUS_IDSL`
  `RADIUS_ETHERNET`
  `RADIUS_XDSL`
  `RADIUS_CABLE`
  `RADIUS_WIRELESS_OTHER`
  `RADIUS_WIRELESS_IEEE_802_11`

`RADIUS_PORT_LIMIT` (int)

  ポートの限界

`RADIUS_LOGIN_LAT_PORT` (int)

  ログイン LAT ポート

`RADIUS_CONNECT_INFO` (string)

  接続の情報

`RADIUS_ACCT_STATUS_TYPE` (int)

  課金状態の型、以下のいずれか

  `RADIUS_START`
  `RADIUS_STOP`
  `RADIUS_ACCOUNTING_ON`
  `RADIUS_ACCOUNTING_OFF`

`RADIUS_ACCT_DELAY_TIME` (int)

  課金の遅延時間

`RADIUS_ACCT_INPUT_OCTETS` (int)

  課金の入力バイト数

`RADIUS_ACCT_OUTPUT_OCTETS` (int)

  課金の出力バイト数

`RADIUS_ACCT_SESSION_ID` (int)

  課金のセッション ID

`RADIUS_ACCT_AUTHENTIC` (int)

  課金認証、以下のいずれか

  `RADIUS_AUTH_RADIUS`
  `RADIUS_AUTH_LOCAL`
  `RADIUS_AUTH_REMOTE`

`RADIUS_ACCT_SESSION_TIME` (int)

  課金のセッション時間

`RADIUS_ACCT_INPUT_PACKETS` (int)

  課金の入力パケット

`RADIUS_ACCT_OUTPUT_PACKETS` (int)

  課金の出力パケット

`RADIUS_ACCT_TERMINATE_CAUSE` (int)

  課金終了の原因、以下のいずれか

  `RADIUS_TERM_USER_REQUEST`
  `RADIUS_TERM_LOST_CARRIER`
  `RADIUS_TERM_LOST_SERVICE`
  `RADIUS_TERM_IDLE_TIMEOUT`
  `RADIUS_TERM_SESSION_TIMEOUT`
  `RADIUS_TERM_ADMIN_RESET`
  `RADIUS_TERM_ADMIN_REBOOT`
  `RADIUS_TERM_PORT_ERROR`
  `RADIUS_TERM_NAS_ERROR`
  `RADIUS_TERM_NAS_REQUEST`
  `RADIUS_TERM_NAS_REBOOT`
  `RADIUS_TERM_PORT_UNNEEDED`
  `RADIUS_TERM_PORT_PREEMPTED`
  `RADIUS_TERM_PORT_SUSPENDED`
  `RADIUS_TERM_SERVICE_UNAVAILABLE`
  `RADIUS_TERM_CALLBACK`
  `RADIUS_TERM_USER_ERROR`
  `RADIUS_TERM_HOST_REQUEST`

`RADIUS_ACCT_MULTI_SESSION_ID` (string)

  課金のマルチセッション ID

`RADIUS_ACCT_LINK_COUNT` (int)

  課金のリンク数

`RADIUS_VENDOR_MICROSOFT` (int)

  Microsoft 固有のベンダ属性 (RFC 2548)、 以下のいずれか

  `RADIUS_MICROSOFT_MS_CHAP_RESPONSE`
  `RADIUS_MICROSOFT_MS_CHAP_ERROR`
  `RADIUS_MICROSOFT_MS_CHAP_PW_1`
  `RADIUS_MICROSOFT_MS_CHAP_PW_2`
  `RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW`
  `RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW`
  `RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY`
  `RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES`
  `RADIUS_MICROSOFT_MS_RAS_VENDOR`
  `RADIUS_MICROSOFT_MS_CHAP_DOMAIN`
  `RADIUS_MICROSOFT_MS_CHAP_CHALLENGE`
  `RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS`
  `RADIUS_MICROSOFT_MS_BAP_USAGE`
  `RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD`
  `RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT`
  `RADIUS_MICROSOFT_MS_MPPE_SEND_KEY`
  `RADIUS_MICROSOFT_MS_MPPE_RECV_KEY`
  `RADIUS_MICROSOFT_MS_RAS_VERSION`
  `RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD`
  `RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD`
  `RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON`
  `RADIUS_MICROSOFT_MS_FILTER`
  `RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE`
  `RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE`
  `RADIUS_MICROSOFT_MS_CHAP2_RESPONSE`
  `RADIUS_MICROSOFT_MS_CHAP2_SUCCESS`
  `RADIUS_MICROSOFT_MS_CHAP2_PW`
  `RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER`
  `RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER`
  `RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER`
  `RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER`
  `RADIUS_MICROSOFT_MS_ARAP_CHALLENGE`

# クイックスタート

どのように使用するの?

- radius リソースを取得する

- ライブラリを設定する

- リクエストを作成する

- 属性を設定する

- リクエストを送信する

- 属性を受け取る

- radius リソースを閉じる (オプション)

パッケージに含まれている例もごらんください。

このパッケージにはサンプル PHP スクリプトが含まれています。 このスクリプトでは、PAP あるいは CHAP (md5) を使用した radius 認証の 方法を説明しています。Microsoft Radius サーバを使用して認証を行う 場合は、CHAP (md5) を使用することはできません。Microsoft のサーバを 使用する場合は、MS-CHAPv1 あるいは MS-CHAPv2 を使用する必要があります。 しかし、正しいデータを生成するために md4、sha1 および des が必要となる こともあり、これは複雑な手順となります。同梱されている例では すべての認証方式を説明しており、そこには MS-CHAPv1 および MS-CHAPv2 も含まれています。MS-CHAP を動作させるためには、拡張モジュール mcrypt および mhash が必要となります。 バージョン 1.2 以降では、mcrypt 拡張モジュールは必要なくなりました。

# 連絡先の情報

コメント・バグフィックス・機能拡張・あるいは開発を手伝いたいなどの場合は、 メールを mbretter@php.net に送ってください。Windows 用のバイナリは ここから ダウンロードできます。

前のページ | ホーム | 次のページ
qdom_tree | 上に戻る | radius_acct_open