All Projects → linyows → Octopass

linyows / Octopass

Licence: gpl-3.0
🐙 Management linux user and authentication with team or collaborator on Github.

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Octopass

Verdaccio Ldap
LDAP auth plugin for verdaccio
Stars: ✭ 39 (-71.11%)
Mutual labels:  ldap
Rdiffweb
A simplified backup management software for quick access to your archives through an efficient web interface.
Stars: ✭ 76 (-43.7%)
Mutual labels:  ldap
Certidude
Easy to use Certificate Authority web service for OpenVPN, StrongSwan and HTTPS
Stars: ✭ 108 (-20%)
Mutual labels:  ldap
Ldaptive
A simple, extensible Java API for interacting with LDAP servers
Stars: ✭ 43 (-68.15%)
Mutual labels:  ldap
Zio Tls Http
100% non-blocking, Java NIO only( inspired by zio-nio) , JSON HTTP server based on Scala ZIO library. Everything including TLS encryption modeled as ZIO effects, convenient route DSL similar to https4s, up to 30K TPS local JSON transaction with 25 threads on 6 cores(i7) with ZIO fibers.
Stars: ✭ 71 (-47.41%)
Mutual labels:  ldap
Xsrv
[mirror] Install and manage self-hosted services/applications, on your own server(s) - ansible collection and utilities
Stars: ✭ 89 (-34.07%)
Mutual labels:  ldap
Docker Mailserver
Production-ready fullstack but simple mail server (SMTP, IMAP, LDAP, Antispam, Antivirus, etc.) running inside a container.
Stars: ✭ 8,115 (+5911.11%)
Mutual labels:  ldap
G Suite Identity Sync
G Suite to LDAP identity synchronizer
Stars: ✭ 120 (-11.11%)
Mutual labels:  ldap
Bonsai
Simple Python 3 module for LDAP, using libldap2 and winldap C libraries.
Stars: ✭ 74 (-45.19%)
Mutual labels:  ldap
Nsscache
asynchronously synchronise local NSS databases with remote directory services
Stars: ✭ 106 (-21.48%)
Mutual labels:  ldap
Freeipa Password Reset
Self-service password reset app for FreeIPA
Stars: ✭ 44 (-67.41%)
Mutual labels:  ldap
Ldap Jwt
Lightweight node.js based web service that provides user authentication against LDAP server (Active Directory / Windows network) credentials and returns a JSON Web Token.
Stars: ✭ 58 (-57.04%)
Mutual labels:  ldap
Ldap4net
OpenLdap port for DotNet Core (Linux\OSX\Windows)
Stars: ✭ 93 (-31.11%)
Mutual labels:  ldap
Ldapper
ldapper — a hassle-free Python LDAP ORM for getting real work done
Stars: ✭ 43 (-68.15%)
Mutual labels:  ldap
Spring Webmvc Pac4j
Security library for Spring Web MVC: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 110 (-18.52%)
Mutual labels:  ldap
Terraform Provider Ldap
LDAP provider for Terraform
Stars: ✭ 32 (-76.3%)
Mutual labels:  ldap
Ldap search
Python3 script to perform LDAP queries and enumerate users, groups, and computers from Windows Domains. Ldap_Search can also perform brute force/password spraying to identify valid accounts via LDAP.
Stars: ✭ 78 (-42.22%)
Mutual labels:  ldap
Ldap2pg
🐘 👥 Manage PostgreSQL roles and privileges from YAML or LDAP
Stars: ✭ 131 (-2.96%)
Mutual labels:  ldap
Keepass4web
An application that serves KeePass database entries on a web frontend
Stars: ✭ 115 (-14.81%)
Mutual labels:  ldap
Node Ldapjs
LDAP Client and Server API for node.js
Stars: ✭ 1,321 (+878.52%)
Mutual labels:  ldap

OCTOPASS

OCTOPASS: Management linux user and authentication with team or collaborator on Github.

Description

This is user management tool for linux by github. The name-resolves and authentication is provided the team or collaborator on github. Features easy handling and ease of operation.

Usage

Github Org/Team

For example, adding "Ken" to a team with github organization ...

OCTOPASS is a valid linux server, Ken will be able to ssh login with the key registered in github.

Wow!?

By OCTOPASS name resolution, you can check the id of team members of github organization.

$ id ken
uid=5458(ken) gid=2000(operators) groups=2000(operators)

You can also see a list like /etc/passwd,shadow,group by OCTOPASS. For detail --help.

$ octopass passwd
chun-li❌14301:2000:managed by octopass:/home/chun-li:/bin/bash
dhalsim❌8875:2000:managed by octopass:/home/dhalsim:/bin/bash
ken❌5458:2000:managed by octopass:/home/ken:/bin/bash
ryu❌74049:2000:managed by octopass:/home/ryu:/bin/bash
sagat❌93011:2000:managed by octopass:/home/sagat:/bin/bash
zangief❌8305:2000:managed by octopass:/home/zangief:/bin/bash

And OCTOPASS gets the public key from github for key authentication.

$ octopass ken
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqUJvs1vRgHRMH9dpxYcBBV687njS2YrJ+oeIKvbAbg6yL4QsJMeElcPOlmfWEYsp8vbRLXQCTvv14XJfKmgp8V9es5P/l8r5Came3X1S/muqRMONUTdygCpfyo+BJGIMVKtH8fSsBCWfJJ1EYEesyzxqc2u44yIiczM2b461tRwW+7cHNrQ6bKEY9sRMV0p/zkOdPwle30qQml+AlS1SvbrMiiJLEW75dSSENr5M+P4ciJHYXhsrgLE95+ThFPqbznZYWixxATWEYMLiK6OrSy5aYss4o9mvEBJozyrVdKyKz11zSK2D4Z/JTh8eP+NxAw5otqBmfNx+HhKRH3MhJQ==

Why?

I did not need functions like ldap, and asked for ease and ease of introduction. Therefore, the user only considers it as administrator authority. However, it is very easy to add a newly added user or to remove a user who leaves.

Also, in order to speedily resolve names, Github API responses are file cached. With this, even if Github is down, it will work if past caches remain.

Architecture

Architecture

Installation

Ubuntu:

$ curl -s https://packagecloud.io/install/repositories/linyows/octopass/script.deb.sh | sudo bash
$ sudo apt-get install octopass

CentOS:

$ curl -s https://packagecloud.io/install/repositories/linyows/octopass/script.rpm.sh | sudo bash
$ sudo yum install octopass

Packages are provided via packagecloud.

Building from Source

Dependency

  • glibc
  • libcurl
  • jansson
$ git clone https://github.com/linyows/octopass
$ make && make install
$ mv octopass.conf.example /etc/octopass.conf

Configuration

Edit octopass.conf:

$ mv /etc/{octopass.conf.example,octopass.conf}
Key Description Default
Endpoint github endpoint https://api.github.com
Token github personal access token -
Organization github organization -
Team github team -
Owner github owner -
Repository github repository -
Permission github collaborator permission write
Group group on linux same as team
Home user home /home/%s
Shell user shell /bin/bash
UidStarts start number of uid 2000
Gid gid 2000
Cache github api cache sec 500
Syslog use syslog false
SharedUsers share auth of specific users on team []

Generate token from here: https://github.com/settings/tokens/new. Need: Read org and team membership

SSHD Configuration

/etc/ssh/sshd_config:

AuthorizedKeysCommand /usr/bin/octopass
AuthorizedKeysCommandUser root
UsePAM yes
PasswordAuthentication no

PAM Configuration

Add to top of /etc/pam.d/sshd this:

auth	requisite	pam_exec.so	quiet	expose_authtok	/usr/bin/octopass pam
auth	optional	pam_unix.so	not_set_pass	use_first_pass	nodelay
session	required	pam_mkhomedir.so	skel=/etc/skel/	umask=0022

NSS Switch Configuration

/etc/nsswitch.conf:

passwd:     files octopass sss
shadow:     files octopass sss
group:      files octopass sss

Enable OCTOPASS as name resolution.

Provisioning

Thank you @uchida, @hnmx4 and @hfm for some provisioning tools.

Backers 🚀

Support us with a monthly donation and help us continue our activities. [Become a backer]

Author

linyows

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].