PAM rolü etkinleştirme sırasında veya SSPR 'de bir API aracılığıyla özel bir Multi-Factor Authentication sağlayıcısı kullanmaUse a custom Multi-Factor Authentication provider via an API during PAM role activation or in SSPR

Azure AD Premium veya Azure MFA müşterileri, Azure MFA 'yı iki MıM senaryosunda (Privileged Access Management (PAM) rol etkinleştirme ve self servis parola sıfırlama (SSPR) ile tümleştirilebilir.Customers of Azure AD Premium or Azure MFA can integrate Azure MFA in two MIM scenarios - Privileged Access Management (PAM) role activation, and Self-Service Password Reset (SSPR).

MıM müşterilerinin iki ek seçeneği vardır:MIM customers have two additional options:

  • Yalnızca MıM SSPR senaryosunda geçerli olan ve OTP SMS Gate Ile self servis parola sıfırlamayı yapılandırmak için kılavuz bölümünde belgelenen, özel bir kerelik parola teslim sağlayıcısı kullanınUse a custom one-time-password delivery provider, which is applicable only in the MIM SSPR scenario and documented in guide to Configure Self-Service Password Reset with OTP SMS Gate
  • Özel bir Multi-Factor Authentication telefon sağlayıcısı kullanın.Use a custom multi-factor authentication telephony provider. Bu makalede açıklanan MıM SSPR ve PAM senaryolarında her ikisi de geçerlidir.This is applicable in both the MIM SSPR and PAM scenarios, described in this article

Bu makalede, bir API ve müşteri tarafından geliştirilen bir tümleştirme SDK 'sı aracılığıyla özel bir Multi-Factor Authentication sağlayıcısı ile MıM 'in nasıl kullanılacağı özetlenmektedir.This article outlines how to use MIM with a custom multi-factor authentication provider, via an API and an integration SDK developed by the customer.

Ön koşullarPrerequisites

MıM ile özel bir Multi-Factor Authentication sağlayıcısı API 'sini kullanmak için şunlar gerekir:In order to use a custom Multi-Factor Authentication provider API with MIM, you need:

  • Tüm aday kullanıcılar için telefon numaralarıPhone numbers for all candidate users
  • MıM düzeltmesi 4.5.202.0 veya üzeri-bkz. duyurular için Sürüm geçmişiMIM hotfix 4.5.202.0 or later - see version history for announcements
  • SSPR veya PAM için yapılandırılmış MıM hizmetiMIM Service configured for SSPR or PAM

Özel Multi-Factor Authentication kodu kullanılarak yaklaşımApproach using custom multi-factor authentication code

1. Adım: MıM hizmetinin sürüm 4.5.202.0 veya sonraki sürümlerde olduğundan emin olunStep 1: Ensure MIM Service is at version 4.5.202.0 or later

MıM düzeltmesini 4.5.202.0 veya sonraki bir sürümü indirip yükleyin.Download and install MIM hotfix 4.5.202.0 or a later version.

2. Adım: IPhoneServiceProvider arabirimini uygulayan bir DLL oluşturmaStep 2: Create a DLL which implements the IPhoneServiceProvider interface

DLL, üç yöntemi uygulayan bir sınıf içermelidir:The DLL must include a class, which implements three methods:

  • InitiateCall: MıM hizmeti bu yöntemi çağıracaktır.InitiateCall: The MIM Service will invoke this method. Hizmet, telefon numarasını ve istek KIMLIĞINI parametre olarak geçirir.The service passes the phone number and request ID as parameters. Yöntemi PhoneCallStatus Pending , veya değerini döndürmelidir Success Failed .The method must return a PhoneCallStatus value of Pending, Success or Failed.
  • GetCallStatus: Daha önceki bir çağrı initiateCall döndürülürse Pending , MIM hizmeti bu yöntemi çağırır.GetCallStatus: If an earlier call to initiateCall returned Pending, the MIM Service will invoke this method. Bu yöntem PhoneCallStatus , veya değerini de Pending döndürür Success Failed .This method also returns PhoneCallStatus value of Pending, Success or Failed.
  • GetFailureMessage: Önceki bir çağrısı InitiateCall veya GetCallStatus döndürülmezse Failed , MIM hizmeti bu yöntemi çağırır.GetFailureMessage: If a previous invocation of InitiateCall or GetCallStatus returned Failed, the MIM Service will invoke this method. Bu yöntem bir tanılama iletisi döndürür.This method returns a diagnostic message.

Bu yöntemlerin uygulamaları iş parçacığı açısından güvenli olmalıdır ve uygulamasının ve ' nin uygulanması, GetCallStatus GetFailureMessage daha önceki bir çağrısıyla aynı iş parçacığı tarafından çağrılacağını varsaymamalıdır InitiateCall .The implementations of these methods must be thread safe, and furthermore the implementation of the GetCallStatus and GetFailureMessage must not assume that they will be called by the same thread as an earlier call to InitiateCall.

DLL 'yi C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\ dizinde depolayın.Store the DLL in the C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\ directory.

Visual Studio 2010 veya üzeri kullanılarak derlenebilecek örnek kod.Sample code, which can be compiled using Visual Studio 2010 or later.

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: "C:\Program Files\Microsoft Forefront Identity Manager\2010\Service" konumundaki MfaSettings. xml ' i yedekleyinStep 3: Backup the MfaSettings.xml located in the "C:\Program Files\Microsoft Forefront Identity Manager\2010\Service"

4. Adım: MfaSettings. xml dosyasını düzenlemeStep 4: Edit the MfaSettings.xml file

Aşağıdaki satırları güncelleştirin veya temizleyin:Update or clear the following lines:

  • Tüm yapılandırma girişleri satırlarını kaldır/temizleRemove/Clear all configuration entries lines

  • Özel telefon sağlayıcınızla MfaSettings. xml dosyası için aşağıdaki satırları güncelleştirin veya aşağıdaki satırları ekleyinUpdate or add the following lines to the following to MfaSettings.xml with your custom phone provider
    <CustomPhoneProvider>C:\Program Files\Microsoft Forefront Identity Manager\2010\Service\CustomPhoneGate.dll</CustomPhoneProvider>

5. Adım: MıM hizmetini yeniden başlatınStep 5: Restart MIM Service

Hizmet yeniden başlatıldıktan sonra, özel kimlik sağlayıcısıyla ilgili işlevselliği doğrulamak için SSPR ve/veya PAM kullanın.After the service has restarted, use SSPR and/or PAM to validate functionality with the custom identity provider.

Not

Bu ayarı değiştirmek için, adım 3 ' teki MfaSettings. xml dosyasını yedekleme dosyanıza değiştirinTo revert setting replace MfaSettings.xml with your backup file in step 3

Sonraki AdımlarNext Steps