我正在尝试使用Twisted的Perspective Broker创建服务器/客户端。我想使用TLS进行客户端身份验证,以确定谁是连接者。
我找到了以下链接: http://twistedmatrix.com/documents/current/core/howto/ssl.html
Use TLS and Python for authentication
然而,两者都在讨论议定书。我不知道如何通过Perspective Broker获取客户身份。最后,我看到了:
Use alternate authentication in twisted's Perspective Broker
然而,提到调用根对象。这是否意味着我无法使用Avatar / IPerspective呢?即使我走了使用pb.Referencable的路线而服务器是管理用户对象的路由,remote_foo()函数如何从证书中获取客户端身份?
更新:我解决了转换到Twisted AMP的问题,然后因为我可以访问传输,以这种方式解决了我的问题。但是,我想知道在Perspective Broker中是否可以这样做,如果是这样的话?
答案 0 :(得分:0)
IPBRoot.rootObject(...)
传递Broker
。 Broker
是协议。
在调用rootObject
的特定时刻,传输尚未初始化。但是,如果要在该对象上实现远程方法,例如remote_authenticateUsingTLS
,则在协议响应该方法时,它具有传输,并且该传输将具有证书。因此,在IPBRoot
的{{1}}方法中,构建一个对象,记住传递的rootObject
,然后在broker
中,您可以使用remote_authenticateUsingTLS
使用他们的经纪人从同行那里获得证书。
希望这有帮助!