请各位看官看看我绘制的认证流程图
twisted的认证机制主要包含以下几个重要组件
1.credentials
实现了twisted.cred.credentials.ICredentials接口,是认证的用户信息,通常是用户名和密码。也可以是其他数据用来证明一个用户身份的数据或对象(例如证书或则挑战/应答协议)。
2.avatar
是一个业务逻辑对象,在一个服务应用程序中表示对于一个用户可执行的操作和用户数据。例如对于一个邮件服务器来说,avatar就类似于一个邮箱对象。对于web服务器来说avatar就是一个Resource资源对象。对于SSH协议来说可能就是远程外壳(Remote Shell)。
3.avatar ID
是一个字符串,由credentials checker返回,对用户而言标识avatar资源。通常是一个用户名称,但是也可能是其他唯一的标识符。例如avatarID是 “joe smith","[email protected]"和"usertest1234"
4.credentials checker
是一个认证检测对象,credentials checker是一个认证桥梁,checker可以以多种形式来进行存储,例如数据库、文件、内存和其他的认证方式。如果认证成功则会返回一个avatarID,传给Realm,并由Realm返回一个avatar对象。checkers也支持匿名访问,返回twisted.cred.checkers.ANONYMOUS。credentials实现了twisted.cred.checker.ICredentialsChecker接口。
5.Realm
对合法的avatar ID提供资源访问,并返回avatar对象。实现了twisted.cred.portal.IRealm接口,支持不一样的用于访问不一样的资源和服务。例如"[email protected]"访问的是邮件服务系统,test用户则访问的是论坛等。
6.Portal
是认证机制和Protocol之间的中间层,所有需要认证的操作由该口进行认证并处理,成功则由Realm返回该用户需要访问的资源。
版权声明:本文为博主原创文章,未经博主允许不得转载。