Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento názorný postup obsahuje pokyny pro implementaci vlastní metody ověřování pro službu AD FS ve Windows Serveru 2012 R2. Další informace naleznete v tématu Další metody ověřování.
Warning
Příklad, který zde můžete sestavit, je pouze pro vzdělávací účely. Tyto pokyny jsou určené pro co nejjednodušší možnou implementaci, aby zpřístupnily požadované prvky modelu. Bez back-endového ověřování, zpracování chyb a konfiguračních dat.
Nastavení vývojového prostředí
Tento návod používá Visual Studio 2012. Projekt lze sestavit pomocí libovolného vývojového prostředí, které může vytvořit třídu .NET pro Windows. Projekt musí cílit na .NET 4.5, protože metody BeginAuthentication a TryEndAuthentication používají typ System.Security.Claims.Claim, součást rozhraní .NET Framework verze 4.5. Pro projekt je vyžadován jeden odkaz:
| Referenční knihovna DLL | Kde to najít | Požadováno pro |
|---|---|---|
| Microsoft.IdentityServer.Web.dll | Knihovna DLL se nachází v %windir%\ADFS na serveru s Windows Serverem 2012 R2, na kterém je služba AD FS nainstalovaná. Tento soubor DLL musí být zkopírován do vývojového počítače a v projektu vytvořen explicitní odkaz. |
Typy rozhraní včetně IAuthenticationContext, IProofData |
Vytvoření zprostředkovatele
V sadě Visual Studio 2012: Zvolte Soubor>Nový projekt>...
Vyberte knihovnu tříd a ujistěte se, že cílíte na .NET 4.5.
Vytvořte kopii Microsoft.IdentityServer.Web.dll z %windir%\ADFS na serveru s Windows Serverem 2012 R2, na kterém je služba AD FS nainstalovaná, a vložte ji do složky Projectu na vývojovém počítači.
V Průzkumníku řešení klikněte pravým tlačítkem na Odkazy a Přidat odkaz...
Přejděte do místní kopie Microsoft.IdentityServer.Web.dll a přidejte...
Kliknutím na tlačítko OK potvrďte nový odkaz:
Teď byste měli být nastaveni tak, abyste vyřešili všechny typy požadované pro poskytovatele.
Přidejte do projektu novou třídu (klikněte pravým tlačítkem na projekt, přidat... Třída...) a pojmenujte ho jako MyAdapter, jak je znázorněno níže:
V novém souboru MyAdapter.cs nahraďte stávající kód následujícím kódem:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Globalization; using System.IO; using System.Net; using System.Xml.Serialization; using Microsoft.IdentityServer.Web.Authentication.External; using Claim = System.Security.Claims.Claim; namespace MFAadapter { class MyAdapter : IAuthenticationAdapter { public IAuthenticationAdapterMetadata Metadata { //get { return new <instance of IAuthenticationAdapterMetadata derived class>; } } public IAdapterPresentation BeginAuthentication(Claim identityClaim, HttpListenerRequest request, IAuthenticationContext authContext) { //return new instance of IAdapterPresentationForm derived class } public bool IsAvailableForUser(Claim identityClaim, IAuthenticationContext authContext) { return true; //its all available for now } public void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) { //this is where AD FS passes us the config data, if such data was supplied at registration of the adapter } public void OnAuthenticationPipelineUnload() { } public IAdapterPresentation OnError(HttpListenerRequest request, ExternalAuthenticationException ex) { //return new instance of IAdapterPresentationForm derived class } public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims) { //return new instance of IAdapterPresentationForm derived class } } }Ještě nejsme připraveni stavět... zbývají ještě dvě další rozhraní.
Přidejte do projektu dvě další třídy: jedna je pro metadata a druhá pro formulář prezentace. Můžete je přidat do stejného souboru jako třídu výše.
class MyMetadata : IAuthenticationAdapterMetadata { } class MyPresentationForm : IAdapterPresentationForm { }V dalším kroku můžete přidat požadované členy pro každý. Nejprve metadata (s užitečnými komentáři přímo v textu)
class MyMetadata : IAuthenticationAdapterMetadata { //Returns the name of the provider that will be shown in the AD FS management UI (not visible to end users) public string AdminName { get { return "My Example MFA Adapter"; } } //Returns an array of strings containing URIs indicating the set of authentication methods implemented by the adapter /// AD FS requires that, if authentication is successful, the method actually employed will be returned by the /// final call to TryEndAuthentication(). If no authentication method is returned, or the method returned is not /// one of the methods listed in this property, the authentication attempt will fail. public virtual string[] AuthenticationMethods { get { return new[] { "http://example.com/myauthenticationmethod1", "http://example.com/myauthenticationmethod2" }; } } /// Returns an array indicating which languages are supported by the provider. AD FS uses this information /// to determine the best language\locale to display to the user. public int[] AvailableLcids { get { return new[] { new CultureInfo("en-us").LCID, new CultureInfo("fr").LCID}; } } /// Returns a Dictionary containing the set of localized friendly names of the provider, indexed by lcid. /// These Friendly Names are displayed in the "choice page" offered to the user when there is more than /// one secondary authentication provider available. public Dictionary<int, string> FriendlyNames { get { Dictionary<int, string> _friendlyNames = new Dictionary<int, string>(); _friendlyNames.Add(new CultureInfo("en-us").LCID, "Friendly name of My Example MFA Adapter for end users (en)"); _friendlyNames.Add(new CultureInfo("fr").LCID, "Friendly name translated to fr locale"); return _friendlyNames; } } /// Returns a Dictionary containing the set of localized descriptions (hover over help) of the provider, indexed by lcid. /// These descriptions are displayed in the "choice page" offered to the user when there is more than one /// secondary authentication provider available. public Dictionary<int, string> Descriptions { get { Dictionary<int, string> _descriptions = new Dictionary<int, string>(); _descriptions.Add(new CultureInfo("en-us").LCID, "Description of My Example MFA Adapter for end users (en)"); _descriptions.Add(new CultureInfo("fr").LCID, "Description translated to fr locale"); return _descriptions; } } /// Returns an array indicating the type of claim that the adapter uses to identify the user being authenticated. /// Note that although the property is an array, only the first element is currently used. /// MUST BE ONE OF THE FOLLOWING /// "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" /// "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" /// "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" /// "http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" public string[] IdentityClaims { get { return new[] { "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" }; } } //All external providers must return a value of "true" for this property. public bool RequiresIdentity { get { return true; } } }Teď byste měli být schopni F12 (pravým tlačítkem myši – Přejít na definici) v IAuthenticationAdapter zobrazit sadu požadovaných členů rozhraní.
Dále můžete provést implementaci těchto.
Nahraďte celý obsah vaší třídy následujícím kódem:
namespace MFAadapter { class MyAdapter : IAuthenticationAdapter { public IAuthenticationAdapterMetadata Metadata { //get { return new <instance of IAuthenticationAdapterMetadata derived class>; } } public IAdapterPresentation BeginAuthentication(Claim identityClaim, HttpListenerRequest request, IAuthenticationContext authContext) { //return new instance of IAdapterPresentationForm derived class } public bool IsAvailableForUser(Claim identityClaim, IAuthenticationContext authContext) { return true; //its all available for now } public void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) { //this is where AD FS passes us the config data, if such data was supplied at registration of the adapter } public void OnAuthenticationPipelineUnload() { } public IAdapterPresentation OnError(HttpListenerRequest request, ExternalAuthenticationException ex) { //return new instance of IAdapterPresentationForm derived class } public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims) { //return new instance of IAdapterPresentationForm derived class } } }V dalším kroku bude formulář prezentace:
class MyPresentationForm : IAdapterPresentationForm { /// Returns the HTML Form fragment that contains the adapter user interface. This data will be included in the web page that is presented /// to the cient. public string GetFormHtml(int lcid) { string htmlTemplate = Resources.FormPageHtml; //todo we will implement this return htmlTemplate; } /// Return any external resources, ie references to libraries etc., that should be included in /// the HEAD section of the presentation form html. public string GetFormPreRenderHtml(int lcid) { return null; } //returns the title string for the web page which presents the HTML form content to the end user public string GetPageTitle(int lcid) { return "MFA Adapter"; } }Všimněte si "todo" pro Resources.FormPageHtml element výše. Můžete ho opravit za minutu, ale nejprve přidáme poslední požadované návratové příkazy založené na nově implementovaných typech do vaší počáteční třídy MyAdapter. Uděláte to tak, že do stávající implementace IAuthenticationAdapter přidáte následující:
class MyAdapter : IAuthenticationAdapter { public IAuthenticationAdapterMetadata Metadata { //get { return new <instance of IAuthenticationAdapterMetadata derived class>; } get { return new MyMetadata(); } } public IAdapterPresentation BeginAuthentication(Claim identityClaim, HttpListenerRequest request, IAuthenticationContext authContext) { //return new instance of IAdapterPresentationForm derived class return new MyPresentationForm(); } public bool IsAvailableForUser(Claim identityClaim, IAuthenticationContext authContext) { return true; //its all available for now } public void OnAuthenticationPipelineLoad(IAuthenticationMethodConfigData configData) { //this is where AD FS passes us the config data, if such data was supplied at registration of the adapter } public void OnAuthenticationPipelineUnload() { } public IAdapterPresentation OnError(HttpListenerRequest request, ExternalAuthenticationException ex) { //return new instance of IAdapterPresentationForm derived class return new MyPresentationForm(); } public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims) { //return new instance of IAdapterPresentationForm derived class outgoingClaims = new Claim[0]; return new MyPresentationForm(); } }Nyní k souboru zdrojů obsahujícímu fragment HTML. Ve složce projektu vytvořte nový textový soubor s následujícím obsahem:
<div id="loginArea"> <form method="post" id="loginForm" > <!-- These inputs are required by the presentation framework. Do not modify or remove --> <input id="authMethod" type="hidden" name="AuthMethod" value="%AuthMethod%" /> <input id="context" type="hidden" name="Context" value="%Context%" /> <!-- End inputs are required by the presentation framework. --> <p id="pageIntroductionText">This content is provided by the MFA sample adapter. Challenge inputs should be presented below.</p> <label for="challengeQuestionInput" class="block">Question text</label> <input id="challengeQuestionInput" name="ChallengeQuestionAnswer" type="text" value="" class="text" placeholder="Answer placeholder" /> <div id="submissionArea" class="submitMargin"> <input id="submitButton" type="submit" name="Submit" value="Submit" onclick="return AuthPage.submitAnswer()"/> </div> </form> <div id="intro" class="groupMargin"> <p id="supportEmail">Support information</p> </div> <script type="text/javascript" language="JavaScript"> //<![CDATA[ function AuthPage() { } AuthPage.submitAnswer = function () { return true; }; //]]> </script> </div>Pak vyberte soubor >, pojmenujte soubor Resources a klikněte na Přidat:
Pak v souboru Resources.resx zvolte Přidat prostředek... Přidejte existující soubor. Přejděte do textového souboru (obsahujícího fragment html), který jste uložili výše.
Ujistěte se, že kód GetFormHtml správně přeloží název nového prostředku předponou názvu souboru prostředků (souboru .resx), za kterou následuje název samotného prostředku:
public string GetFormHtml(int lcid) { string htmlTemplate = Resources.MfaFormHtml; //Resxfilename.resourcename return htmlTemplate; }
Teď byste měli být schopni sestavovat.
Sestavení adaptéru
Adaptér by měl být integrovaný do sestavení .NET se silným názvem, které lze nainstalovat do GAC ve Windows. Pokud toho chcete dosáhnout v projektu sady Visual Studio, proveďte následující kroky:
V Průzkumníku řešení klikněte pravým tlačítkem na název projektu a klikněte na Vlastnosti.
Na kartě Podepsání zaškrtněte políčko Podepsat sestavení a zvolte <Nový...> v části Zvolte soubor silného názvu: Zadejte název a heslo klíče a klikněte na OK. Pak se ujistěte, že je zaškrtnuto podepsání sestavení a nezaškrtnuto pouze opožděné podepsání. Stránka Podepisování vlastností by měla vypadat takto:
Pak sestavte řešení.
Nasazení adaptéru na testovací počítač služby AD FS
Než může služba AD FS vyvolat externího poskytovatele, musí být v systému zaregistrovaná. Poskytovatelé adaptérů musí poskytnout instalační program, který provede nezbytné instalační akce, včetně instalace v GAC, a instalační program musí podporovat registraci ve službě AD FS. Pokud to není hotové, musí správce spustit následující kroky Windows PowerShellu. Tyto kroky je možné použít v laboratoři k umožnění testování a ladění.
Příprava testovacího počítače služby AD FS
Zkopírujte soubory a přidejte je do GAC.
Ujistěte se, že máte počítač nebo virtuální počítač s Windows Serverem 2012 R2.
Nainstalujte službu role AD FS a nakonfigurujte farmu s alespoň jedním uzlem.
Podrobný postup nastavení federačního serveru v testovacím prostředí najdete v průvodci nasazením služby AD FS pro Windows Server 2012 R2.
Zkopírujte nástroje Gacutil.exe na server.
Gacutil.exe lze najít ve složce%homedrive%Program Files (x86)Microsoft SDKsWindowsv8.0AbinNETFX 4.0 Tools na počítači s Windows 8. Budete potřebovat samotný soubor gacutil.exe a 1033, en-USa další lokalizovanou složku prostředků pod umístěním nástrojů NETFX 4.0 .
Zkopírujte soubory zprostředkovatele (jeden nebo více souborů se silným názvem podepsaným .dll soubory) do stejného umístění složky jako gacutil.exe (umístění je jen pro usnadnění).
Přidejte své .dll soubory do GAC na každém federačním serveru služby AD FS ve farmě:
Příklad: Přidání knihovny DLL do GAC pomocí nástroje příkazového řádku GACutil.exe:
C:>.gacutil.exe /if .<yourdllname>.dllPro zobrazení výsledné položky v GAC:
C:>.gacutil.exe /l <yourassemblyname>
Registrace poskytovatele ve službě AD FS
Po splnění výše uvedených požadavků otevřete na federačním serveru příkazové okno Windows PowerShellu a zadejte následující příkazy (všimněte si, že pokud používáte farmu federačních serverů, která používá interní databázi Windows, musíte tyto příkazy spustit na primárním federačním serveru farmy):
Register-AdfsAuthenticationProvider –TypeName YourTypeName –Name “AnyNameYouWish” [–ConfigurationFilePath (optional)]Kde YourTypeName je vaše silné typové jméno v .NET: "YourDefaultNamespace.YourIAuthenticationAdapterImplementationClassName, YourAssemblyName, Version=YourAssemblyVersion, Culture=neutral, PublicKeyToken=YourPublicKeyTokenValue, processorArchitecture=MSIL"
Tím zaregistrujete externího poskytovatele ve službě AD FS s názvem, který jste zadali jako AnyNameYouWish výše.
Restartujte službu AD FS (například pomocí modulu snap-in Služby systému Windows).
Spusťte následující příkaz:
Get-AdfsAuthenticationProvider.Zobrazí se váš poskytovatel jako jeden z poskytovatelů v systému.
Example:
$typeName = "MFAadapter.MyAdapter, MFAadapter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e675eb33c62805a0, processorArchitecture=MSIL” Register-AdfsAuthenticationProvider -TypeName $typeName -Name “MyMFAAdapter” net stop adfssrv net start adfssrvPokud máte ve svém prostředí AD FS povolenou službu registrace zařízení, spusťte také následující příkaz PowerShellu:
net start drsK ověření registrovaného poskytovatele použijte následující příkaz PowerShellu:
Get-AdfsAuthenticationProvider.Zobrazí se váš poskytovatel jako jeden z poskytovatelů v systému.
Vytvořte zásadu ověřování služby AD FS, která aktivuje váš adaptér.
Vytvořte zásady ověřování pomocí modulu snap-in pro správu služby AD FS
Otevřete modul snap-in Správa služby AD FS (z nabídky Nástroje správce serveru ).
Klikněte na Zásady ověřování.
V prostředním podokně klikněte v části Multi-Factor Authentication na odkaz Upravit napravo od globálního nastavení.
V části Vybrat další metody ověřování v dolní části stránky zaškrtněte políčko pro název správce vašeho poskytovatele. Klikněte na Použít.
Pokud chcete poskytnout trigger pro vyvolání vícefaktorového ověřování pomocí adaptéru, zkontrolujte v části Umístění například extranet i intranet. Klikněte na OK. (Pokud chcete nakonfigurovat triggery pro každou předávající stranu, přečtěte si téma Vytvoření zásad ověřování pomocí Prostředí Windows PowerShell níže.)
Výsledky zkontrolujte pomocí následujících příkazů:
První použití
Get-AdfsGlobalAuthenticationPolicy. Název zprostředkovatele by se měl zobrazit jako jedna z hodnot AdditionalAuthenticationProvider.Pak použijte
Get-AdfsAdditionalAuthenticationRule. V uživatelském rozhraní správce by se měla zobrazit pravidla pro extranet a intranet nakonfigurovaná v důsledku výběru zásad.
Vytvoření zásad ověřování pomocí Windows PowerShellu
Nejprve povolte poskytovatele v globální politice:
Set-AdfsGlobalAuthenticationPolicy -AdditionalAuthenticationProvider “YourAuthProviderName”`Note
Všimněte si, že hodnota zadaná pro Parametr AdditionalAuthenticationProvider odpovídá hodnotě, kterou jste zadali pro parametr "Name" v rutině Register-AdfsAuthenticationProvider výše a vlastnost "Name" z výstupu rutiny Get-AdfsAuthenticationProvider.
Set-AdfsGlobalAuthenticationPolicy –AdditionalAuthenticationProvider “MyMFAAdapter”`Dále nakonfigurujte globální pravidla nebo pravidla specifická pro předávající strany, která aktivují vícefaktorové ověřování:
Příklad 1: Vytvoření globálního pravidla pro vyžadování vícefaktorového ověřování pro externí požadavky:
Set-AdfsAdditionalAuthenticationRule –AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", value = "http://schemas.microsoft.com/claims/multipleauthn" );'Příklad 2: Vytvoření pravidel vícefaktorového ověřování, které vyžadují toto ověřování pro externí požadavky na konkrétní důvěřující stranu. (Poznámka: Jednotliví poskytovatelé nelze připojit k jednotlivým předávajícím stranám ve službě AD FS ve Windows Serveru 2012 R2).
$rp = Get-AdfsRelyingPartyTrust –Name <Relying Party Name> Set-AdfsRelyingPartyTrust –TargetRelyingParty $rp –AdditionalAuthenticationRules 'c:[type == "http://schemas.microsoft.com/ws/2012/01/insidecorporatenetwork", value == "false"] => issue(type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", value = "http://schemas.microsoft.com/claims/multipleauthn" );'
Ověřte se pomocí vícefaktorové autentizace pomocí adaptéru
Nakonec proveďte následující kroky a otestujte adaptér:
Zajistěte, aby globální primární typ ověřování služby AD FS byl nakonfigurován jako Ověřování formulářů pro extranet i intranet (což usnadňuje autentizaci vaší demonstrace jako konkrétního uživatele).
V modulu snap-in AD FS v části Zásady ověřování v oblasti Primární ověřování klikněte na Upravit vedle globálního nastavení.
- Nebo stačí kliknout na kartu Primární v uživatelském rozhraní vícefaktorové zásady .
Ujistěte se, že ověřování pomocí formulářů je jedinou možností, která je zaškrtnutá pro extranet i metodu ověřování intranetu. Klikněte na OK.
Otevřete stránku HTML iniciovanou protokolem IDP (https://<fsname>/adfs/ls/idpinitiatedsignon.htm) a přihlaste se jako platný uživatel AD ve vašem testovacím prostředí.
Zadejte přihlašovací údaje pro primární ověřování.
Měla by se zobrazit stránka formulářů vícefaktorového ověřování s ukázkovými otázkami k výzvě.
Pokud máte nakonfigurováno více než jeden adaptér, zobrazí se stránka s volbou MFA s vaším přátelským názvem uvedeným výše.
Teď máte funkční implementaci rozhraní a máte znalosti o tom, jak model funguje. Můžete zkusit jako další příklad nastavit zarážky v BeginAuthentication a TryEndAuthentication. Všimněte si, jak se spustí BeginAuthentication při prvním zadání formuláře MFA, zatímco TryEndAuthentication se aktivuje při každém odeslání formuláře.
Aktualizace adaptéru pro úspěšné ověření
Počkejte ale – váš ukázkový adaptér se nikdy úspěšně neověří. Důvodem je to, že nic ve vašem kódu nevrací hodnotu null pro TryEndAuthentication.
Provedením výše uvedených postupů jste vytvořili základní implementaci adaptéru a přidali ji na server SLUŽBY AD FS. Můžete získat stránku formulářů vícefaktorového ověřování, ale zatím není možné ověřit, protože jste ještě neuložili správnou logiku do implementace TryEndAuthentication. Pojďme to tedy přidat.
Připomeňte si implementaci TryEndAuthentication:
public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims)
{
//return new instance of IAdapterPresentationForm derived class
outgoingClaims = new Claim[0];
return new MyPresentationForm();
}
Pojďme ho aktualizovat, aby nevrácel vždy MyPresentationForm(). Pro to můžete vytvořit jednu jednoduchou metodu nástroje v rámci třídy:
static bool ValidateProofData(IProofData proofData, IAuthenticationContext authContext)
{
if (proofData == null || proofData.Properties == null || !proofData.Properties.ContainsKey("ChallengeQuestionAnswer"))
{
throw new ExternalAuthenticationException("Error - no answer found", authContext);
}
if ((string)proofData.Properties["ChallengeQuestionAnswer"] == "adfabric")
{
return true;
}
else
{
return false;
}
}
Potom aktualizujte tryEndAuthentication následujícím způsobem:
public IAdapterPresentation TryEndAuthentication(IAuthenticationContext authContext, IProofData proofData, HttpListenerRequest request, out Claim[] outgoingClaims)
{
outgoingClaims = new Claim[0];
if (ValidateProofData(proofData, authContext))
{
//authn complete - return authn method
outgoingClaims = new[]
{
// Return the required authentication method claim, indicating the particulate authentication method used.
new Claim( "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod", "http://example.com/myauthenticationmethod1" )
};
return null;
}
else
{
//authentication not complete - return new instance of IAdapterPresentationForm derived class
return new MyPresentationForm();
}
}
Teď musíte adaptér aktualizovat v testovacím poli. Nejprve musíte vrátit zpět zásady služby AD FS, pak zrušit registraci ze služby AD FS a restartovat službu AD FS, pak odebrat .dll z GAC, pak přidat nový .dll do GAC, pak ho zaregistrovat ve službě AD FS, restartovat službu AD FS a znovu nakonfigurovat zásady služby AD FS.
Nasazení a konfigurace aktualizovaného adaptéru na testovacím počítači služby AD FS
Jasné zásady AD FS
Zrušte zaškrtnutí všech políček souvisejících s vícefaktorovými ověřováními v uživatelském rozhraní vícefaktorového ověřování( viz níže) a potom klikněte na OK.
Zrušení registrace zprostředkovatele (Windows PowerShell)
PS C:> Unregister-AdfsAuthenticationProvider –Name “YourAuthProviderName”
Příklad:PS C:> Unregister-AdfsAuthenticationProvider –Name “MyMFAAdapter”
Hodnota, kterou předáte pro "Name", je stejná hodnota jako "Name", kterou jste zadali do rutiny Register-AdfsAuthenticationProvider. Je to také vlastnost "Name", která je výstupem Get-AdfsAuthenticationProvider.
Než zrušíte registraci zprostředkovatele, musíte poskytovatele odebrat z AdfsGlobalAuthenticationPolicy (zrušením zaškrtnutí políček, která jste zaškrtli v modulu snap-in pro správu služby AD FS, nebo pomocí Windows PowerShellu.)
Po této operaci musí být služba AD FS restartována.
Odebrat sestavení z GAC
Nejprve pomocí následujícího příkazu vyhledejte plně kvalifikovaný silný název položky:
C:>.gacutil.exe /l <yourAdapterAssemblyName>Příklad:
C:>.gacutil.exe /l mfaadapterPotom ho pomocí následujícího příkazu odeberte z GAC:
.gacutil /u “<output from the above command>”Příklad:
C:>.gacutil /u “mfaadapter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e675eb33c62805a0, processorArchitecture=MSIL”
Přidání aktualizovaného sestavení do GAC
Ujistěte se, že nejprve vložíte aktualizovanou verzi .dll lokálně. C:>.gacutil.exe /if .MFAAdapter.dll
Zobrazení sestavení v GAC (příkazový řádek)
C:> .gacutil.exe /l mfaadapter
Registrace poskytovatele ve službě AD FS
PS C:>$typeName = "MFAadapter.MyAdapter, MFAadapter, Version=1.0.0.1, Culture=neutral, PublicKeyToken=e675eb33c62805a0, processorArchitecture=MSIL”PS C:>Register-AdfsAuthenticationProvider -TypeName $typeName -Name “MyMFAAdapter1”Restartujte službu AD FS.
Vytvořte zásady ověřování pomocí modulu snap-in pro správu služby AD FS
Otevřete modul snap-in Správa služby AD FS (z nabídky Nástroje správce serveru ).
Klikněte na Zásady ověřování.
V části Multi-Factor Authentication klikněte na odkaz Upravit napravo od globálního nastavení.
V části Vybrat další metody ověřování zaškrtněte políčko pro název správce vašeho poskytovatele. Klikněte na Použít.
Pokud chcete poskytnout trigger pro vyvolání vícefaktorového ověřování pomocí adaptéru, zkontrolujte v části Umístění například extranet i intranet. Klikněte na OK.
Ověřte se pomocí vícefaktorové autentizace pomocí adaptéru
Nakonec proveďte následující kroky a otestujte adaptér:
Ujistěte se, že globální primární typ ověřování služby AD FS je nakonfigurovaný jako ověřování pomocí formulářů pro extranet i intranet (to usnadňuje ověření jako konkrétního uživatele).
V modulu snap-in správa služby AD FS v části Zásady ověřování klikněte v oblasti Primární ověřování na tlačítko Upravit vedle globálního nastavení.
- Nebo stačí kliknout na kartu Primární v uživatelském rozhraní vícefaktorové zásady.
Ujistěte se, že ověřování pomocí formulářů je jedinou možností, která je zaškrtnutá pro extranet i metodu ověřování intranetu . Klikněte na OK.
Otevřete stránku HTML iniciovanou protokolem IDP (https://<fsname>/adfs/ls/idpinitiatedsignon.htm) a přihlaste se jako platný uživatel AD ve vašem testovacím prostředí.
Zadejte přihlašovací údaje pro primární ověřování.
Měla by se zobrazit stránka formulářů vícefaktorového ověřování s ukázkovým textem výzvy.
- Pokud máte nakonfigurovaný více než jeden adaptér, zobrazí se stránka s možností výběru vícefaktorového ověřování s uživatelsky přívětivým názvem.
Při zadávání adfabric na stránce ověřování MFA by se mělo zobrazit úspěšné přihlášení.
Viz také
Další zdroje informací
Správa rizik s využitím dalšího vícefaktorového ověřování citlivých aplikací