问题标签 [windows-credential-provider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
973 浏览

c# - SmartCard 自定义凭据提供程序

https://social.msdn.microsoft.com/Forums/vstudio/en-US/86f77b01-6da7-4321-8c57-563d9441de76/smartcard-custom-credential-provider?forum=windowssecurity

我想实现通过 SmartCard 解锁 Windows 会话的自定义 WindowsCredentialProvider。使用 //username & password 可以正常工作,但 SmartCard 有问题。我使用此示例https://github.com/phaetto/windows-credentials-provider并根据此主题进行更改https://docs.microsoft.com/en-gb/windows/win32/api/wincred/nf -wincred-credpackauthenticationbuffera并调用 CredMarshalCredential 如下:

然后将 Username 和 SmartCard PIN 传递给 CredPackAuthenticationBuffer 函数并返回 True,但无法解锁屏幕。我还记录了凭证方法调用,如下所示:

更新:当我使用域\用户名和密码时,日志是相同的,除了在 SetDeselected 之后调用 ReportResult

0 投票
0 回答
316 浏览

c++ - C++ 如何在 Credential Provider V1 中添加第二个屏幕(用于 2FA)?



嗨,我正在努力在 Windows 10 中包装现有的凭据提供程序。我使用了来自https://github.com/Stexir/CredentialProvider/tree/501d955f02535b58bf10e09f3f3edaefa7a77fe8/samplewrapexistingcredentialprovider的示例代码。我已经修改了这段代码,所以它没有显示其他字段:

常见的.h

CSampleCredential.cpp

并获得第一个屏幕:Initial Screen
当我提供用户名和密码时,它会成功登录。即使提供了正确的信息,我也不希望直接登录,而是创建将要求第二个因素的新字段(例如,静态密码)。


由于我是初学者,我需要知道在上面的凭据提供程序文件中必须做什么才能为密码字段添加第二个屏幕。

任何帮助/建议将不胜感激!

0 投票
1 回答
328 浏览

windows - 在 Windows 10 64 位中注册 DLL 而不将其移动到 System32

我必须在 Windows 注册表中为自定义凭据提供程序注册 dll。当前的 register.reg 如下所示:

我必须将 dll 复制到 C:\Windows\System32 并运行 register.reg 以使其工作,但我不想要这个。是否可以注册 dll 而无需移入 System32 并从 register.reg 与 dll 所在的当前工作目录进行注册。

我是新手,对此的任何帮助将不胜感激。

谢谢!

0 投票
2 回答
479 浏览

c++ - 对所有用户有效的凭据提供程序 V2(磁贴)

我使用“Windows 10 中的凭据提供程序”的示例代码。我开发了我的代码并将其更改得很好。

但我有一些问题:

我的窗口中的所有用户都没有启用(显示磁贴)。(仅显示一位用户)

在此处输入图像描述

我看到这个问题:

https://stackoverflow.com/a/31247811/3477587

未为所有用户显示凭据提供程序(包括其他用户)

所以我更改了我的代码,但是当从我的 DLL win-login 中使用时不会加载,我必须在安全模式下删除才能在没有凭据提供程序的情况下进入我的窗口。

我将我的代码更改如下:

所以我更改了代码中的其他位置,但没有得到结果。

0 投票
1 回答
446 浏览

c++ - Credential Providers V2 - 提交后添加代码并检查用户密码

单击提交按钮并检查用户密码后如何添加我的代码?

在成功调用 KerbInteractiveUnlockLogonPack 和 RetrieveNegotiateAuthPackage 后,我在 GetSerialization 函数中添加了我的代码。但在这种状态下,首先运行我的代码,然后检查用户密码。

我想先检查用户密码,如果正确,然后运行我的代码。我该怎么办?

0 投票
0 回答
133 浏览

c# - 如何检查 Windows 凭据提示并自动填写?

如何检查是否在 c# windows 窗体中提示我输入 windows 凭据并填写提示并自动单击确定?

在此处输入图像描述

0 投票
0 回答
30 浏览

c# - 如何在 C# 中将 Windows 凭据与 XML 阅读器一起使用?

我有一个 XML URL,它使用 Windows 凭据。我写了一个测试代码,但我不知道如何在 XmlReader 中使用。

谁能帮我在 Xmlreader 上验证代码?

这是简单的基本代码。

谢谢

0 投票
0 回答
18 浏览

git - AWSCodeCommit 和多个使用 GIT 的用户

我将 git 设置为用户 Windows 凭据管理器(在 Windows 10 上),如下所示:

在此处输入图像描述

在上面添加我的凭据后,我认为这是我所做的命令:

git config credential.helper 管理器

所以现在,我可以运行 git 命令,而无需每次都重新输入我的凭据。

但是,如果我需要支持 2 或 3 个不同的客户/客户怎么办。我的克隆网址是这样的:https ://git-codecommit.us-east-1.amazonaws.com/v1/repos/my-poc

当我输入 Windows 凭据时,用户似乎只与域相关联,即 git-codecommit.us-east-1.amazonaws.com。我可能有 3 个客户端都使用同一个域。

有没有办法为 3 个不同的客户/客户存储凭据?

0 投票
0 回答
120 浏览

windows - 如何在混合域计算机上获取 SAM 兼容的域名?

编辑:谢谢@RbMm 的澄清问题!

我正在凭据提供程序(而不是包装程序提供程序)中实现 MFA。我必须支持的选项之一是验证使用相同的 UPN 登录计算机并使用 MFA 提供程序进行验证。我使用 LsaLogonUser、ImpersonateLoggedOnUser 和 GetUserNameEx(UserNamePrincipal) 来获取此信息。这适用于大多数环境;但是,在连接到混合 Azure AD 域的计算机上,LsaLogonUser 失败。这导致了一项调查,其结果详述如下:

我有一台属于 AzureAD 混合域的计算机,但我无法从 AzureAD 域名中获取与 SAM 兼容的域名。例如,我可以使用 AzureAD upn 为的用户登录,例如,sake user@domain.com。SAM 兼容的名称是 localdomain\localuser。GetUserNameEx(NameUserPrincipal) reutrns user@domain.com GetUserNameEx(NameSamCompatible) 返回 localdomain\localuser 但是在以下代码中,TranslateName 失败,GetLastError() 返回 ERROR_NO_SUCH_DOMAIN。

我还尝试了以下 API,但均未成功,它们都以不同的返回值失败:

  • GetComputerObjectName失败,将任何值传递给 NameFormat

  • 对于 NameType的任何相关值,GetCompterNameEx失败并显示 ERROR_CANT_ACCESS_DOMAIN_INFO

  • NetWkstaGetInfo不会在任何字段中返回任何有用的信息

  • 此外,如果您在此 PC > 属性 > 高级系统属性中查看计算机的加入信息,您会将其视为工作组的一部分,而不是域。-如果您运行dsregcmd /status命令:

    • 在上述用户的登录会话中执行:“诊断”部分在输出中列出了本地域
    • 从使用 LocalSystem 帐户运行的命令提示符执行,输出不会在任何地方列出本地域。

重要的一点(感谢@RbMm) - 使用“其他用户”磁贴时,代码为 Windows 凭据提供程序提供服务。我正在尝试使用 LsaLogonUser 预先验证输入的凭据,然后在我的 ICredentialProviderCredential2::GetSerialization 实现中成功序列化它们。使用 'user@domain.com' 失败,而使用 'localdomain\user@domain.com' 或 'localdomain\localuser' 成功。使用 Windows 的内置密码提供程序登录时,当然可以使用“user@domain.com”。也许我应该为 LsaLogonUser 使用不同的身份验证包?

我被难住了。

感谢任何人的帮助..

  • 乌列尔
0 投票
0 回答
114 浏览

c++ - 如何通过 V2 Credential Provider 中的 GetSerialization 函数提交生物认证数据?

我正在实现一个 V2 Credential Provider,它调用 Windows Biometric Framework API 来验证用户指纹。

现在 V2 CP 已构建并可加载LogonUI,但我不知道如何组织序列化数据以供GetSerialization指纹验证后使用,或者生物特征身份验证数据未提交GetSerialization

请帮忙,非常感谢。