读《http权威指南》提到了ident协议。
接受客户端连接
在这个步骤中,包括建立连接,这里Web服务器可以随意拒绝或立即关闭任意一条连接。客户端主机名解析部分,服务器可以用“反向DNS”对大部分Web服务器进行配置,Web服务器可以将客户端主机名用于详细的访问控制和日志记录。通过ident确定客户端用户,如果客户端支持ident协议,就在TCP端口113上监听ident请求。ident在组织内部可以很好地工作,但出于多种原因,在公共因特网上并不能很好地工作,原因包括:
- 很多客户端PC没有运行ident识别协议守护进程软件;
- ident协议会使HTTP事务处理产生严重的时延;
- 很多防火墙不允许ident流量进入;
- ident协议不安全,容易被伪造;
- ident协议也不支持虚拟IP地址;
- 暴露客户端的用户名还涉及隐私问题。
ident 认证,客户端和数据库建立TCP会话后(假设会话的连接信息是client_ip:12345 <-> db_ip:5432),数据库通过ident协议询问客户端所在IP地址的ident server (默认是113监听端口),询问内容:使用client_ip:12345端口连接db_ip:5432的操作系统用户是谁?
协议可以参考一下RFC 文档。
如图:
https://github.com/digoal/blog/blob/master/201606/20160622_01.md