对不起,我的英语不好
这是必须使用AZURE多因素身份验证服务对一组用户进行身份验证的问题,我的应用程序位于我的域中,而不是在蔚蓝的实例中,我在laravel中开发了我的应用程序,该应用程序通过curl与API通信如果用户具有注册多因素身份验证,则位于同一服务器上,这将完成所有流程以对用户进行身份验证,然后我使用JavaScript打开了一个新窗口,该窗口显示用户必须登录此门户网站的https://login.microsoft.com,并且然后Microsoft向我发送短信或使用代码致电,我必须将此代码放在新窗口中并验证来自Microsoft的答案(如果代码有效)我允许用户访问我服务器中的应用程序(如果未拒绝)代码,并且用户再次尝试进行身份验证。
在此行=> elseif(strpos($ resultado,'AADSTS70076')!== false) 如果用户具有注册多因素身份验证,我会捕获
这是api代码部分:
$app->post('/valid_login', function() use ($app){
//Validaciónes de Azure
try {
$token = $app->azure->getAccessToken('password', [
'username' => $data['usuario'],
'password' => $data['cadena']
]);
try {
$me = $app->azure->get("me", $token);
if ($me['accountEnabled'] == 1) {
$result['status'] = 1;
$result['mensaje'] = 'Acceso Valido';
$result['displayName'] = $me['displayName'];
$result['givenName'] = $me['givenName'];
$result['city'] = $me['city'];
$result['companyName'] = $me['companyName'];
$result['employeeId'] = $me['employeeId'];
} else {
$result['status'] = 2;
$result['mensaje'] = '<center>Acceso Deshabilitado</center>';
}
echo json_encode_utf8($result);
} catch (Exception $e) {
$result['status'] = 0;
$result['mensaje'] = '<center>Error al obtener el Perfil</center>';
$result['error'] = $e;
echo json_encode_utf8($result);
}
} catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $e) {
$resultado = $e->getTrace()['0']['args']['1']['error_description'];
$result['mensaje'] = $e->getMessage();
if (strpos($resultado,'AADSTS65001') !== false) {
$result['mensaje'] = 'Usuario Pendiente por Autorizar';
$result['error'] = '<center>Usuario Pendiente por Autorizar</center>';
} elseif (strpos($resultado, 'AADSTS50034') !== false) {
$result['mensaje'] = 'El Usuario no Existe';
$result['error'] = '<center>El Usuario no Existe</center>';
} elseif (strpos($resultado, 'AADSTS70002') !== false) {
$result['mensaje'] = 'Usuario o Password Incorrecto';
$result['error'] = '<center>Usuario o Password Incorrecto</center>';
} elseif(strpos($resultado, 'AADSTS70076') !== false){
$result['link'] = "https://login.microsoft.com";
$result['status'] = 4;
echo json_encode_utf8($result);
exit;
}
} else {
$result['mensaje'] = 'Error de acceso con Azure('.$resultado.')';
$result['error'] = '<center>Error de acceso con Azure</center>'
. '('. $resultado.')';
}
$result['status'] = 0;
$result['errorfull'] = $e->getTrace()['0']['args']['1']['error_description'];
echo json_encode_utf8($result);
}
});