Aller au contenu

weauth: Authentification basée sur la structure organisationnelle de WeChat Entreprise pour nginx-module-lua

Installation

Si vous n'avez pas encore configuré l'abonnement au dépôt RPM, inscrivez-vous. Ensuite, vous pouvez procéder avec les étapes suivantes.

CentOS/RHEL 7 ou Amazon Linux 2

yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-weauth

CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023

dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-weauth

Pour utiliser cette bibliothèque Lua avec NGINX, assurez-vous que nginx-module-lua est installé.

Ce document décrit lua-resty-weauth v0.0.3 publié le 11 août 2021.


Authentification basée sur la structure organisationnelle de WeChat Entreprise pour OpenResty/ngx_lua

Utilisation

Téléchargement

cd /path/to
git clone [email protected]:ledgetech/lua-resty-http.git
git clone [email protected]:SkyLothar/lua-resty-jwt.git
git clone [email protected]:k8scat/lua-resty-weauth.git

Configuration

server {
    access_by_lua_block {
        local weauth = require "resty.weauth"
        weauth.corp_id = ""
        weauth.app_agent_id = ""
        weauth.app_secret = ""
        weauth.callback_uri = "/weauth_callback"
        weauth.logout_uri = "/weauth_logout"
        weauth.app_domain = "weauth.example.com"

        weauth.jwt_secret = "thisisjwtsecret"

        weauth.ip_blacklist = {"47.1.2.3"}
        weauth.uri_whitelist = {"/"}
        weauth.department_whitelist = {1, 2}

        weauth:auth()
    }
}

Explication de la configuration :

  • corp_id pour définir l'ID de l'entreprise
  • app_agent_id pour définir l'AgentId de l'application auto-développée de WeChat Entreprise
  • app_secret pour définir le Secret de l'application auto-développée de WeChat Entreprise
  • callback_uri pour définir l'URL de rappel après la connexion par code QR WeChat Entreprise (doit être défini dans le domaine de rappel d'autorisation de WeChat Entreprise)
  • logout_uri pour définir l'URL de déconnexion
  • app_domain pour définir le nom de domaine d'accès (doit correspondre au nom de domaine d'accès du service métier)
  • jwt_secret pour définir le secret JWT
  • ip_blacklist pour définir la liste noire des IP
  • uri_whitelist pour définir la liste blanche des adresses, par exemple, la page d'accueil n'a pas besoin d'authentification
  • department_whitelist pour définir la liste blanche des départements (nombres)

Modules dépendants

Projets connexes

Auteur

K8sCat k8scat@gmail.com

Licence open source

MIT

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-weauth.