NetBird
NetBird est un réseau superposé basé sur WireGuard. Un serveur NetBird auto-hébergé authentifie les utilisateurs sur son tableau de bord et ses applications clientes via OpenID Connect (OIDC). Avec Casdoor comme fournisseur d'identité, les utilisateurs se connectent à NetBird avec leur compte Casdoor.
Comment NetBird utilise Casdoor
Depuis la version 0.62, le serveur NetBird dispose d'un service de connexion intégré, et vous y ajoutez Casdoor en tant que fournisseur d'identité Generic OIDC. Le tableau de bord et le client NetBird se connectent à ce service intégré, qui renvoie l'utilisateur vers Casdoor :
- Le client sur un ordinateur avec un navigateur utilise le flux de code d'autorisation avec PKCE. Le client sur un serveur Linux sans bureau utilise le flux d'autorisation de périphérique et affiche une URL et un code.
- Les deux flux s'exécutent entre le client et le serveur NetBird. Casdoor ne voit que la connexion du serveur NetBird, donc l'application Casdoor a besoin d'une seule URL de redirection, d'un secret client et d'aucune concession de périphérique.
Si votre serveur NetBird a été configuré avec setup.env et utilise Casdoor à la place de la connexion intégrée, consultez Utiliser Casdoor sans la connexion intégrée.
Créer l'application dans Casdoor
-
Dans la console d'administration de Casdoor, ouvrez l'organisation de vos utilisateurs et ajoutez une application, ou ouvrez-en une existante.
-
Ajoutez le rappel (callback) de NetBird aux Redirect URLs :
https://netbird.example.com/oauth2/callback -
Gardez le Token format à la valeur par défaut
JWT. NetBird lit l'utilisateur depuis le jeton d'identification, sans interroger le point de terminaison UserInfo, et le format par défaut contientemail,name(le nom d'utilisateur) etgroupsà cet endroit. -
Enregistrez, et notez le Client ID et le Client secret.
Ajouter Casdoor à NetBird
-
Dans le tableau de bord NetBird, allez dans Settings > Identity Providers et cliquez sur Add Identity Provider.
-
Remplissez les informations du fournisseur :
Field Value Provider Type Generic OIDCName CasdoorIssuer URL https://door.example.comClient ID <your-client-id>Client Secret <your-client-secret>- Issuer URL : L'URL de Casdoor. Elle doit correspondre exactement à l'
issueraffiché surhttps://door.example.com/.well-known/openid-configuration. <your-client-id>,<your-client-secret>: Les valeurs de l'application Casdoor.
- Issuer URL : L'URL de Casdoor. Elle doit correspondre exactement à l'
-
Vérifiez que l'URL Redirect / Callback dans la boîte de dialogue est bien celle ajoutée dans Redirect URLs dans Casdoor, puis cliquez sur Add Provider.
Synchroniser les groupes Casdoor
- Dans l'application Casdoor, sur l'onglet OIDC/OAuth, définissez Token group format sur
Name (group), afin que les groupes arrivent sous la formedevelopersau lieu demy-org/developers. - Dans le tableau de bord NetBird, accédez à Settings > Groups, activez JWT group sync et définissez JWT claim sur
groups.
NetBird ajoute et supprime les appartenances aux groupes de l'utilisateur à chaque connexion.
Vérifier le résultat
- Ouvrez le tableau de bord NetBird dans une fenêtre de navigation privée. La page de connexion affiche un bouton pour Casdoor.
- Cliquez dessus et connectez-vous à Casdoor. Le tableau de bord s'ouvre avec l'utilisateur Casdoor connecté.
- Connectez un appareil avec le client NetBird. Le client ouvre la même page de connexion dans un navigateur, ou sur un serveur sans environnement graphique, affiche une URL et un code à ouvrir sur un autre appareil.
Utiliser Casdoor sans la connexion intégrée
Dans l'ancienne configuration, configure.sh lit setup.env et configure le tableau de bord et le client pour qu'ils communiquent directement avec Casdoor. Casdoor sert alors le flux PKCE et le flux d'autorisation par appareil du client lui-même.
-
Dans l'application Casdoor, ajoutez ces URL à Redirect URLs :
https://netbird.example.com/nb-auth
https://netbird.example.com/nb-silent-auth
http://localhost:53000La dernière correspond au callback PKCE du client NetBird. Une entrée
localhostdans Casdoor correspond à la même URL sur n'importe quel port. -
Sur l'onglet OIDC/OAuth, activez Authorization Code, Refresh Token et Device Code dans Grant types.
-
Dans Signin methods, ajoutez Device login. Casdoor refuse les demandes d'autorisation par appareil pour les applications qui ne disposent pas de cette méthode.
-
Dans
setup.env, définissez :NETBIRD_AUTH_OIDC_CONFIGURATION_ENDPOINT="https://door.example.com/.well-known/openid-configuration"
NETBIRD_AUTH_CLIENT_ID="<your-client-id>"
NETBIRD_AUTH_AUDIENCE="<your-client-id>"
NETBIRD_AUTH_SUPPORTED_SCOPES="openid profile email offline_access"
NETBIRD_AUTH_REDIRECT_URI="/nb-auth"
NETBIRD_AUTH_SILENT_REDIRECT_URI="/nb-silent-auth"
NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID="<your-client-id>"
NETBIRD_USE_AUTH0="false"
NETBIRD_MGMT_IDP="none"NETBIRD_AUTH_AUDIENCE: Casdoor place l'ID client dans la revendicationaudde ses jetons, et à la fois le serveur NetBird et le client rejettent les jetons destinés à une autre audience.NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID: Active le flux d'autorisation par appareil, utilisé exclusivement par le client sur un serveur Linux sans environnement graphique.NETBIRD_MGMT_IDP: NetBird ne dispose pas d'intégration de gestion des utilisateurs pour Casdoor.
Le tableau de bord et le client sont ici des clients publics : ils utilisent PKCE et n'envoient aucun secret client, ce que Casdoor accepte.
-
Exécutez
./configure.shet redémarrez les conteneurs NetBird.
Dépannage
| Symptom | Cause and fix |
|---|---|
Casdoor shows Redirect URI: ... doesn't exist in the allowed Redirect URI list | Add the URL from the error to Redirect URLs. With the built-in login, it is the Redirect / Callback URL from the NetBird dialog. |
| Sign-in fails with an issuer or discovery error | Issuer URL differs from the issuer in Casdoor's discovery document. Set origin in Casdoor's conf/app.conf to its public URL and use the same value. |
| The dashboard works, but the client never connects and shows no error | In the setup without the built-in login: on a Linux server without a desktop, the client uses only the device authorization flow. Turn on Device Code and add Device login to Signin methods in Casdoor, and set NETBIRD_AUTH_DEVICE_AUTH_CLIENT_ID. Also check that NETBIRD_AUTH_AUDIENCE is the client ID. |
The device authorization request fails with device login is not enabled for this application | Add Device login to the Signin methods of the application. |
| Groups don't appear in NetBird | Check that JWT group sync is on with the claim groups, that the user is in a group in Casdoor, and that Token format is JWT. |
Voir aussi
- Identity providers dans la documentation NetBird
- Device grant
- Token overview