问题标签 [cac]

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 回答
862 浏览

windows - 对于 Windows IIS 7.5,是否可以启用基本身份验证,即使所有可见的身份验证设置都显示它已禁用?

我的基本问题

在 COTS 软件升级后,我们的 Microsoft IIS 7.5 Web 服务器开始意外地请求基本身份验证(带有用户名和密码字段的弹出对话框),而不是我们配置的 CAC SmartCard 客户端身份验证。但是,查看我们知道要查看的所有标准位置,基本身份验证未启用。与在工作的开发服务器上相同。是否有其他地方或方法可以启用基本身份验证并且可以覆盖我们设置的身份验证方案?

细节

Windows 2008 Server - 美国政府 STIGed
IIS 7.5
COTS = Serena Business Manager

我们正在运行 COTS Web 应用程序 Serena Business Manager,我们已将其设置为向最终用户请求 CAC 智能卡以进行身份​​验证(客户端身份验证)。我们的每个用户都在其工作站上安装了 SmartCard 读卡器和相关的读卡器软件。这多年来一直运行良好。

昨天我们尝试将生产 COTS 应用程序从版本 10.1.4.1 升级到 10.1.5.2。当测试用户在升级完成后尝试登录时,我们会意外弹出一个对话框,标题为 Authentication Required 并要求输入用户名和密码。这发生在服务器有机会请求 CAC 智能卡及其 PIN 之前。

当我使用 Google Chrome 浏览器的开发者工具网络选项卡时,我看到服务器的请求标头中有: WWW-Authenticate: Basic realm="TeamTrack". TeamTrack 是 COTS 产品的原始名称。这让我相信弹出的身份验证对话框是请求“基本”身份验证的 Microsoft IIS Web 服务器。

我们不得不回滚 Web 和相关的数据库升级更改。

在我们的开发服务器上,我们之前已成功执行过此 COTS 升级;没有用户名/密码验证请求。CAC SmartCard 客户端身份验证工作正常。

你问,为什么我们在升级开发或测试服务器时没有看到同样的故障?遗憾的是,我们的开发和测试 VM 与我们的政府托管和管理的生产 VM 位于不同的托管设施中。我们不允许将暂存 VM 克隆/复制到产品上,因此我们的产品 VM 与它们不完全匹配。我们尽量匹配配置。

在生产升级过程中,我们寻找了尽可能多的位置来进行身份验证设置。我们发现每个设置都与开发服务器匹配。

在开发服务器上,我可以通过禁用匿名身份验证并启用基本身份验证来重新创建弹出用户名/密码对话框行为,如下所示:
1. 打开 IIS 管理器并导航到要进行身份验证的级别。
2. 在功能名称列表中,双击身份验证。
3. 在认证页面,选择匿名认证。
4. 在操作窗格中,单击禁用以禁用匿名身份验证。
5. 在认证页面,选择基本认证。
6. 在“操作”窗格中,单击启用以使用默认设置的基本身份验证。
列表中的所有其他身份验证方案均已禁用。

成功设置

成功进行 CAC 智能卡身份验证的设置:
A. IIS 管理器 > SSL 设置:选中需要 SSL。在客户端证书上,需要单选按钮被选中。(这些都设置为请求 CAC 智能卡)
B. IIS 管理器 > 身份验证:启用匿名身份验证,禁用所有其他方案。
C. 在 COTS 软件的“bin”目录中,在 Web.config XML 文件中设置:<authentication mode ="Windows" />
D. 在 COTS 软件 fedsvr-core-config.xml 设置文件中,设置:
<parameter name="AllowedPrincipalAuthenticationTypes" Type="xsd:string">CLIENT_CERT</parameter>

(顺便说一句,为了实现客户端身份验证,COTS 应用程序采用了单点登录解决方案,这意味着在客户端进行身份验证之前,客户端和服务器之间会发生多个请求和响应活动。)

COTS 制造商的支持并没有在这个问题上提供实质性帮助。

我的基本问题再次:是否有其他 Windows 或 IIS 设置或方法可以启用基本身份验证以覆盖匿名身份验证和/或客户端证书所需的身份验证?或者,COTS 产品如何更改/覆盖身份验证设置,同时保持上述设置列表不变?

感谢您提供的任何指导。

0 投票
2 回答
1687 浏览

javascript - 您如何对网站进行编程以使用证书进行身份验证?

我的公司正在考虑使用基于卡的证书(如 CAC)在网站上进行身份验证;该信息将从证书中提取,而不是用户输入用户名和密码。如何对前端进行编程以将证书传递给网络服务器?我一直在寻找具体的方向,但最后却发现了一切。总的想法是最终连接到 LDAP 之类的东西进行身份验证,但浏览器部分完全让我望而却步。

0 投票
1 回答
2988 浏览

java - Java Web 应用程序的智能卡身份验证在哪里进行?

试图确定 CAC/Active Directory (AD) 身份验证在基于 Java 的 Web 应用程序中发挥作用时,我感到很困惑。以托管在多个 Weblogic 容器上的多个 J2E JSF 应用程序为例。这些应用程序中的每一个都通过检查用户所处的 AD 角色来限制用户的访问。如果所有这些应用程序都需要,在什么阶段执行 CAC/AD 身份验证?

我的理解是,理想情况下,您希望网关与执行身份验证的应用程序分开。一个简单的例子是 F5 硬件/软件捆绑包。一旦用户使用他们的 CAC/pin 组合进行身份验证,他们就会被转发到 Weblogic 上已部署的应用程序,并在其标头中包含一些附加信息(如前面提到的 AD 角色)。我并不是说我应该购买它,因为没有可编程的解决方案,而是作为一个例子,认证和使用资源是两个独立的实体,不应该为这个问题结合起来。

然而,在实践中,我读到许多项目正在结合 Microsoft 和 Apache 服务来允许身份验证。这是一篇很好的博客文章,概述了一些好处。一旦用户通过 IIS 进行身份验证,他们就会被转发到 apache 上的应用程序。无论如何,混合 IIS 和 Weblogic 似乎是一个坏主意,尤其是在尝试配置两个节点之间的通信时。

堆栈和网络上也有许多帖子,可以追溯到 2012 年前的日子,它们推荐了不同的解决方案。一篇文章建议以下内容:

当服务器验证客户端证书时,您可以指定一组可接受的证书策略

虽然答案在一般意义上是有道理的,但作者从不深入探讨这种交流的架构细节。其他一些帖子推荐JOSSO来执行 SSO 功能,例如前面提到的网关机制。这篇文章还讨论了使用PKCS11通过使用制造商提供的驱动程序直接读取智能卡。还有一些没有答案的问题,例如Authenticating AD server user using DOD发出的CAC in java

考虑到其中一些帖子之间平均间隔 5 年,我不确定今天针对此问题的最佳实践是什么。网关方法是进行身份验证的理想方法吗?难道我的想法根本不适用并且存在更好的解决方案吗?

0 投票
0 回答
116 浏览

java - 是否可以使用 cac 卡中的证书签署 pdf?

我有一张通过 java 代码访问的 cac 卡。我正在提取x509证书,现在我需要使用此证书(或我可以从 cac 卡中提取的任何其他内容)来签署pdf文件。

目前,我正在使用名称和别名,x509并创建我自己的名称和别名pfx,我使用 itext 进行签名,但这不是正确的方法。我需要直接使用某种形式的证书来签署pdf.

我的问题是:

  1. 可能吗?
  2. 如果是,如何?
  3. 如果不是,有什么替代方案?
  4. 智能卡是否包含 pfx?

帮助!

0 投票
1 回答
9469 浏览

java - java.security.KeyStoreException:未找到 PKCS11

我的目标是从 CAC 卡中读取信息并pkcs11从中提取信息并签署我的文件。我找不到适合我的硬件的 dll,所以我安装openSC在我的机器上并opensc-pkcs11.dll在以下代码中使用:

但我在以下位置遇到错误

使用错误堆栈跟踪:

帮助!

0 投票
0 回答
237 浏览

java - 什么是 CAC 卡的 PKCS#11 提供程序 DLL,我在哪里可以找到它?

我想使用我的 CAC 卡的 PKCS#11 提供程序,但不知道在哪里可以找到它的 DLL。我的 CAC 卡没有附带任何软件,我在互联网上找不到足够的信息。谁能告诉我文件的名称是什么以及我可以从哪里得到它?

0 投票
0 回答
55 浏览

.net - .NET 可以检测失败的 CAC 身份验证吗?

我有一个使用 Web 表单的 .NET 应用程序,它使用 CAC 登录来验证用户身份。

目前,应用程序存储成功 CAC 登录的历史记录,但我们还希望包括任何不成功的 CAC 身份验证的历史记录(即:如果用户访问站点,但在 CAC 提示期间输入了错误的 PIN)。

是否可以在 .NET 中检测不成功的 CAC 身份验证,如果可以,如何实现?

0 投票
0 回答
718 浏览

java - 为美国政府机构使用的应用程序在 Jetty 中运行的 Web 应用程序中使用 CAC(通用访问卡)对用户进行身份验证

我最近接到了这个问题描述的类似任务的任务。我的任务是使 Web 应用程序能够通过 CAC 卡验证凭据。

我的 Web 应用程序在 OSGi 容器中运行的嵌入式 Jetty 服务器上运行。

虽然这个问题得到了很好的信息回答,但我注意到其中一个答案提出了一个很好的问题。回答的用户是@erikson,他在评论他自己的回答时说:“您使用的是美国国防部颁发的 CAC 吗?这个申请是针对政府机构的吗?如果您需要遵守许多额外的规则所以。”

就我而言,他提出的这些问题的答案是“是的,我的申请使用的是美国国防部发行的 CAC 卡”。

他的评论从未在原始问题上得到回复,所以我在这里发布了这个问题。

我的问题是,我在哪里可以找到关于@erikson 提到的美国国防部和政府机构对申请提出的这些额外要求的简洁信息?

0 投票
1 回答
402 浏览

c# - 按需读取智能卡

我正在制作一个应用程序,用户将在其中看到登录页面,输入他的电子邮件地址和密码。那时我想让系统读取他的CAC证书并允许他选择。现在我能做的就是要求 SSL,它会在用户登录之前要求证书。有没有办法做到这一点?我正在使用 VS 2015 在本地对此进行测试并更改 applicationhost.config 文件。我不确定此时它在服务器上的功能会有什么不同。基本上,我想在需要时而不是之前向用户索要证书。

我找到了一些数据,但它仍然无法在服务器上运行。我将服务器上的 SSL 设置更改为不需要 SSL 并忽略。然后我将它添加到我的 web.config 文件中:

有了这个我得到一个 500 错误,浏览器正试图去:

https://服务器/文件共享/文件共享/索引

FileSharing 在地址中两次。有任何想法吗?

第一个页面,它只是一个欢迎页面,不需要 SSL,很好,但我希望它在进入索引时读取证书。

0 投票
0 回答
904 浏览

oauth-2.0 - 通过 CAC、PIV、X.509 智能卡的 IdentityServer4 和用户身份验证证书

我正在尝试使用 IdentityServer4 中的智能卡证书对用户进行身份验证。

当我按照提供的示例进行操作时,首先,我无法在 IE 或 Chrome 的证书弹出窗口中获取我的测试证书。我的 iPhone 弹出一个 Apple 设备证书,另一个弹出一个,这可能是我的测试证书配置错误。

但是当我选择任何证书时,它会将我带到 ID4 中的登录屏幕。

我的问题是,我必须实现哪些接口,以便用户可以使用 CAC、PIV、SmartCard 或 X.509 证书进行身份验证,并在证书有效时取回令牌?

我已经研究过客户端证书身份验证所需的设置

如果您使用 IdentityServer4 实现了类似的要求,任何人都可以帮忙吗?