0

我正在使用带有 HTTP 触发器的 Python Azure 函数构建身份验证令牌服务器。目标是使用双向 TLS (mTLS) 身份验证。

它的工作方式:

  1. 客户端使用两个标头向 Function 端点发送 http 请求:
  • requestor-id: 用于查找的标识符
  • X-ARR-ClientCert.pem:他们证书的字符串表示
  1. 该函数将在.pem先前共享请求者的数据库中查找
  2. 使用pyOpenSSL,函数将加载两个.pem文件并比较请求证书和检索到的证书:
  • not_valid_before/after日期
  • common name
  • issuer
  • thumbprint
  1. 如果证书的每个属性都匹配,则函数将使用身份验证令牌进行响应,以便在下游数据调用中使用

我的问题是:

  • 这并不是真正的“相互”,因为托管函数代码的服务器没有在握手的任何地方(可见)提供证书。
  • mTLS 握手的服务器端是在其他地方配置的,还是因为 Function 端点是开箱即用的http而“正常工作”?
4

1 回答 1

1

如果要在 Azure 函数应用中进行双向 TLS (mTLS) 身份验证,只需启用客户端证书。之后,Function App ServiceX-ARR-ClientCert会使用客户端证书注入请求标头。除了将其转发到您的应用之外,函数应用服务不会对此客户端证书执行任何操作。您的应用代码负责验证客户端证书。有关更多详细信息,请参阅此处此处

于 2020-10-12T05:48:03.147 回答