У примера следующая логика:
Если пользователей входит в группу “test_group”, то у пользователя будет запрашиваться только логин и пароль.
Если пользователь не входит в группу “test_group”, то у пользователя будет запрашиваться логин и пароль и TOTP фактор.
var user = context.GetUser();
var req = context.GetRequest();
var PWD_group = 'test_group';
var hasPWDGroup = false;
if (typeof user === 'undefined') {
context.AddStep([{ factor: "pwd" }]);
} else {
context.AddStep([{ factor: "pwd" }]);
var len_group_array = user.Groups.length;
var group_array = user.Groups;
for (var i = 0; i < len_group_array; i++) {
if (group_array[i].Name === PWD_group) {
console.log("Find PWD group for user:" + user.Name + req.IPAddress);
hasPWDGroup = true;
break;
}
}
if (hasPWDGroup === false){
context.AddStep([{ factor: "totp" }]);
}
}