Použití vlastního zprostředkovatele vícefaktorového ověřování prostřednictvím rozhraní API během aktivace role PAM nebo v SSPR
Zákazníci MIM mají dvě možnosti vícefaktorového ověřování ve scénářích SSPR a PAM:
- Použijte vlastního poskytovatele jednorázového doručování hesel, který platí jenom ve scénáři MIM SSPR a který je popsaný v průvodci konfigurací Self-Service resetování hesla pomocí brány SMS STP.
- Použijte vlastního zprostředkovatele telefonie s vícefaktorovým ověřováním. To platí pro scénáře MIM SSPR i PAM popsané v tomto článku.
Tento článek popisuje, jak používat MIM s vlastním poskytovatelem vícefaktorového ověřování prostřednictvím rozhraní API a integrační sady SDK vyvinuté zákazníkem.
Požadavky
Abyste mohli s MIM používat vlastní rozhraní API zprostředkovatele vícefaktorového ověřování, potřebujete:
- Telefonní čísla pro všechny kandidáty
- Oprava hotfix MIM 4.5.202.0 nebo novější – oznámení najdete v historii verzí .
- Služba MIM nakonfigurovaná pro SSPR nebo PAM
Přístup s využitím vlastního kódu vícefaktorového ověřování
Krok 1: Ujistěte se, že je služba MIM ve verzi 4.5.202.0 nebo novější.
Stáhněte a nainstalujte opravu hotfix MIM 4.5.202.0 nebo novější.
Krok 2: Vytvoření knihovny DLL, která implementuje rozhraní IPhoneServiceProvider
Knihovna DLL musí obsahovat třídu, která implementuje tři metody:
InitiateCall
: Služba MIM vyvolá tuto metodu. Služba předá telefonní číslo a ID požadavku jako parametry. Metoda musí vracetPhoneCallStatus
hodnotuPending
,Success
neboFailed
.GetCallStatus
: Pokud se vrátíPending
dřívější voláníinitiateCall
, služba MIM vyvolá tuto metodu. Tato metoda také vrátíPhoneCallStatus
hodnotuPending
,Success
neboFailed
.GetFailureMessage
: Pokud se předchozí vyvoláníInitiateCall
neboGetCallStatus
vrátíFailed
, služba MIM vyvolá tuto metodu. Tato metoda vrátí diagnostickou zprávu.
Implementace těchto metod musí být bezpečné z více vláken, a navíc implementace GetCallStatus
a GetFailureMessage
nesmí předpokládat, že budou volány stejným vláknem jako dřívější volání .InitiateCall
Uložte knihovnu DLL do C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\
adresáře.
Ukázkový kód, který lze zkompilovat pomocí sady Visual Studio 2010 nebo novější.
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;
}
}
}
Krok 3: Uložení existujícího MfaSettings
Zálohujte MfaSettings.xml umístěný ve složce C:\Program Files\Microsoft Forefront Identity Manager\2010\Service.
Krok 4: Úprava souboru MfaSettings.xml
Aktualizujte nebo vymažte následující řádky:
Odebrat nebo vymazat všechny řádky položek konfigurace
Aktualizujte nebo do následujících řádků přidejte následující řádky, abyste MfaSettings.xml s vaším vlastním poskytovatelem telefonních služeb.
<CustomPhoneProvider>C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\CustomPhoneGate.dll</CustomPhoneProvider>
Krok 5: Restartování služby MIM
Po restartování služby pomocí SSPR nebo PAM ověřte funkčnost pomocí vlastního zprostředkovatele identity.
Poznámka
Pokud chcete vrátit nastavení zpět, nahraďte MfaSettings.xml záložním souborem v kroku 3.