我正在尝试实现服务器端代码,以使用证书对客户端进行身份验证,并基于证书中关联的组进行授权
客户端代码如下所示:
import json
import requests
clientCrt = "cc.crt"
clientKey = "ck.key"
url = "https://example.com/api"
payload = { "someId": "myID" }
certServer = 'cs.crt'
headers = {'content-type': 'application/json'}
r = requests.post(url, data=json.dumps(payload), verify=certServer,
headers=headers, cert=(clientCrt, clientKey))
print(r.status_code)
print(r.json())
我希望有一个相应的服务器端实现,专门检查是否应该基于clientCrt满足请求
有人可以分享我如何在服务器端访问clientCrt并提取证书字段吗
注意:我不是在寻找相互TLS认证,我感兴趣的是服务认证和授权
未在默认wsgi服务连接对象上配置相互TLS。这需要配置。有关更多详细信息,请参见本页-https://www.ajg.id.au/2018/01/01/mutual-tls-with-python-flask-and-werkzeug/。一旦手头有了连接对象,就可以使用request.environ['peercert'].get_subject()获取客户端证书的详细信息
更好的处理方法是将其委托给Gunicorn或nginx代理。有关更多示例,请参见https://eugene.kovalev.systems/blog/flask_client_auth
相关问题 更多 >
编程相关推荐