1

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

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

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

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

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

4

1 回答 1

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;
    }
于 2015-04-21T03:16:09.393 回答