Menggunakan penyedia autentikasi multifaktor kustom melalui API selama aktivasi peran PAM atau di SSPR
Pelanggan MIM memiliki dua opsi untuk autentikasi multifaktor dalam skenario SSPR dan PAM:
- Gunakan penyedia pengiriman satu kali kata sandi kustom, yang hanya berlaku dalam skenario MIM SSPR dan didokumenkan dalam panduan untuk Mengonfigurasi Self-Service Reset Kata Sandi dengan Gerbang SMS OTP
- Gunakan penyedia telepon autentikasi multifaktor kustom. Ini berlaku dalam skenario MIM SSPR dan PAM, yang dijelaskan dalam artikel ini
Artikel ini menguraikan cara menggunakan MIM dengan penyedia autentikasi multifaktor kustom, melalui API dan SDK integrasi yang dikembangkan oleh pelanggan.
Prasyarat
Untuk menggunakan API penyedia autentikasi multifaktor kustom dengan MIM, Anda memerlukan:
- Nomor telepon untuk semua pengguna kandidat
- Perbaikan MIM 4.5.202.0 atau yang lebih baru - lihat riwayat versi untuk pengumuman
- Layanan MIM dikonfigurasi untuk SSPR atau PAM
Pendekatan menggunakan kode autentikasi multifaktor kustom
Langkah 1: Pastikan Layanan MIM berada di versi 4.5.202.0 atau yang lebih baru
Unduh dan instal perbaikan MIM 4.5.202.0 atau versi yang lebih baru.
Langkah 2: Buat DLL yang mengimplementasikan antarmuka IPhoneServiceProvider
DLL harus menyertakan kelas , yang mengimplementasikan tiga metode:
InitiateCall
: Layanan MIM akan memanggil metode ini. Layanan meneruskan nomor telepon dan ID permintaan sebagai parameter. Metode harus mengembalikanPhoneCallStatus
nilaiPending
,Success
atauFailed
.GetCallStatus
: Jika panggilan sebelumnya untukinitiateCall
dikembalikanPending
, Layanan MIM akan memanggil metode ini. Metode ini juga mengembalikanPhoneCallStatus
nilaiPending
,Success
atauFailed
.GetFailureMessage
: Jika pemanggilan sebelumnya atauInitiateCall
GetCallStatus
dikembalikanFailed
, Layanan MIM akan memanggil metode ini. Metode ini mengembalikan pesan diagnostik.
Implementasi metode ini harus aman utas, dan selanjutnya implementasi dan GetCallStatus
GetFailureMessage
tidak boleh berasumsi bahwa mereka akan dipanggil oleh utas yang sama dengan panggilan sebelumnya ke InitiateCall
.
Simpan DLL di C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\
direktori.
Kode sampel, yang dapat dikompilasi menggunakan Visual Studio 2010 atau yang lebih baru.
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;
}
}
}
Langkah 3: Simpan MfaSettings yang ada
Cadangkan MfaSettings.xml yang terletak di folder "C:\Program Files\Microsoft Forefront Identity Manager\2010\Service".
Langkah 4: Edit file MfaSettings.xml
Perbarui atau kosongkan baris berikut:
Hapus/Hapus semua baris entri konfigurasi
Perbarui atau tambahkan baris berikut ke baris berikut ini untuk MfaSettings.xml dengan penyedia telepon kustom Anda
<CustomPhoneProvider>C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\CustomPhoneGate.dll</CustomPhoneProvider>
Langkah 5: Mulai ulang Layanan MIM
Setelah layanan dimulai ulang, gunakan SSPR dan/atau PAM untuk memvalidasi fungsionalitas dengan IdP kustom.
Catatan
Untuk mengembalikan pengaturan, ganti MfaSettings.xml dengan file cadangan Anda di langkah 3