confSetVal("ad.clientdef", $adclientdef);
confSetVal("ad.admindef", $adadmindef);
confSetVal("backend", "AD");
+ confSetVal("defaulttokentype", "TOTP");
$initState = true;
$backEnd = "AD";
{
// function userInGroup($user, $domain, $adlogin, $adpass, $group)
+ echo "in provision user\n";
+ print_r($msg);
+ $dttype = confGetVal("defaulttokentype");
+ if($dttype != "HOTP" && $dttype != "TOTP") {
+ echo "default token type not set, setting to TOTP\n";
+ confSetVal("defaulttokentype", "TOTP");
+ $dttype = "TOTP";
+ }
+ if($msg["tokentype"] == "") {
+ $ttype = confGetVal("defaulttokentype");
+ } else {
+ $ttype = $msg["tokentype"];
+ }
+ if($ttype != "HOTP" && $ttype != "TOTP") {
+ echo "using default token type, $dttype because user entered value of $ttype doesnt make sense\n";
+ $ttype = $dttype;
+ }
+ $tkey = $msg["tokenkey"];
if(confGetVal("backend") == "AD") {
- userInGroup($msg["username"], confGetVal("ad.domain"), confGetVal("ad.user", $adlogin), confGetVal("ad.pass"), confGetVal("ad.clientdef"));
+ if(userInGroup($msg["username"], confGetVal("ad.domain"), confGetVal("ad.user"), confGetVal("ad.pass"), confGetVal("ad.clientdef"))) {
+ $myga = new gaasdGA();
+
+ // TODO - figure out how to deal with the token origin - i.e. software/hardware
+ if($msg["origin"] == "hardware") {
+ echo "want a hardware token, but i dont know how to do this yet\n";
+ } else {
+ echo "using software token\n";
+ $myga->setUser($msg["username"], $ttype, "", $tkey);
+ }
+ } else {
+ echo "User not in client group\n";
+ }
} else {
// internal db
}
return true;
}
+// TODO error check/ value check
+function gaasAddHardwareToken_server($msg)
+{
+ $tokenid = $msg["tokenid"];
+ $tokenkey = $msg["tokenkey"];
+ $tokentype = strtoupper($msg["tokentype"]);
+
+ if($tokentype != "HOTP" && $tokentype != "TOTP") {
+ echo "invalid token type from hardware entry\n";
+ return false;
+ }
+ //"hardwaretokens" ("tok_id" INTEGER PRIMARY KEY AUTOINCREMENT,"tok_name" TEXT, "tok_key" TEXT, "tok_type" TEXT);';
+ print_r($msg);
+ $db = getDB();
+ $sql = "insert into hardwaretokens values (NULL, '$tokenid', '$tokenkey', '$tokentype')";
+ echo "Sql is $sql\n";
+ $ret = $db->query($sql);
+ if($ret) return true;
+ else return false;
+
+}
+
+
+function gaasGetHardwareTokens_server($msg)
+{
+ $db = getDB();
+
+ $sql = "select tok_name, tok_type from hardwaretokens";
+ $ret = $db->query($sql);
+
+ $toks = "";
+ $i = 0;
+ foreach($ret as $row) {
+ $toks[$i]["name"] = $row["tok_name"];
+ $toks[$i]["type"] = $row["tok_type"];
+ $i++;
+ }
+
+ return $toks;
+}
+
+
+function gaasAssignToken_server($msg)
+{
+ if(!isset($msg["tokenid"])) return false;
+
+ $tokenid = $msg["tokenid"];
+
+ // now, we check the username is in the client gorup
+ if(confGetVal("backend") == "AD") {
+ if(userInGroup($msg["username"], confGetVal("ad.domain"), confGetVal("ad.user"), confGetVal("ad.pass"), confGetVal("ad.clientdef"))) {
+ $myga = new gaasdGA();
+
+ $sql = "select * from hardwaretokens"; // where tok_name='$tokenid'";
+ echo "yes, i am here $sql\n";
+ $db = getDB();
+ $ret = $db->query($sql);
+ $tok_key = "";
+ $tok_type = "";
+ if(!$ret) {
+ echo "got a token assignment for an invalid name\n";
+ print_r($msg);
+ return false;
+ } else {
+ // we have something
+ echo "i am here?\n";
+ foreach($ret as $row) {
+ echo "got a row\n";
+ print_r($row);
+ $tok_key = $row["tok_key"];
+ $tok_type = $row["tok_type"];
+ }
+ }
+
+ if($tok_type == "" || $tok_key == "") {
+ echo "error in token data from hardware token in DB\n";
+ }
+
+ echo "and here too, $tok_type, $tok_key\n";
+ if(!$myga->setUser($msg["username"], $tok_type, "", $tok_key)) {
+ print_r($msg);
+ echo "errror assigning token?\n";
+ }
+ } else return false;
+ }
+
+ // then we assign to the user
+}
+
function gaasGetUsers_server($msg)
{
$haveTokens = $msg["havetokens"];