Använda en anpassad multifaktorautentiseringsprovider via ett API under PAM-rollaktivering eller i SSPR
MIM-kunder har två alternativ för multifaktorautentisering i SSPR- och PAM-scenarierna:
- Använd en anpassad leveransprovider för engångslösenord, som endast gäller i MIM SSPR-scenariot och som beskrivs i guiden Konfigurera Self-Service lösenordsåterställning med OTP SMS Gate
- Använd en anpassad leverantör för multifaktorautentiseringstelefoni. Detta gäller både i MIM SSPR- och PAM-scenarierna, som beskrivs i den här artikeln
Den här artikeln beskriver hur du använder MIM med en anpassad multifaktorautentiseringsprovider, via ett API och en integrerings-SDK som utvecklats av kunden.
Förutsättningar
För att kunna använda ett anpassat API för multifaktorautentiseringsprovider med MIM behöver du:
- telefonnummer till alla kandidatanvändare
- MIM-snabbkorrigering 4.5.202.0 eller senare – se versionshistorik för meddelanden
- MIM-tjänst konfigurerad för SSPR eller PAM
Metod för att använda anpassad kod för multifaktorautentisering
Steg 1: Kontrollera att MIM-tjänsten har version 4.5.202.0 eller senare
Ladda ned och installera MIM-snabbkorrigering 4.5.202.0 eller en senare version.
Steg 2: Skapa en DLL som implementerar gränssnittet IPhoneServiceProvider
DLL:en måste innehålla en klass som implementerar tre metoder:
InitiateCall
: MIM-tjänsten anropar den här metoden. Tjänsten skickar telefonnumret och begärande-ID:t som parametrar. Metoden måste returnera värdetPhoneCallStatus
Pending
,Success
ellerFailed
.GetCallStatus
: Om ett tidigare anrop tillinitiateCall
returneradePending
anropar MIM-tjänsten den här metoden. Den här metoden returnerarPhoneCallStatus
också värdetPending
,Success
ellerFailed
.GetFailureMessage
: Om ett tidigare anrop avInitiateCall
ellerGetCallStatus
returneradesFailed
anropar MIM-tjänsten den här metoden. Den här metoden returnerar ett diagnostikmeddelande.
Implementeringarna av dessa metoder måste vara trådsäkra och dessutom måste implementeringen av GetCallStatus
och GetFailureMessage
inte förutsätta att de anropas av samma tråd som ett tidigare anrop till InitiateCall
.
Lagra DLL:en i C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\
katalogen.
Exempelkod som kan kompileras med Visual Studio 2010 eller senare.
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;
}
}
}
Steg 3: Spara befintliga MfaSettings
Säkerhetskopiera MfaSettings.xml som finns i mappen "C:\Program Files\Microsoft Forefront Identity Manager\2010\Service".
Steg 4: Redigera filen MfaSettings.xml
Uppdatera eller avmarkera följande rader:
Ta bort/rensa alla konfigurationsposter
Uppdatera eller lägg till följande rader i följande för att MfaSettings.xml med din anpassade telefonleverantör
<CustomPhoneProvider>C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\CustomPhoneGate.dll</CustomPhoneProvider>
Steg 5: Starta om MIM-tjänsten
När tjänsten har startats om använder du SSPR och/eller PAM för att verifiera funktioner med den anpassade identitetsprovidern.
Anteckning
Om du vill återställa inställningen ersätter du MfaSettings.xml med säkerhetskopieringsfilen i steg 3