Web services 使用TLS进行身份验证与API令牌

Web services 使用TLS进行身份验证与API令牌,web-services,apache,authentication,ssl,x509,Web Services,Apache,Authentication,Ssl,X509,我正在创建一个SOA系统,其中服务器a通过SSL/TLS连接到服务器B 我可以使用API令牌来确保A是他们所说的那个人。但由于我使用的是TLS,服务器A有一个Verisign颁发的X.509证书,上面写着他们是谁,所以使用该证书似乎是有意义的 因此,高级身份验证工作流将是: A通过TLS连接到B B检查A的证书 如果证书无效或证书是为除A以外的任何其他方提供的,B将放弃A 我希望在应用程序之外,尽可能在网络堆栈的最低级别执行此操作。可能通过Apache配置指令执行,该指令会说: DropUnle

我正在创建一个SOA系统,其中服务器a通过SSL/TLS连接到服务器B

我可以使用API令牌来确保A是他们所说的那个人。但由于我使用的是TLS,服务器A有一个Verisign颁发的X.509证书,上面写着他们是谁,所以使用该证书似乎是有意义的

因此,高级身份验证工作流将是:

A通过TLS连接到B B检查A的证书 如果证书无效或证书是为除A以外的任何其他方提供的,B将放弃A 我希望在应用程序之外,尽可能在网络堆栈的最低级别执行此操作。可能通过Apache配置指令执行,该指令会说:

DropUnlessX509CertificateNameMatches XXXXXXXXX
?


此vs API令牌身份验证有任何缺点吗?

服务器端证书将设置密钥用法以作为服务器进行身份验证,并且为了正确的身份验证和验证,您需要将其作为客户端进行身份验证。当然,如果您在代码中验证证书,您可以跳过对KeyUsage属性的检查。不确定将key usage设置为作为服务器或客户端进行身份验证是什么意思。我该把它放在哪里?在阿帕奇?这些是证书的属性,即KeyUsage证书扩展中的标志。您不能设置它们-它们是由您购买证书的CA设置的。嗯,很有趣。不确定这是否适用于我们的情况,因为我们已有已颁发和分发的现有证书。如果服务器B上有自定义验证机制,则可以忽略对KeyUsage属性的检查。但是,如果您希望验证是自动的,即在没有编程的情况下完成,则这是不可能的。