前言
authentik作为一个强大的身份认证软件,可以帮助我们将很多的零散的软件纳入到一个统一的身份认证体系之中,让我们不用那么多的密码了。但是有一个问题,就是authentik默认会使用官方的gravatar地址来获取头像(gravatar是一个统一的头像服务),但是官方的gravatar地址很慢很慢,在国内基本上是不可到达的状态,所以配置我们需要配置gravatar镜像源。
当然话说在前面,你需要自己建立一个gravatar镜像源,或者在网上找一个可用的,建立gravatar镜像不是这篇文章的主要内容
关于gravatar头像URL的规则
首先要在authentik中配置,我们先要了解下gravatar头像的地址是如何工作的。
当我们上传头像到gravatar中后,gravatar会根据邮箱生成一个唯一的URL地址。这个URL生成规则如下:
1、将电子邮件地址去除有空格,并将全部的字都转换为小写。
2、将第一步操作后的电子邮件地址进行MD5哈希值(可以使用这个在线工具箱来进行查看:https://1024tools.com/hash)
3、拼接地址,我们的头像的地址就是
https://secure.gravatar.com/avatar/刚刚的MD5哈希
比如我的邮箱是q2019715@q2019.com 那么地址就是
https://secure.gravatar.com/avatar/37e72ccc08a1546a45cee95d21fafb31
接下来我们就来在authentik中配置gravatar镜像了
在authentik中设置gravatar镜像地址
前往authentik的管理员的后台,在左侧的系统栏目中有一个设置栏目,点进这个设置的栏目,右侧就会出现头像设置,如下图
默认情况下authentik的头像设置参数应该是
gravatar,initials
这个代表,尝试通过gravatar获取邮箱,如果获取失败的话根据用户名称来进行头像的生成
现在我们将这个设置参数配置为下面的样子
https://gravatar镜像地址/avatar/%(mail_hash)s,initials,
上面的参数代表了首先尝试使用自定义的头像地址,这个地址规则如下
先将用户的邮箱进行hash计算,然后按照参数拼接头像地址为
https://gravatar镜像地址/avatar/刚刚计算的hash
按照我们刚刚的介绍,这个地址刚好符合gravatar的镜像规则,只要我们使用的gravatar镜像地址跟官方的一样的,authentik就可以成功从刚刚的镜像地址来获取邮箱对应的头像
按照我刚刚提供的参数进行配置后,然后进行保存,然后前往普通用户的界面,可以看到,可以成功从镜像获取头像了