gpt4 book ai didi

security - 基于相互证书的身份验证能否与基于 SSL 的基本身份验证共存,用于同一应用程序中的不同路径?

转载 作者:行者123 更新时间:2023-12-02 14:13:31 25 4
gpt4 key购买 nike

我有一个场景,我们正在开发一个具有企业对客户界面和企业对企业界面的应用程序。

B2B 接口(interface)是一个 RESTful 接口(interface),用于修改 B2C 接口(interface)通过一堆漂亮友好的接口(interface)操作的资源。

由于 B2B 接口(interface)允许访问比 B2C 接口(interface)更多的功能,因此要求 B2B 接口(interface)使用相互证书身份验证。

我们的目标环境/堆栈是 Apache => Tomcat => Grails => 不相关的基础设施

我目前的研究表明 Apache 将进行身份验证,然后将身份验证详细信息传递给 Tomcat?是这样吗?我一直在研究 spring-security-plugin 似乎提供了我们想要的东西,我相信我们可以自己提供任何一个选项。

我只是没有看到任何关于配置多种不同身份验证机制的讨论。

注意:我不在后备身份验证之后。如果您无法通过相互证书身份验证访问 B2B,则不应选择使用基本身份验证

最佳答案

是的你可以。有2个解决方案:

1.第一种解决方案

这里的诀窍是配置 Apache 以请求客户端身份验证,但不要求它。它在您的 Apache 配置中是这样配置的:

<VirtualHost mysite:443>

//usual SSL VHost config

SSLVerifyClient optional


RequestHeader set SSL_CLIENT_S_DN "%{SSL_CLIENT_S_DN}s"
RequestHeader set SSL_CLIENT_I_DN "%{SSL_CLIENT_I_DN}s"
RequestHeader set SSL_SERVER_S_DN_OU "%{SSL_SERVER_S_DN_OU}s"
RequestHeader set SSL_CLIENT_VERIFY "%{SSL_CLIENT_VERIFY}s"

ProxyPass http://localhost:50161/path_to_protect
ProxyPassReverse http://localhost:50161/path_to_protect

</VirtualHost>

在应用程序级别,您必须检查敏感路径,Apache 通过检查 header 提供证书。或者,您也可以在 Apache 级别(通过标签)执行此访问控制。
对于非敏感路径,您可以将应用程序配置为要求输入登录名/密码。

2. 第二种解决方案

您可以在 Apache 中声明两个 VirtualHost:一个配置为 SSLVerifyClient 需要 并且允许访问您的敏感路径,该路径配置为 SSLVerifyClient 可选 并且只允许访问您的非敏感路径。

关于security - 基于相互证书的身份验证能否与基于 SSL 的基本身份验证共存,用于同一应用程序中的不同路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com