Harden signed node authorization flow
This commit is contained in:
parent
27a79768e4
commit
1336fa38e8
9 changed files with 382 additions and 55 deletions
21
README.md
21
README.md
|
|
@ -36,8 +36,9 @@ keychain operation log from an imported peer and imports only operations with
|
|||
valid OpenSSH signatures from currently trusted admin keys. `geth node list`
|
||||
shows the active reduced node view, and `geth node rename/revoke` require
|
||||
`--signing-key` so device-management changes can replicate as verified admin
|
||||
statements. `geth node grant/revoke-grant` records the current resource-scoped
|
||||
capability prototype.
|
||||
statements. `geth node grant/revoke-grant` and `geth auth grant/revoke` also
|
||||
require `--signing-key` in the CLI and store signed auth operations for
|
||||
replication.
|
||||
SSH certificate-flow and revocation records carry agent-key signed provenance
|
||||
over canonical payloads, and sync import rejects new unsigned or invalidly
|
||||
signed records.
|
||||
|
|
@ -100,8 +101,10 @@ The bootstrap implementation provides:
|
|||
- `geth node enroll sync <owner-node>`
|
||||
- `geth node rename <node-or-name> <name> --signing-key <private-key>`
|
||||
- `geth node revoke <node-or-name> --signing-key <private-key>`
|
||||
- `geth node grant <node-or-name> <resource> <capability> [--grant-id <id>]`
|
||||
- `geth node revoke-grant <resource> <grant-id>`
|
||||
- `geth node endpoint-add <node-or-name> <endpoint-id> --signing-key <private-key>`
|
||||
- `geth node endpoint-revoke <node-or-name> <endpoint-id> --signing-key <private-key>`
|
||||
- `geth node grant <node-or-name> <resource> <capability> --signing-key <private-key> [--grant-id <id>]`
|
||||
- `geth node revoke-grant <resource> <grant-id> --signing-key <private-key>`
|
||||
- `geth peer export [--out <path>]`
|
||||
- `geth peer import <path>`
|
||||
- `geth peer list`
|
||||
|
|
@ -123,8 +126,8 @@ The bootstrap implementation provides:
|
|||
- `geth secret bearer verify <token> <resource> --nonce <nonce> --response <response> --capability <capability>`
|
||||
- `geth secret bearer revoke <resource> <bearer-id>`
|
||||
- `geth auth explain <subject> <resource> <capability>`
|
||||
- `geth auth grant <subject> <resource> <capability> [--grant-id <id>]`
|
||||
- `geth auth revoke <resource> <grant-id>`
|
||||
- `geth auth grant <subject> <resource> <capability> --signing-key <private-key> [--grant-id <id>]`
|
||||
- `geth auth revoke <resource> <grant-id> --signing-key <private-key>`
|
||||
- local filesystem CAS commands: `add`, `get`, `fetch`, `hash`, `has`, `pin`,
|
||||
`unpin`, `cleanup`, `providers`, `list`; remote fetch accepts
|
||||
`--bearer-secret <secret>`
|
||||
|
|
@ -369,7 +372,11 @@ node, not replace it. Node management is done through the reduced keychain view:
|
|||
```sh
|
||||
geth node list
|
||||
geth node rename laptop work-laptop --signing-key ~/.ssh/id_ed25519_sk
|
||||
geth node grant work-laptop resource:ssh-proxy:local ssh_proxy.connect
|
||||
geth node endpoint-add work-laptop <iroh-endpoint-id> --signing-key ~/.ssh/id_ed25519_sk
|
||||
geth node grant work-laptop resource:ssh-proxy:local ssh_proxy.connect \
|
||||
--signing-key ~/.ssh/id_ed25519_sk
|
||||
geth node revoke-grant resource:ssh-proxy:local <grant-id> \
|
||||
--signing-key ~/.ssh/id_ed25519_sk
|
||||
geth node revoke work-laptop --signing-key ~/.ssh/id_ed25519_sk
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue