前言:
前一段时间,我出了一篇authelia的部署教程,今天在补一个nextcloud的关联教程,就当扩展一下authelia的用处把。
教程:
两个平台部署教程,可以在本站,或者其他地方获取到安装教程,我这里就不在安装上面多说了。
我们需要在nextcloud上安装Openid connect插件。
在搜索的对话框里输入OpenID Connect Login,搜索到内容后,直接安装并启用就可以了。
找到nextcloud容器映射的配置文件夹内找到config.php
在文件内添加下面的内容
'allow_user_to_change_display_name' => false, 'lost_password_link' => 'disabled', 'oidc_login_provider_url' => 'https://auth.example.com', 'oidc_login_client_id' => 'nextcloud', 'oidc_login_client_secret' => 'passwd', 'oidc_login_auto_redirect' => false, 'oidc_login_end_session_redirect' => false, 'oidc_login_button_text' => 'Log in with Authelia', 'oidc_login_hide_password_form' => false, 'oidc_login_use_id_token' => true, 'oidc_login_attributes' => array ( 'id' => 'preferred_username', 'name' => 'name', 'mail' => 'email', 'groups' => 'groups', ), 'oidc_login_default_group' => 'oidc', 'oidc_login_use_external_storage' => false, 'oidc_login_scope' => 'openid profile email groups', 'oidc_login_proxy_ldap' => false, 'oidc_login_disable_registration' => false, 'oidc_login_redir_fallback' => false, 'oidc_login_alt_login_page' => 'assets/login.php', 'oidc_login_tls_verify' => true, 'oidc_create_groups' => false, 'oidc_login_webdav_enabled' => false, 'oidc_login_password_authentication' => false, 'oidc_login_public_key_caching_time' => 86400, 'oidc_login_min_time_between_jwks_requests' => 10, 'oidc_login_well_known_caching_time' => 86400, 'oidc_login_update_avatar' => false,
配置部分标注红色的部分,oidc_login_provider_url
是authelia访问的地址,oidc_login_client_secret
可以理解为是一个密码,可以使用
tr -cd '[:alnum:]' < /dev/urandom | fold -w "64" | head -n 1 | tr -d '\n'
在ssh窗口输入就可以得到密码粘贴到oidc_login_client_secret
的配置引号内,到此nextcloud配置部分就结束了。openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in private_key.pem -out public_key.pem
openssl rsa -in private_key.pem -outform PEM -out issuer_private_key.pem
cat issuer_private_key.pem
identity_providers: oidc: hmac_secret: this_is_a_secret_abc123abc123abc issuer_private_key: | -----BEGIN PRIVATE KEY----- 你的key填充在这里 -----END PRIVATE KEY----- access_token_lifespan: 1h authorize_code_lifespan: 1m id_token_lifespan: 1h refresh_token_lifespan: 90m enable_client_debug_messages: false clients: - id: nextcloud description: NextCloud secret: '这里的密码修改上面用命令生成的要与nextcloud写的密码相同' public: false authorization_policy: two_factor redirect_uris: - https://nextcloud.example.com/apps/oidc_login/oidc ###红色部分修改为你的nextcloud的地址,有端口的记得携带。 scopes: - openid - profile - email - groups userinfo_signing_algorithm: RS256
修改好上面的配置文件后,写入到authelia末尾保存重启authelia。
保存之后,登录nextcloud,下面会出现一个authelia的登录选项。
点击 log in with Authelia 就可以跳转到authelia的验证页面,完成验证后,authelia会自动注册一个新的账号到nextlcoud,颜面会有一点延迟,进第一次时间稍微长一点,以后就不会了。
这里需要注意,使用的authelia的账号,邮箱不能和nextlcoud的相同,否者会被覆盖,如果是管理员账号,覆盖后会变成普通用户权限,只能重新安装nextcloud。
参考文档:
本教程,参考authelia官方文档页面进行配置,如有其他问题请访问:Nextcloud - Integration - Authelia
结尾:
authelia目前我使用还是比较舒服的,减少了以前打开一个窗口就输入一次账号和密码的尴尬,而且从authelia的验证方式,比traefik做的要更好一些,如果大家有啥问题可以在下面留言或者q群喊我。