Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Клиенты MIM имеют два варианта многофакторной проверки подлинности в сценариях SSPR и PAM:
- Используйте настраиваемого поставщика доставки одноразовых паролей, который применим только в сценарии MIM SSPR и описан в руководстве Настройка сброса пароля Self-Service через шлюз для SMS с одноразовым паролем (OTP).
- Используйте персонализированного поставщика телефонной связи для многофакторной аутентификации. Это применимо как в сценариях MIM SSPR, так и в PAM, описанных в этой статье.
В этой статье описывается, как использовать MIM с пользовательским поставщиком многофакторной идентификации через API и пакет SDK интеграции, разработанный клиентом.
Чтобы использовать пользовательский API поставщика многофакторной идентификации с MIM, вам потребуется:
- Номера телефонов для всех пользователей-кандидатов
- Исправление для MIM версии 4.5.202.0 или более поздней версии — см. раздел «Журнал версий» для объявлений.
- Служба MIM, настроенная для SSPR или PAM
Скачайте и установите исправление MIM версии 4.5.202.0 или более поздней версии.
Библиотека DLL должна включать класс, реализующий три метода:
-
InitiateCall
: служба MIM вызовет этот метод. Служба передает номер телефона и идентификатор запроса в качестве параметров. Метод должен возвращать значениеPhoneCallStatus
изPending
,Success
илиFailed
. -
GetCallStatus
. Если предыдущий вызовinitiateCall
возвращенPending
, служба MIM вызовет этот метод. Этот метод также возвращает значениеPhoneCallStatus
дляPending
,Success
илиFailed
. -
GetFailureMessage
. Если предыдущий вызовInitiateCall
илиGetCallStatus
вернулFailed
, служба MIM вызовет этот метод. Этот метод возвращает диагностическое сообщение.
Реализации этих методов должны быть потокобезопасны, и, кроме того, реализация GetCallStatus
и GetFailureMessage
не должна предполагать, что они будут вызываться тем же потоком, что и предыдущий вызов InitiateCall
.
Сохраните библиотеку DLL в каталоге C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\
.
Пример кода, который можно скомпилировать с помощью Visual Studio 2010 или более поздней версии.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.IdentityManagement.PhoneServiceProvider;
namespace CustomPhoneGate
{
public class CustomPhoneGate: IPhoneServiceProvider
{
string path = @"c:\Test\phone.txt";
public PhoneCallStatus GetCallStatus(string callId)
{
int res = 2;
foreach (string line in File.ReadAllLines(path))
{
var info = line.Split(new char[] { ';' });
if (string.Compare(info[0], callId) == 0)
{
if (info.Length > 2)
{
bool b = Int32.TryParse(info[2], out res);
if (!b)
{
res = 2;
}
}
break;
}
}
switch(res)
{
case 0:
return PhoneCallStatus.Pending;
case 1:
return PhoneCallStatus.Success;
case 2:
return PhoneCallStatus.Failed;
default:
return PhoneCallStatus.Failed;
}
}
public string GetFailureMessage(string callId)
{
string res = "Call ID is not found";
foreach (string line in File.ReadAllLines(path))
{
var info = line.Split(new char[] { ';' });
if (string.Compare(info[0], callId) == 0)
{
if (info.Length > 2)
{
res = info[3];
}
else
{
res = "Description is not found";
}
break;
}
}
return res;
}
public PhoneCallStatus InitiateCall(string phoneNumber, Guid requestId, Dictionary<string,object> deliveryAttributes)
{
// Here should be some logic for performing voice call
// For testing purposes we just write details in file
string info = string.Format("{0};{1};{2};{3}", requestId, phoneNumber, 0, string.Empty);
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(info);
}
return PhoneCallStatus.Pending;
}
}
}
Создайте резервную копию MfaSettings.xml, расположенную в папке "C:\Program Files\Microsoft Forefront Identity Manager\2010\Service".
Обновите или снимите следующие строки:
Удаление и очистка всех строк записей конфигурации
Обновите или добавьте следующие строки в раздел MfaSettings.xml с вашим индивидуальным поставщиком телефонии.
<CustomPhoneProvider>C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\CustomPhoneGate.dll</CustomPhoneProvider>
После перезапуска этой службы используйте SSPR и (или) PAM для проверки функциональности с пользовательским поставщиком удостоверений.
Примечание
Чтобы вернуть параметр, замените MfaSettings.xml файлом резервной копии на шаге 3.