feat: Add Client Authentication and Provisioning Plugin #22
Reference in New Issue
Block a user
Delete Branch "feat/auth-plugin"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This Pull Request implements the Client Authentication and Provisioning flow. It enables secure onboarding of new client devices and authorization by administrators using SSH Ed25519 key verification and
ageencryption.Closes #20
Changes Proposed
1. Cryptographic Client Plugin (
plugins/auth.sh)plugins/auth.shhandling both requester (me) and approver (trust) roles.b me):~/.config/bootstrap-client/.hostname,os) alongside the public key to/api/register.user_codeandchallenge_nonce./api/challenge/pollby signing the nonce usingssh-keygen -Y sign(namespace:bootstrap).age -d -i ~/.config/bootstrap-client/id_ed25519and writes it tosecrets.decrypted.b trust <user_code>):/api/pending/<user_code>.ssh-keygen -Y sign) and submits the base64 signature alongside the fingerprint to/api/approve.2. Router Integration (
lib/routes.sh)meandtrustcommands to lazy-load theauthplugin viarun_plugin "auth".3. Autocompletion (
b.sh)meandtrustcommands afterb.4. Local Installation Updates (
bootstrap.sh)plugins/directory (similar toinstallers/) to$BOOTSTRAP_DIRduring local development bootstrapping.5. Plugin Manifest (
plugins.json)authin the local plugin catalog.Verification & Testing
bootstrap.shto sync the changes locally./tmpupon script termination.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.