diff --git a/www/web-proxy-sso/Makefile b/www/web-proxy-sso/Makefile index d63916bce..7505f4193 100644 --- a/www/web-proxy-sso/Makefile +++ b/www/web-proxy-sso/Makefile @@ -1,5 +1,5 @@ PLUGIN_NAME= web-proxy-sso -PLUGIN_VERSION= 2.0 +PLUGIN_VERSION= 2.1 PLUGIN_COMMENT= Kerberos authentication module PLUGIN_DEPENDS= msktutil cyrus-sasl-gssapi PLUGIN_MAINTAINER= evbevz@gmail.com diff --git a/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/Api/ServiceController.php b/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/Api/ServiceController.php index 0815a2d69..99e665886 100644 --- a/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/Api/ServiceController.php +++ b/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/Api/ServiceController.php @@ -42,10 +42,10 @@ class ServiceController extends \OPNsense\Proxy\Api\ServiceController if ($this->request->isPost()) { $backend = new Backend(); $mdl = new ProxySSO(); - $cnf = Config::getInstance()->toArray(); - $hostname = 'HTTP/' . $cnf['system']['hostname']; - $domain = $cnf['system']['domain']; - $kerbname = substr(strtoupper($cnf['system']['hostname']), 0, 13) . "-K"; + $cnf = Config::getInstance()->object(); + $hostname = 'HTTP/' . $cnf->system->hostname; + $domain = $cnf->system->domain; + $kerbname = strtoupper((string)$mdl->KerberosHostName); $winver = (string)$mdl->ADKerberosImplementation == 'W2008' ? '2008' : '2003'; $username = escapeshellarg($this->request->getPost("admin_login")); $pass = escapeshellarg($this->request->getPost("admin_password")); @@ -66,8 +66,8 @@ class ServiceController extends \OPNsense\Proxy\Api\ServiceController { if ($this->request->isPost()) { $backend = new Backend(); - $cnf = Config::getInstance()->toArray(); - $fqdn = $cnf['system']['hostname'].'.'.$cnf['system']['domain']; + $cnf = Config::getInstance()->object(); + $fqdn = $cnf->system->hostname .'.'.$cnf->system->domain; $username = escapeshellarg($this->request->getPost("login")); $pass = escapeshellarg($this->request->getPost("password")); diff --git a/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/forms/general.xml b/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/forms/general.xml index 9eeb7c6dd..042e44557 100644 --- a/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/forms/general.xml +++ b/www/web-proxy-sso/src/opnsense/mvc/app/controllers/OPNsense/ProxySSO/forms/general.xml @@ -11,4 +11,10 @@ dropdown Select Windows Server version for AD controller + + ProxySSO.KerberosHostName + + text + Enter this computer account name to register in AD for kerberos access. Default is hostname with suffix '-K'. + diff --git a/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.php b/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.php index 76d8d1586..5b09a8e49 100644 --- a/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.php +++ b/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.php @@ -3,7 +3,15 @@ namespace OPNsense\ProxySSO; use OPNsense\Base\BaseModel; +use OPNsense\Core\Config; class ProxySSO extends BaseModel { + protected function init() + { + if($this->KerberosHostName == "") { + $hostname = (string)Config::getInstance()->object()->system->hostname; + $this->KerberosHostName = substr(strtoupper($hostname), 0, 13) . '-K'; + } + } } diff --git a/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.xml b/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.xml index 08f5e9abc..f43f0389e 100644 --- a/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.xml +++ b/www/web-proxy-sso/src/opnsense/mvc/app/models/OPNsense/ProxySSO/ProxySSO.xml @@ -16,5 +16,8 @@ Windows 2008 with AES + + N + diff --git a/www/web-proxy-sso/src/opnsense/scripts/OPNsense/ProxySSO/kerberos_test.sh b/www/web-proxy-sso/src/opnsense/scripts/OPNsense/ProxySSO/kerberos_test.sh index 220ac7178..790ddac07 100755 --- a/www/web-proxy-sso/src/opnsense/scripts/OPNsense/ProxySSO/kerberos_test.sh +++ b/www/web-proxy-sso/src/opnsense/scripts/OPNsense/ProxySSO/kerberos_test.sh @@ -25,3 +25,5 @@ rm ${PASS_TMP} /usr/local/libexec/squid/negotiate_kerberos_auth_test ${FQDN} | awk '{sub(/Token:/,"YR"); print $0}END{print "QQ"}' | /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME /usr/local/bin/kdestroy + +exit 0