To fix missing the "Alive" of Acct-Status-Type, just :
define('RADIUS_ALIVE', 3);
Ces constantes définissent des types d'attribut RADIUS qui peuvent être utilisées avec les fonctions radius_put_addr(), radius_put_attr(), radius_put_int() et radius_put_string().
RADIUS_USER_NAME
(int)
L'attribut User-Name. La valeur de l'attribut doit être une chaîne de caractères contenant le nom de l'utilisateur désirant s'authentifier, et peut être définie en utilisant la fonction radius_put_attr().
RADIUS_USER_PASSWORD
(int)
L'attribut User-Password. La valeur de l'attribut doit être une chaîne de caractères contenant le mot de passe de l'utilisateur, et peut être définie en utilisant la fonction radius_put_attr(). Cette valeur sera brouillée pendant la transmission tel que décrit à la » section 5.2 de la RFC 2865.
RADIUS_CHAP_PASSWORD
(int)
L'attribut Chap-Password. La valeur de l'attribut doit être une chaîne
contenant le premier octet (qui est l'identifiant CHAP), puis la
sous une sous-séquence de 16 octets contenant le hash MD5 de l'identifiant
CHAP, le mot de passe en clair, et la valeur du challenge CHAP,
le tout, concaténés. Notez que la valeur du challenge CHAP doit
aussi être envoyé séparément dans l'attribut
RADIUS_CHAP_CHALLENGE
.
Exemple #1 Utilisation des mots de passe CHAP
<?php
// D'abord, nous créons un gestionnaire d'authentification et une requête.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);
// Supposons que $password contient le mot de passe en clair :
// Génération du challenge.
$challenge = mt_rand();
// Spécifie un identifiant CHAP.
$ident = 1;
// Ajout de l'attribut Chap-Password.
$cp = hash('md5', pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);
// Ajout de l'attribut Chap-Challenge.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);
/* A partir d'ici, nous pouvons ajouter les autres attributs
* et appeler la fonction radius_send_request(). */
?>
RADIUS_NAS_IP_ADDRESS
(int)
L'attribut NAS-IP-Address. La valeur de l'attribut attendue est l'adresse IP du client RADIUS encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_addr().
RADIUS_NAS_PORT
(int)
L'attribut NAS-Port. La valeur de l'attribut attendue est le port physique de l'utilisateur sur le client RADIUS, encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_int().
RADIUS_SERVICE_TYPE
(int)
L'attribut Service-Type. La valeur de l'attribut indique le type de service que l'utilisateur requète, et doit être un entier, qui peut être défini en utilisant la fonction radius_put_int().
Des constantes sont fournies pour représenter les valeurs possibles de cet attribut. Les voici :
RADIUS_FRAMED_PROTOCOL
(int)
L'attribut Framed-Protocol. La valeur de l'attribut attendue est un entier, indiquant le framing à utiliser pour l'accès, et peut être définie en utilisant la fonction radius_put_int(). Les valeurs possibles pour cet attribut sont :
RADIUS_FRAMED_IP_ADDRESS
(int)
L'attribut Framed-IP-Address. La valeur attendue est une adresse du réseau utilisateur encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_addr() et récupérée en utilisant la fonction radius_cvt_addr().
RADIUS_FRAMED_IP_NETMASK
(int)
L'attribut Framed-IP-Netmask. La valeur attendue est un netmask du réseau utilisateur, encodé sous la forme d'un entier, qui peut être définie en utilisant la fonction radius_put_addr() et récupérée en utilisant la fonction radius_cvt_addr().
RADIUS_FRAMED_ROUTING
(int)
L'attribut Framed-Routing. La valeur attendue est un entier indiquant la méthode de routage pour l'utilisateur, qui peut être définie en utilisant la fonction radius_put_int().
Valeurs possibles :
0
: Aucun routage1
: Envoi des paquets de routage2
: Ecoute des paquets de routage3
: Envoi et écouteRADIUS_FILTER_ID
(int)
L'attribut Filter-ID. La valeur attendue est une implémentation spécifique, humainement lisible, de chaînes de filtres, qui peuvent être définies en utilisant la fonction radius_put_attr().
RADIUS_FRAMED_MTU
(int)
L'attribut Framed-MTU. La valeur attendue est un entier, indiquant le MTU à configurer pour l'utilisateur, et peut être définie en utilisant la fonction radius_put_int().
RADIUS_FRAMED_COMPRESSION
(int)
L'attribut Framed-Compression. La valeur attendue est un entier, indiquant le protocole de compression à utiliser, et peut être définie en utilisant la fonction radius_put_int(). Valeurs possibles :
RADIUS_COMP_NONE
: Aucune compressionRADIUS_COMP_VJ
: Compression de l'en-tête VJ TCP/IPRADIUS_COMP_IPXHDR
: Compression de l'en-tête IPXRADIUS_COMP_STAC_LZS
: Compression Stac-LZS (ajouté en PECL radius 1.3.0b2)
RADIUS_LOGIN_IP_HOST
(int)
L'attribut Login-IP-Host. La valeur attendue est l'adresse IP de connexion de l'utilisateur, encodée sous la forme d'un entier, qui peut être défini en utilisant la fonction radius_put_addr().
RADIUS_LOGIN_SERVICE
(int)
L'attribut Login-Service. La valeur attendue est un entier indiquant le service sur lequel l'utilisateur se connecte sur l'hôte d'identification. La valeur peut être convertie en un entier PHP via la fonction radius_cvt_int().
RADIUS_LOGIN_TCP_PORT
(int)
L'attribut Login-TCP-Port. La valeur attendue est un entier indiquant le port sur lequel l'utilisateur se connecte sur l'hôte d'identification. La valeur peut être convertie en un entier PHP via la fonction radius_cvt_int().
RADIUS_REPLY_MESSAGE
(int)
L'attribut Reply-Message. La valeur attendue est une chaîne de caractères contenant un texte qui peut être affiché à l'utilisateur en réponse à une requête d'accès.
RADIUS_CALLBACK_NUMBER
(int)
L'attribut Callback-Number. La valeur attendue est une chaîne de caractères contenant la chaîne de numérotation à utiliser pour la fonction de rappel.
RADIUS_CALLBACK_ID
(int)
L'attribut Callback-Id. La valeur attendue est une chaîne contenant le nom de l'implémentation spécifique de la place à appeler.
RADIUS_FRAMED_ROUTE
(int)
L'attribut Framed-Route. La valeur attendue est une chaîne contenant un jeu de routes d'implémentation spécifique à configurer pour l'utilisateur.
RADIUS_FRAMED_IPX_NETWORK
(int)
L'attribut Framed-IPX-Network. La valeur attendue est un entier
contenant le réseau IPX à configurer pour l'utilisateur, ou
0xFFFFFFFE
pour indiquer que le client RADIUS doit sélectionner
le réseau, et peut être accédé via la fonction
radius_cvt_int().
RADIUS_STATE
(int)
L'attribut State. La valeur attendue est une chaîne contenant l'implémentation définie incluse dans un Access-Challenge depuis un serveur qui doit être inclus dans la sous-séquence Access-Request, et peut être défini en utilisant la fonction radius_put_attr().
RADIUS_CLASS
(int)
L'attribut Class. La valeur attendue est une chaîne arbitraire incluant le message d'un Access-Accept qui doit être envoyé au serveur de comptes dans les messages Accounting-Request, et peut être défini via la fonction radius_put_attr().
RADIUS_VENDOR_SPECIFIC
(int)
L'attribut Vendor-Specific. En général, les valeurs de l'attribut du vendeur doivent être définies en utilisant les fonctions radius_put_vendor_addr(), radius_put_vendor_attr(), radius_put_vendor_int() et radius_put_vendor_string(), plutôt que directement.
Cette constante est utile lors de l'interprétation des attributs spécifiques du vendeur dans les réponses d'un serveur RADIUS ; lorsqu'un attribut spécifique du vendeur est reçu, la fonction radius_get_vendor_attr() doit être utilisée pour accéder à l'identifiant du vendeur, le type d'attribut et la valeur de l'attribut.
RADIUS_SESSION_TIMEOUT
(int)
Timeout de la session
RADIUS_IDLE_TIMEOUT
(int)
Durée d'expiration
RADIUS_TERMINATION_ACTION
(int)
Action de termination
RADIUS_CALLED_STATION_ID
(int)
Identifiant de la station appelée
RADIUS_CALLING_STATION_ID
(int)
Identifiant de la station appelant
RADIUS_NAS_IDENTIFIER
(int)
Identifiant NAS
RADIUS_PROXY_STATE
(int)
Statut du Proxy
RADIUS_LOGIN_LAT_SERVICE
(int)
Service d'identification LAT
RADIUS_LOGIN_LAT_NODE
(int)
Noeud d'identification LAT
RADIUS_LOGIN_LAT_GROUP
(int)
Groupe d'identification LAT
RADIUS_FRAMED_APPLETALK_LINK
(int)
Lien framé Appletalk
RADIUS_FRAMED_APPLETALK_NETWORK
(int)
Réseau framé Appletalk
RADIUS_FRAMED_APPLETALK_ZONE
(int)
Zone framé Appletalk
RADIUS_CHAP_CHALLENGE
(int)
Challenge
RADIUS_NAS_PORT_TYPE
(int)
Type du port 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)
Limite du port
RADIUS_LOGIN_LAT_PORT
(int)
Port d'identification LAT
RADIUS_CONNECT_INFO
(int)
Information de connexion
RADIUS_ACCT_STATUS_TYPE
(int)
Type de statut du compte :
RADIUS_ACCT_DELAY_TIME
(int)
Délai maximal d'identification
RADIUS_ACCT_INPUT_OCTETS
(int)
Octets d'entrée d'identification
RADIUS_ACCT_OUTPUT_OCTETS
(int)
Octets de sortie d'identification
RADIUS_ACCT_SESSION_ID
(int)
Identifiant de session d'identification
RADIUS_ACCT_AUTHENTIC
(int)
Identification authentique, un parmi :
RADIUS_ACCT_SESSION_TIME
(int)
Durée de la session d'identification
RADIUS_ACCT_INPUT_PACKETS
(int)
Paquets d'entrée d'identification
RADIUS_ACCT_OUTPUT_PACKETS
(int)
Paquets de sortie d'identification
RADIUS_ACCT_TERMINATE_CAUSE
(int)
Cause de la fin de l'identification, un parmi :
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
(int)
Identifiant d'une session multiple d'identification
RADIUS_ACCT_LINK_COUNT
(int)
Nombre de liens d'identification
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_PPP
RADIUS_SLIP
RADIUS_ARAP
RADIUS_GANDALF
RADIUS_XYLOGICS
RADIUS_COMP_NONE
RADIUS_COMP_VJ
RADIUS_COMP_IPXHDR
RADIUS_COMP_STAC_LZS
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_START
RADIUS_STOP
RADIUS_ACCOUNTING_ON
RADIUS_ACCOUNTING_OFF
RADIUS_AUTH_RADIUS
RADIUS_AUTH_LOCAL
RADIUS_AUTH_REMOTE
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_CALLBACK
RADIUS_TERM_USER_ERROR
RADIUS_TERM_HOST_REQUEST
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