Adding Attributes to an Access-Accept
This feature allows you to add attribute values retrieved from an external subscriber database to Access-Accept message. For example, you might want to include the subscriber's level of service in the Access-Accept as the value of the attribute Reply-Message. Another example might be retrieving the IP address to be assigned to a mobile node and returning it in the Access-Accept as the value of the attribute Framed-IP-Address.
Overview
You can add additional attributes to Access-Accept messages from an external subscriber database. Two authentication plug-ins are used to accomplish the tasks of authentication and adding attributes to an Access-Accept. The authentication plug-ins are:
- The SIMAuth application (acting as the EAP helper)
This authenticator provides EAP authentication for the SIM authentication module.- Helped authenticator (usually the SQL plug-in: radsql.aut or radsqljdbc.aut). This authenticator accesses the database, retrieves the specified attributes, and attaches them to the Access-Accept message. The helped authenticator does not perform any authentication tasks and its password-checking is suppressed. All authentication is performed by the SIMAuth application (the EAP helper).
Data Flow
Authentication of the Access-Request and the addition of attributes to the Access-Accept is handled according to the following flow of data:
- The mobile device sends an Access-Request to Steel-Belted Radius Carrier.
- SIMAuth manages the EAP negotiation (challenge, and response).
- If SIMAuth authenticates the request, it attaches the IMSI and MSISDN of the mobile device, and sends the request to the SQL plug-in: radsql.aut or radsqljdbc.aut.
- radsql.aut or radsqljdbc.aut can use the IMSI or MSISDN as a key to query the database and request attribute values (as a separate step from the SIMAuth authentication).
- The helped authenticator (usually the SQL authentication plug-in: radsql.aut or radsqljdbc.aut), returns the Access-Accept with attribute values attached.
Figure 30 shows an example data flow in which Steel-Belted Radius Carrier, SIMAuth, and the SQL plug-ins (either radsql.aut or radsqljdbc.aut) work together to perform the following tasks:
- Access authentication (performed by SIMAuth)
- Addition of MSISDN and IMSI to the request (performed by SIMAuth)
- Database access and attribute retrieval (performed by radsql.aut in this example called SQLAuthenticator)
- Addition of retrieved attributes to the Access-Accept (performed by the SQL plug-in: radsql.aut)
Configuration Tasks
To add attributes to the Access-Accept, perform the following tasks:
- Configure the related files, as described in Configuring Files for Adding Attributes to Access-Accept.
- Activate authentication as described in Activate the Authentication Method.
Configuring Files for Adding Attributes to Access-Accept
The following files require special configuration to allow the addition of attributes to the Access-Accept:
To configure files for adding attributes to Access-Accept:
Setting Enable=0 ensures that these files are disabled.
This renaming causes SIMAuth to become the EAP helper.
- In the [Bootstrap] section of
simauth.eap, ensure that Enable=1.- Open the relevant database access configuration file. This file is one of:
- Check the [Bootstrap] section of
radsql.aut,radsqljdbc.aut, orldapauth.autfor the name of the specified authentication method. In the following example, the name of the specified authentication method is "SQLAuthenticator".Example:
[Bootstrap]
Initializationstring=SQLAuthenticatorFor more information on how to configure the
radsql.autandradsqljdbc.autfiles, seeSQL Authentication Files and Chapter 18, Configuring SQL Authentication in the Steel-Belted Radius Carrier 7.2 Administration and Configuration Guide.For more information on how to configure the
ldapauth.autfile,seeLDAP Authentication File and Chapter 20, Configuring LDAP Authentication in the Steel-Belted Radius Carrier 7.2 Administration and Configuration Guide.
- Ensure that there is a section in the
eap.inifile that includes the name of the helped authentication method you specified in Step 5. In this example the name is "SQLAuthenticator".
- Ensure that the following lines are included in the helped authentication method section in
eap.inithat you created in Step 6.
[SQLAuthenticator]
EAP-Only=1
First-Handle-Via-Auto-EAP=1
EAP-Type=SIM,AKA
Available-EAP-Only-Values=1
Available-Auto-EAP-Values=1
Available-EAP-Types=SIM|AKA
- Suppress database password checking in the helped authentication method as described for Oracle, JDBC, and LDAP databases.
- Oracle or JDBC: Do not provide a password in the
SQL=SELECTstatement in the [Settings] section of radsql.aut or radsqljdbc.aut. In the [Results] section of these files, include aPASSWORD=statement, leaving the password blank.
Example:
[Results]
Password=- LDAP: Remove the %password= setting from the [Response] section.
- Insert a query into
radsql.aut,radsqljdbc.aut, orldapauth.autto select the attributes to be added to the Access-Accept.The selection of attributes from the database can be based on the database key values for IMSI or MSISDN. The values for IMSI or MSISDN are added to the request by SIMAuth in the attributes 3GPP-IMSI or Funk-SS7-MSISDN so that they can be used in the database query.
SQL=SELECT subscriber-level FROM table 1 WHERE IMSI=@3GPP-IMSI
NOTE: To have the 3GPP-IMSI attribute set by Steel-Belted Radius Carrier in the request, the 3GPP dictionary must be selected in the Make or model field of the Client dialog of SBR Administrator, or you must import the attribute using the @ character which indicates the dictionary file contents are to be included (see Include Records). You can also use the %username or %user variables in the database query. However, they do not contain the expected values if pseudonyms are active.
- Activate the helped authentication method. See Order of Authentication Methods in Chapter 14, Setting Up Authentication Policies in the Steel-Belted Radius Carrier 7.2 Administration and Configuration Guide.
Example Configuration for Adding Attributes to Access-Accept
Figure 31 shows a sample configuration. The purpose of this configuration is to query the database for a subscriber-level value and return the subscriber-level value along with the Access-Accept.
Example Overview
In this example, an Access-Request is sent for a mobile device with IMSI 123456789. The value of the subscriber-level for this device is retrieved from the database, assigned to the attribute Reply-Message, and attached to the Access-Accept.
The configuration lines and syntax (shown in Figure 31) associate all the configuration files together to attach an attribute to the Access-Accept.
Example Notes
The sample configuration shown in Figure 31 configures the data flow in the following way:
Access-Request
An Access-Request is sent to Steel-Belted Radius Carrier for the user with an IMSI value of 123456789.
SIMAuth
Simauth.eap file is enabled
Simauth.aut file is disabled.Radsql.aut
The [Bootstrap] section contains the name of the specified authentication method ("SQLAuthenticator"). You later add a [SQLAuthenticator] section to the
eap.inifile.Enter a SQL=SELECT statement to retrieve data from the database based on the value of the IMSI in the Access-Request. Do not include a password in the SQL SELECT statement.
The @Password= statement suppresses password checking of the database.
The @Reply-Message=1/40 field indicates the following:
- The Reply-Message attribute is added to the Access-Accept and carry the value retrieved from the database.
- The 1 in @Reply-Message=1/40 indicates that the first item in the SQL=SELECT statement (subscriber-level) is the column name of the SQL database from which the value is selected.
- The 40 in @Reply-Message=1/40 indicates that the width of the subscriber-level column is 40 characters.
Eap.ini
The
eap.inifile must contain a section corresponding to the name of the helped authentication method named in the Initializationstring statement in theradsql.autfile. In this example the helped authentication method is called "SQLAuthenticator", so theeap.inimust contain a section called [SQLAuthenticator].The eap.ini file must contain the lines shown in Figure 31 to configure the SQL plug-in (either radsql.aut or radsqljdbc.aut). These lines, prevent either radsql.aut or radsqljdbc.aut from acting without SIMAuth.aut. This is necessary because password-checking by radsql.aut or radsqljdbc.aut is suppressed and the only authentication being performed would be by SIMAuth.aut (the EAP helper).
SQL database table 1
In this example, the SQL database is queried by the SQL plug-in:
radsql.aut,and the subscriber-level for IMSI 123456789 is found to bebasic.Access-Accept
The value of
basicis assigned to the attribute Reply-Message and included in the Access-Accept.Activate the Authentication Method
See Order of Authentication Methods in the Chapter 14, Setting Up Authentication Policies in the Steel-Belted Radius Carrier 7.2 Administration and Configuration Guide.