CXXXIV. 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 拡張モジュールは http://pecl4win.php.net/ からダウンロードできます。

定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが 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 用のバイナリは ここから ダウンロードできます。

目次
radius_acct_open -- 課金用の Radius ハンドルを作成する
radius_add_server -- サーバを追加する
radius_auth_open -- 認証用の Radius ハンドルを作成する
radius_close -- すべてのリソースを開放する
radius_config -- 指定した設定ファイルをライブラリに読み込ませる
radius_create_request -- 課金あるいは認証のリクエストを作成する
radius_cvt_addr -- 生データを IP アドレスに変換する
radius_cvt_int -- 生データを整数に変換する
radius_cvt_string -- 生データを文字列に変換する
radius_demangle_mppe_key -- 変形されたデータから mppe キーを得る
radius_demangle -- データを復元する
radius_get_attr -- 属性を取得する
radius_get_vendor_attr -- ベンダ固有の属性を取得する
radius_put_addr -- IP アドレス属性を設定する
radius_put_attr -- バイナリ属性を設定する
radius_put_int -- 整数属性を設定する
radius_put_string -- 文字列属性を設定する
radius_put_vendor_addr -- ベンダ固有の IP アドレス属性を設定する
radius_put_vendor_attr -- ベンダ固有のバイナリ属性を設定する
radius_put_vendor_int -- ベンダ固有の整数属性を設定する
radius_put_vendor_string -- ベンダ固有の文字列属性を設定する
radius_request_authenticator -- リクエスト認証子を返す
radius_send_request -- リクエストを送信し、応答を待つ
radius_server_secret -- 共有秘密鍵を返す
radius_strerror -- エラーメッセージを返す