Deployment Guide
Table Of Contents
- Table of Contents
 - Preface
 - About Extreme Campus Controller Deployment
 - Configuring DHCP, NPS, and DNS Services
 - Centralized Site with a Captive Portal
 - Centralized Site with AAA Network
 - Deploying a Mesh Network
 - Configuring an External NAC Server for MBA and AAA Authentication
 - Manage RADIUS Servers for User Authentication
 - External Captive Portal on a Third-Party Server
 - Access Control Rule Admin Portal Access
 - Deploying Centralized Web Authentication
 - Deploying ExtremeCloud IQ - SE as an External Captive Portal
- Deployment Strategy
 - Configuring an External Captive Portal Network
 - Editing the Configuration Profile for Network and Roles
 - Extreme Campus Controller Default Pass-Through Rule
 - Adding Extreme Campus Controller as a Switch to ExtremeCloud IQ - Site Engine
 - Editing the Unregistered Policy on ExtremeCloud IQ - Site Engine
 - Editing the ExtremeCloud IQ - Site Engine Profile for Policy and Location-Based Services
 
 - Deploying an ExtremeGuest Captive Portal
 - Deploying Client Bridge
 - Deploying an Availability Pair
 - Deploying Universal APs
 - Extreme Campus Controller Pair with ExtremeLocation and AirDefense
 - ECP Local Authentication
 - PHP External Captive Portal, Controller’s Firewall Friendly API
 - Index
 
WLAN.</span>");
 exit;
 }
 // For this example the maximum duration of any user's
 // session will be 36000 seconds. The session is terminated
 // no later than this time. After the session is terminated,
 // the user can access the network but will be unauthenticated
 // again.
 $max_duration = 36000;
 // 2. Authenticate the user and select an appropriate role.
 // Selecting the role is optional. If a role is not specified
 // for the controller, the controller will apply the default
 // authenticated role of the WLAN Service that the user is
 // accessing.
 $assigned_role = authenticate($username, $passwd);
 if (false === $assigned_role) {
 // Failed to authenticate the user.
 // Authenticate prints the error message for
 // the browser and exits.
 exit;
 }
 // 3. Tell the controller that the user is authenticated,
 // and tell it which role to apply to the user.
 // 3.a Build the URL that needs to be signed.
 $pUrl = makeUnsignedUrl($hwc_ip, $hwc_port, isHttps(), $token,
 $username, $wlan, $assigned_role, $dest,
 $max_duration);
 // 3.b Sign the URL. Otherwise, the role and session
 // duration options will be ignored by the controller.
 $redirection = SimpleAws::createPresignedUrl(
 $pUrl, 'BigAuthInc', $awsKeyPairs['BigAuthInc'],
 $awsConfig['region'], $awsConfig['service'],
 $awsConfig['expires']);
 if (null == $redirection) {
 // Quietly exit. createPresignedUrl has already 
 // reported an error to the browser.
 exit;
 }
 header( 'Location: '.$redirection);
 exit;
 // End of mainline.
 // A method that validates the user's credentials and
 // returns the role to apply to the user. In some cases,
 // this routine might also return the maximum session
 // duration in seconds.
 //
 // For purposes of this example, this procedure is 
 // not much more than a stub. The stub can be replaced
 // by any authentication method, such as sending access
 // requests to a backend RADIUS server, or performing
 // a lookup in an application credential database.
 function authenticate($userid, $passwd) {
 if (("" == $userid) || ("" == $passwd)) {
 printError("Invalid Userid or Password. ".
 "Please press the 'Back' button and try again.");
 // If you generate another login page for the user,
 // be sure to copy the hwc_ip address, hwc_port,
 // token and dest attributes from the submitted
 // login form to the login page.
 return false;
 } else {
 // Return the name of a role to be applied
 // to the station. The role must be defined on
 // the controller or it will substitute the
login.php
PHP External Captive Portal, Controller’s Firewall
Friendly API
202 Extreme Campus Controller Deployment Guide for version 5.46.03










