Как включить/настроить 2FA (SMS) при создании учетной записи с использованием пользовательского API в приложении MicrosoPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как включить/настроить 2FA (SMS) при создании учетной записи с использованием пользовательского API в приложении Microso

Сообщение Anonymous »

Я создал 2 приложения Entra для внешних пользователей (CIAM). Я использую один из них для создания пользователей, а другой для входа в систему пользователей приложения. Оба приложения поддерживают мультитенанты и личные учетные записи Microsoft для доступа к их API. Я хочу ограничить создание пользователей использованием API (для большей безопасности) и хочу включить 2FA с использованием SMS во время входа в систему для всех пользователей, которые будут создавать учетную запись с использованием API. Пользователи входят в другое приложение Entra, используя всплывающее окно пользователя Microsoft, и я хочу включить здесь 2FA (смс), который будет обрабатываться/выполняться CIAM (приложение Entra). Возможна ли такая настройка?
Я использую 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»