Я использую PHP Graph API в серверной части и создал учетную запись с адресом электронной почты и паролем. Новый пользователь может войти в другое приложение Entra, но я не смог найти никаких настроек/API, которые заставили бы приложение Entra добавлять номер телефона 2FA для аутентификации по SMS.
Код: Выделить всё
// Obtain an access token with Application Permissions
$url = "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token";
try {
$response = $client->post($url, [
'form_params' => [
'client_id' => $clientId,
'client_secret' => $clientSecret,
'scope' => 'https://graph.microsoft.com/.default',
'grant_type' => 'client_credentials',
]
]);
$tokenData = json_decode($response->getBody(), true);
if (!isset($tokenData['access_token'])) {
return ['error' => 'Unable to retrieve access token.'];
}
$accessToken = $tokenData['access_token'];
$graphUrl = "https://graph.microsoft.com/v1.0/users";
$userResponse = $client->post($graphUrl, [
'headers' => [
'Authorization' => "Bearer $accessToken",
'Content-Type' => 'application/json'
],
'json' => [
'accountEnabled' => true,
'displayName' => "$firstName $lastName",
'givenName' => $firstName,
'surname' => $lastName,
'passwordPolicies' => "DisablePasswordExpiration, DisableStrongPassword",
'identities'=> [
[
"signInType"=> "emailAddress",
"issuer"=> "abc.onmicrosoft.com",
"issuerAssignedId"=> $email
]
],
'passwordProfile' => [
'forceChangePasswordNextSignIn' => false,
'password' => $password
]
]
]);
$userData = json_decode($userResponse->getBody(), true);
if (isset($userData['id'])) {
return [
'user_id' => $userData['id'],
'message' => 'User successfully created.'
];
} else {
return ['error' => 'User creation failed.'];
}
} catch (Exception $e) {
return ['error' => $e->getMessage()];
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... icrosoft-e