PAM rol etkinleştirmesi sırasında veya SSPR'de API aracılığıyla özel çok faktörlü kimlik doğrulama sağlayıcısı kullanma
MIM müşterilerinin SSPR ve PAM senaryolarında çok faktörlü kimlik doğrulaması için iki seçeneği vardır:
- Yalnızca MIM SSPR senaryosunda geçerli olan ve OTP SMS Geçidi ile Self-Service Parola Sıfırlamayı Yapılandırma kılavuzunda belgelenen özel bir tek seferlik parola teslim sağlayıcısı kullanın
- Özel bir çok faktörlü kimlik doğrulaması telefon sağlayıcısı kullanın. Bu, bu makalede açıklanan MIM SSPR ve PAM senaryolarında geçerlidir
Bu makalede, müşteri tarafından geliştirilen bir API ve tümleştirme SDK'sı aracılığıyla özel bir çok faktörlü kimlik doğrulama sağlayıcısıyla MIM'in nasıl kullanılacağı özetlenmiştir.
Önkoşullar
MIM ile özel çok faktörlü kimlik doğrulama sağlayıcısı API'sini kullanmak için şunları yapmanız gerekir:
- Tüm aday kullanıcılar için telefon numaraları
- MIM düzeltmesi 4.5.202.0 veya üzeri - Duyurular için sürüm geçmişine bakın
- SSPR veya PAM için yapılandırılmış MIM Hizmeti
Özel çok faktörlü kimlik doğrulama kodunu kullanma yaklaşımı
1. Adım: MIM Hizmeti'nin 4.5.202.0 veya sonraki bir sürümde olduğundan emin olun
MIM düzeltmesi 4.5.202.0 veya sonraki bir sürümü indirip yükleyin.
2. Adım: IPhoneServiceProvider arabirimini uygulayan bir DLL oluşturma
DLL, üç yöntem uygulayan bir sınıf içermelidir:
InitiateCall
: MIM Hizmeti bu yöntemi çağırır. Hizmet, telefon numarasını ve istek kimliğini parametre olarak geçirir. yöntemi ,Success
veyaFailed
değeriniPending
döndürmelidirPhoneCallStatus
.GetCallStatus
: önceki bir çağrısıinitiateCall
döndürülürsePending
, MIM Hizmeti bu yöntemi çağırır. Bu yöntem, veyaFailed
değeriniPending
Success
de döndürürPhoneCallStatus
.GetFailureMessage
: Önceki bir çağrısıInitiateCall
veyaGetCallStatus
döndürüldüyseFailed
, MIM Hizmeti bu yöntemi çağırır. Bu yöntem bir tanılama iletisi döndürür.
Bu yöntemlerin uygulamaları iş parçacığı güvenli olmalı ve ayrıca uygulamasının GetCallStatus
ve GetFailureMessage
uygulaması, önceki InitiateCall
çağrısıyla aynı iş parçacığı tarafından çağrılacaklarını varsaymamalıdır.
DLL dosyasını dizininde depolayın C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\
.
Visual Studio 2010 veya üzeri kullanılarak derlenebilir örnek kod.
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;
}
}
}
3. Adım: Mevcut MfaSettings'i kaydetme
"C:\Program Files\Microsoft Forefront Identity Manager\2010\Service" klasöründe bulunan MfaSettings.xml yedekleyin.
4. Adım: MfaSettings.xml dosyasını düzenleme
Aşağıdaki satırları güncelleştirin veya temizleyin:
Tüm yapılandırma girdileri satırlarını kaldırma/temizleme
Özel telefon sağlayıcınızla MfaSettings.xml için aşağıdaki satırları güncelleştirin veya aşağıdaki satırlara ekleyin
<CustomPhoneProvider>C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\CustomPhoneGate.dll</CustomPhoneProvider>
5. Adım: MIM Hizmetini Yeniden Başlatma
Hizmet yeniden başlatıldıktan sonra, özel kimlik sağlayıcısıyla işlevselliği doğrulamak için SSPR ve/veya PAM kullanın.
Not
Ayarı geri döndürmek için MfaSettings.xml 3. adımda yedekleme dosyanızla değiştirin