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
print("Redirected at: ");
print(date("Y-m-d H:i:sZ", $redirectedAt->getTimestamp()));
print("<br>");
print($now->getTimeZone()->getName());
print("<br>");
print($redirectedAt->getTimeZone()->getName());
print("<br>");
print($expires);
print("<br>");
print($delta);
return self::AWS4_ERROR_STALE_REQUEST;
}
return self::AWS4_ERROR_NONE;
}
/**
* Method to generate the AWS signed URL address
* @param string $pUrl: the URL that need to be appended with AWS parameters
* @param string $identity: the AWS identity
* @param string $sharedSecret: the secret shared with the controller
* @param string $region: the region component of the scope
* @param string $service: the service component of the scope
* @param int $expires: number of seconds till presigned URL is untrusted.
* @return URL string with AWS parameters
*/
public static function createPresignedUrl(
$pUrl, $identity, $sharedSecret, $region,
$service, $expires) {
$urlParams = parse_url($pUrl);
$httpDate = gmdate('Ymd\THis\Z', time());
$scopeDate = substr($httpDate, 0, 8);
$scope = "{$scopeDate}/".$region."/".$service."/".self::AWS4_EXTREME_REQUEST;
$credential = $identity . '/' . $scope;
$duration = $expires;
//set the aws parameters
$awsParams = array(
'X-Amz-Date'=>$httpDate,
'X-Amz-Algorithm'=> 'AWS4-HMAC-SHA256',
'X-Amz-Credential'=> $credential,
'X-Amz-SignedHeaders' =>'host',
'X-Amz-Expires'=> $duration
);
parse_str($urlParams['query'],$q);
$q = array_merge($q, $awsParams);
ksort($q);
$port = $urlParams['port'];
$host = strtolower($urlParams['host']);
if($port && (($urlParams['scheme']=='https' && $port !=
443)||($urlParams['scheme']=='http' && $port != 80))) {
$host .= ':'.$port;
}
$canonical_request = self::getCanonicalFFECPContent($q,
$host, $urlParams['path'], true);
$stringToSign = "AWS4-HMAC-SHA256\n{$httpDate}\n{$scope}\n" .
hash('sha256', $canonical_request);
$signingKey = self::getSigningKey(
$scopeDate,
$region,
$service,
$sharedSecret
);
$q['X-Amz-Signature'] = hash_hmac('sha256', $stringToSign,
$signingKey);
$p = substr($pUrl, 0, strpos($pUrl,'?'));
$queryParams = array();
crypt_aws_s4.php
PHP External Captive Portal, Controller’s Firewall
Friendly API
210 Extreme Campus Controller Deployment Guide for version 5.46.03










