我正在使用带有 HTTP 触发器的 Python Azure 函数构建身份验证令牌服务器。目标是使用双向 TLS (mTLS) 身份验证。
它的工作方式:
- 客户端使用两个标头向 Function 端点发送 http 请求:
requestor-id
: 用于查找的标识符X-ARR-ClientCert
.pem
:他们证书的字符串表示
- 该函数将在
.pem
先前共享请求者的数据库中查找 - 使用
pyOpenSSL
,函数将加载两个.pem
文件并比较请求证书和检索到的证书:
not_valid_before/after
日期common name
issuer
thumbprint
- 如果证书的每个属性都匹配,则函数将使用身份验证令牌进行响应,以便在下游数据调用中使用
我的问题是:
- 这并不是真正的“相互”,因为托管函数代码的服务器没有在握手的任何地方(可见)提供其证书。
- mTLS 握手的服务器端是在其他地方配置的,还是因为 Function 端点是开箱即用的http而“正常工作”?