infra:services:hacker-id
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
infra:services:hacker-id [2025/07/13 22:56] – 404d | infra:services:hacker-id [2025/07/14 19:11] (current) – 404d | ||
---|---|---|---|
Line 5: | Line 5: | ||
Hacker-ID is a member-initiated service to provide a simple-to-use and universal base for implementing SSO services at Hackeriet. | Hacker-ID is a member-initiated service to provide a simple-to-use and universal base for implementing SSO services at Hackeriet. | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | This is a proof-of-concept to see how one could reasonably deploy IDP in a simple yet flexible way with few moving parts. I'm mainly testing this out as account management for a handful of projects I've planned for the space. Do not expect it to be widely used as of this moment. | ||
+ | |||
+ | Ask if you have any questions, need help, need an account, or want to integrate something. | ||
+ | |||
+ | Regards, 404'd | ||
+ | </ | ||
+ | |||
+ | |||
+ | A simple self-service portal on https:// | ||
+ | |||
+ | Access control is currently managed through the Kanidm CLI. [[https:// | ||
+ | |||
+ | |||
+ | ===== ACL structure ===== | ||
+ | During the draft phase, the following groups have been configured: | ||
+ | |||
+ | ^ Name ^ Entry manager ^ Description ^ | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | | '' | ||
+ | |||
+ | IDP admins may always step in to assist, shall any of the groups be orphaned (no active/ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Using Hacker-ID for SSH/Linux login ===== | ||
+ | Kanidm can be used as a resolve-through locally caching authentication handler, resilient to network failures and transparently allowing existing local credentials to be used as-is. | ||
+ | |||
+ | There' | ||
+ | |||
+ | - [[https:// | ||
+ | - [[https:// | ||
+ | - Edit config file ''/ | ||
+ | - Edit config file ''/ | ||
+ | - Optional: Add group mappings, like sudo or docker rights: < | ||
+ | [[kanidm.map_group]] | ||
+ | local = " | ||
+ | with = " | ||
+ | |||
+ | [[kanidm.map_group]] | ||
+ | local = " | ||
+ | with = " | ||
+ | </ | ||
+ | - [[https:// | ||
+ | - [[https:// | ||
+ | - Debian/ | ||
+ | - [[https:// | ||
+ | - Note: SELinux profiles are NOT included | ||
+ | - [[https:// | ||
+ | - [[https:// | ||
+ | |||
+ | Restart '' | ||
+ | < | ||
+ | # kanidm-unix status | ||
+ | system: online | ||
+ | Kanidm: online | ||
+ | |||
+ | # kanidm-unix auth-test --name d404d | ||
+ | Enter Unix password: [hidden] | ||
+ | auth success! | ||
+ | account success! | ||
+ | </ | ||
+ | Finally, attempt login over SSH towards your Hacker-ID username | ||
+ | |||
+ | ===== Good to know ===== | ||
+ | |||
+ | * Some information is publicly accessible, as required by unix/posix integrations: | ||
+ | * Anonymous access will be removed once this draft is finalized: https:// | ||
+ | * Users are allowed to change all details about their profile! **NEVER** consider anything but the user UUID to be user identifiable (see the '' | ||
+ | * THIS INCLUDES THE USERNAME AND EMAIL | ||
===== System setup ===== | ===== System setup ===== | ||
Rough notes for the moment: | Rough notes for the moment: | ||
- | * Hosted on idp1.hackeriet.no | + | * Hosted on idp1.hackeriet.no |
* Authentication realm is '' | * Authentication realm is '' | ||
* Public portal and API on https:// | * Public portal and API on https:// | ||
* Internal services (SSH, LDAP, RADIUS etc.) will be exposed on '' | * Internal services (SSH, LDAP, RADIUS etc.) will be exposed on '' | ||
- | * We won't be able to get LDAP certs for the right hostname on the internal interface... If this turns out to be a dealbreaker it might be better to solve this using NAT rather than moving the host entirely onto VLAN 130 | + | * We won't be able to get LDAP certs for the right hostname on the internal interface... If this turns out to be a dealbreaker it might be better to solve this using NAT rather than moving the host entirely onto VLAN 130. |
* Located in ''/ | * Located in ''/ | ||
* One docker compose stack with Traefik (for certificate issuance as LE needs this in-line) and Kanidm | * One docker compose stack with Traefik (for certificate issuance as LE needs this in-line) and Kanidm | ||
Line 20: | Line 96: | ||
* Kanidm includes built-in backup solution and replication | * Kanidm includes built-in backup solution and replication | ||
* No mirroring of the backups has been configured yet | * No mirroring of the backups has been configured yet | ||
+ | * Set up kanidm-unixd for idp1.hackeriet.no | ||
+ | * Installed daemon | ||
+ | * Added to SSH config | ||
+ | * Added to nsswitch | ||
+ | * For Debian flavours incl. Ubuntu and Raspbian, installing '' | ||
+ | * AppArmor default profiles blocks access to the service socket used, need to amend the profile with the correct paths then reload & restart |
/srv/hackeriet-wiki/dokuwiki/data/attic/infra/services/hacker-id.1752447368.txt.gz · Last modified: by 404d