Self-service account creation and credential reset for FreeIPA

Auri

GitHub license Maintenance made-with-Go made-with-Gobuffalo Go Report Card

GitHub release GitHub Actions Copr build status

Auri stands for: Automated User Registration IPA

Auri implements self service account creation and reset of credentials for FreeIPA

Features

  • Requesting of accounts with validation workflow (see below)
  • Whitelisting of allowed domains
  • Self-service reset of password and/or SSH keys
  • Designed to store as less data as possible (e.g. no secrets are stored)
  • Logging of all IPA operations
  • Logging of all interactions (e.g. account request, approval actions)

Workflow

Workflow overview

Requirements

  • Linux (RH family)
  • PostgreSQL (tested with PostgreSQL 12)
  • FreeIPA (tested with FreeIPA 4.6.8 on CentOS 7)

Installation and configuration

Install and configure PostgreSQL (see this HowTo). Create a database and according user.

Use the Fedora COPR repository for auri installation:

$ wget -O /etc/yum.repos.d/auri.repo \
       https://copr.fedorainfracloud.org/coprs/auri/releases/repo/epel-8/auri-releases-epel-8.repo
# on EL7
$ yum install auri
# on EL8 and Fedoro
$ dnf install auri

Auri RPM file contains two configuration files with default settings:

  • /etc/auri/database.yml - DB connection settings
  • /etc/auri/config.env - configuration file for auri

Change the configuration files as needed and set the mandatory configuration options. Keep in mind to restart auri in case of configuration changes.

Update the database scheme, enable and start auri:

$ auri migrate
$ systemctl enable auri
$ systemctl start auri

Create the maintenance cronjobs for removal of expired requests and tokens:

$ cat > /etc/cron.d/auri <<EOF
0 3 * * * root auri task cleanup_requests && auri task cleanup_reset_tokens
EOF

Tasks

Auri binary provides several maintenance tasks, see auri --help and auri task list for more details.

Development environment

This repository contains a Vagrantfile, so you can start the development environment via vagrant in a virtual machine like this:

  1. Install vagrant
  2. Install virtualbox
  3. Clone the repository
  4. Invoke vagrant up and grab a coffee

Invoke vagrant ssh to get to the VM, invoke buffalo dev in the VM in order to start Auri in the development mode. You can set the configuration parameters in the development mode via creating the .env file in the top-level. See the configuration file for possible options.

Unit tests can be executed using the prepared configuration file:

$ cp fixtures/testing-config.env .env
$ make test
...

Authors

Auri was a trainee project within Deutsche Telekom Security GmbH. We assume our problem and solution are generic enough to be interesting for others, so we decided to open source it :-) Any help with maintenance of Auri is welcome and appreciated!

Acknowledgments

Related and similar projects

License

This project is licensed under the MIT License - see the LICENSE file for details.

Similar Resources

A simple self-hostable Machine Translation service, powered by spaGO

A simple self-hostable Machine Translation service, powered by spaGO

Nov 9, 2022

lightweight, self-service AWS IAM management

lightweight, self-service AWS IAM management

Contents Overview Architecture Prerequisites Workflow What groups exist? Who do I ask for access? What groups am I in? How do I add group members? How

Jan 16, 2022

Qfy - Self-hosted implementation of Synthetics - Monitoring checks to validate your service availability

qfy Self-hosted implementation of Synthetics - Monitoring checks to validate you

Feb 23, 2022

Azure Data Lake Storage Account Share 9p File System

dlfs Azure storage account (data lake) v2 as a 9p file system. Fork of abfs. Written in Go. Created during the 2021 MS hackathon. Build Currently the

Oct 15, 2021

Download tracks with free account

Spotify This module works with Spotify free accounts. It can download individual tracks. It downloads the audio files served by Spotify's servers and

Feb 22, 2022

Spotify account generator, just for fun purpose.

go-spotify-account-generator Spotify account generator, just for fun purpose. Install $ go get github.com/HamzaAnis/go-spotify-account-generator How

Dec 16, 2022

SDBOTs Inifinity Account Generator ⚙️

Account-Generator Variables Env Vars - BOT_TOKEN - Get it from @BotFather CHANNEL_ID - Channel ID of Join Check Channel. CHANNEL_USERNAME - Channel Us

Dec 10, 2021

This repo introduces a simple server, which provided some APIs for search DAS account's records or reverse records

Prerequisites Install Usage Others Das-Account-Indexer This repo introduces a simple server, which provided some APIs for search DAS account's records

Dec 13, 2022

WeChat Official Account's Verification using Revel

Welcome to Revel A high-productivity web framework for the Go language. Start the web server: revel run myapp Go to http://localhost:9000/ and you'll

Dec 25, 2021
Comments
  • Collapsed input fields

    Collapsed input fields

    Input fields for password, confirm password and ssh are collapsed by default when you want to set your credentials. To recreate the issue make a new account request, wait for validation from an admin and the e-mail with the link "set your credentials"

    https://github.com/auri/auri/blob/master/templates/credentials-reset-data-collection.plush.html

  • RPM: use the systemd code for rpm routines

    RPM: use the systemd code for rpm routines

    from the packaging guide: https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_systemd

    It would make it complicated to make here the builds for EL and Fedora because of Build Deps to systemd, so we just use the same commands (output of rpm --eval)

  • Plans for other architecture

    Plans for other architecture

    Is the plans to run in different hardware architecture than x86? I'd like to test it under ppc64, is possible to compile, if yes how should I proceed? Thank you

Account - Ant Chain ACCOUNT SDK for Go

English | 简体中文 Ant Chain ACCOUNT SDK for Go Requirements It's necessary for you

Jan 13, 2022
AWS credential_process utility to assume AWS IAM Roles with Yubikey Touch and Authenticator App TOPT MFA to provide temporary session credentials; With encrypted caching and support for automatic credential refresh.
AWS credential_process utility to assume AWS IAM Roles with Yubikey Touch and Authenticator App TOPT MFA to provide temporary session credentials; With encrypted caching and support for automatic credential refresh.

AWS credential_process utility to assume AWS IAM Roles with Yubikey Touch and Authenticator App TOPT MFA to provide temporary session credentials; With encrypted caching and support for automatic credential refresh.

Dec 20, 2022
aws credential solution by Golang
aws credential solution by Golang

goCred Aws credential solution by Golang (Works on Linux, Arm, and Windows) v0.3 Detection of unauthorized access Locks access in case of repeated una

Oct 23, 2021
⚛️ aws credential setup tool ⚛️

awscreds What is awscreds? awscreds is CLI tool to setup aws credentials with MFA device. Requirement go 1.17.x or earlier Installation go install git

Dec 9, 2021
csg ("Credential Storage with Go") - a tool to organize the storage of credentials found during a CTF or Pentest.
csg (

csg csg ("Credential Storage with Go") - a tool to organize the storage of credentials found during a CTF or Pentest. Check out my blog on csg for mor

Dec 9, 2021
Easy creation of review tasks for the Jira with a Discord notifications.

easy-jira-task-review Easy creation of review tasks for the Jira with a Discord notifications. Any ideas and help are welcome Installation Install go

Dec 1, 2022
Feb 7, 2022
Periodically collect data about my Twitter account and check in to github to preserve an audit trail.

Twitter audit trail backup This repository backs up my follower list, following list, blocked accounts list and muted accounts list periodically using

Dec 28, 2022
Lambda stack to turn off and destroy all resources from your personal AWS Account to avoid billing surprises
Lambda stack to turn off and destroy all resources from your personal AWS Account to avoid billing surprises

AWS, Turn off my Account, please Lambda stack to turn off and destroy all resources from your personal AWS Account to avoid billing surprises Resource

Oct 25, 2022
Lookup or replace AWS account IDs with their names and vice versa

awsacc A trusty helper for working with AWS account IDs. Working with AWS account IDs often involves more manual effort than necessary. Often account

Oct 14, 2021