我们公司正在连接越来越多的应用程序,以便对我们的ADFS基础架构使用SAML身份验证,我们正在认真考虑实施更多的多因素身份验证方法,尤其是YubiKeys。
我将使用HERE中的编码示例为我们的ADFS基础架构编写自定义MFA提供程序(使用ADFS 3.0,即Windows Server 2012 R2)并且有一个'碰撞'我还没有一个明确的答案。
为了使其正常工作,需要将用户帐户链接到YubiKey令牌ID#,并将其存储在AD中是理想的选择。 (我已经看到一些例子,其中MFA提供者实际上是我不想要的外部Web应用程序。)
最初我将使用User类extensionAttributes之一进行测试,但最终我将为此创建一个专用属性。显然,这需要一个我很习惯的架构扩展。
我不知道的是如何为正在验证他们使用的yubikey的用户验证用户的AD属性(即确保他们没有使用别人)。谁能告诉我这是否可能?
答案 0 :(得分:0)
我刚刚回答了我自己的问题:
将此代码添加到AuthenticationAdapter类:
private string GetDeviceId(string upn)
{
DirectoryEntry entry = new DirectoryEntry();
DirectorySearcher mySearcher = new DirectorySearcher(entry, "(&(objectClass=user)(objectCategory=person)(userPrincipalName=" + upn + "))");
SearchResult result = mySearcher.FindOne();
string deviceId = (string)result.Properties["extensionAttribute10"][0];
return deviceId;
}