CXXXII. Radius
導入
このパッケージは、FreeBSD の libradius をもとにしたものです。 この PECL モジュールは、Radius 認証 ( RFC 2865 ) および Radius 課金 ( RFC 2866 ) を完全にサポートします。 このパッケージは、Unix (FreeBSD および Linux でテストしました) および Windows で使用可能です。
インストール手順
どうやってインストールするの?
-
tar パッケージを (通常は php4/ext に) 展開する
-
radius-x.x の名前を radius に変更する
-
php4 ディレクトリで ./buildconf を実行する
-
./configure --enable-radius を実行する
-
make; make install
-
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 用のバイナリは ここ から ダウンロードできます。
- 目次
- 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 -- エラーメッセージを返す