ADFS MFA - 为 YubiKey 扩展 AD 模式

ADFS MFA - Extend AD Schema for YubiKey

我们公司正在连接越来越多的应用程序以使用 SAML 身份验证到我们的 ADFS 基础设施,我们正在认真实施更多的多重身份验证方法,尤其是 YubiKeys。

我将使用 HERE 中的编码示例为我们的 ADFS 基础架构(使用 ADFS 3.0,即 Windows Server 2012 R2)编写一个自定义 MFA 提供程序,并且有一个 'bump' 我还没有得到明确的答案。

为了使其正常工作,用户帐户需要链接到 YubiKey 令牌 ID#,并将其存储在 AD 中是理想的选择。 (我见过几个示例,其中 MFA 提供程序实际上是我不想要的外部 Web 应用程序。)

最初我将使用 User class extensionAttributes 之一进行测试,但最终我将为此创建一个专用属性。显然,这需要一个我很乐意做的架构扩展。

我不知道的是如何从 AD 中读取属性,供正在验证以验证他们使用的 yubikey 的用户是他们自己的(即确保他们没有使用其他人)。谁能告诉我这是否可能?

我刚刚回答了我自己的问题:

将此代码添加到 AuthenticationAdapter class:

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;
    }