Identity-service - An OAuth2 identity provider that operates over gRPC

Otter Social > Identity Provider

An OAuth2 identity provider that operates over gRPC.

Prerequisites

  • Redis instance, or cluster
  • PostgreSQL instance, or cluster

Development Setup

go generate
go run cmd/migrate_db/migrate.go init
go run cmd/service.go

Runtime Envars

  • SERVICE_ENV (Default: dev) - Environment dev or prod
  • SERVICE_HOST (Default: 0.0.0.0) - Listening address
  • SERVICE_PORT (Default: 50050) - Listening port

PostgreSQL

  • POSTGRES_ADDRESS (Default: localhost:5432) - database address, or pgbouncer address
  • POSTGRES_USER - (Default: none) User to connect to the database
  • POSTGRES_PASSWORD - (Default: none) Password for the database user
  • POSTGRES_DATABASE (Default: otter_identity) - Database name

Redis

  • REDIS_NODES (Default localhost:6379) - Comma delimited list of Redis nodes
  • REDIS_PASSWORD (Default: none) - Connection password
  • REDIS_DATABASE (Default: 0) - Redis DB number

Deployments

Using Docker

Docker BuildKit is preferred where available.

docker build -t otter-im/identity:latest -f build/package/Dockerfile .

Using systemd

Make sure to update otter-identity.service with the environment for your Postgres and Redis configuration

./scripts/build.sh
sudo cp ./dist/otter-identity /usr/bin/otter-identity
sudo cp ./init/otter-identity.service /etc/systemd/system/otter-identity.service
sudo systemctl daemon-reload
sudo systemctl enable --now otter-identity.service

Using Kubernetes

Coming soon.

License

MIT License. Copyright (c) 2022 Otter Social.

See the LICENCE file for the full terms.

Similar Resources

A Sample Integration of Google and GitHub OAuth2 in Golang (GoFiber) utilising MongoDB

Go Oauth Server This is sample OAuth integration written in GoLang that also uses MongoDB. This is a sample TODO Application where people can Create a

Dec 27, 2022

Envoy Oauth2 Filter helloworld

Envoy Oauth2 Filter helloworld

Envoy Oauth2 Filter A simple sample demonstrating Envoy's Oauth2 Filter. Basically, this filter will handle all the details for OAuth 2.0 for Web Serv

Jan 2, 2023

Golang OAuth2.0 server

Golang OAuth2.0 server

Aug 24, 2022

JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd

login-service login-service is a standalone minimalistic login server providing a (JWT)[https://jwt.io/] login for multiple login backends. Abstract l

Feb 12, 2022

ZITADEL - Identity Experience Platform

ZITADEL - Identity Experience Platform

What Is ZITADEL ZITADEL is a "Cloud Native Identity and Access Management" solution built for the cloud era. ZITADEL uses a modern software stack cons

Jan 1, 2023

It is a JWT based implement of identity server.

JWTAuth 安裝說明 基本需求 安裝 docker 服務 安裝 OpenSSL 安裝指令 建立 OS 系統的 jwtauth 帳號 sudo useradd -m jwtauth 給予 JWTAuth 帳號可以操作 docker 的權限 sudo usermod -aG docker jwtau

Aug 10, 2022

Demonstration of sharing secret data between an OAuth/OIDC client and an Identity Providers web client.

OAuth / OIDC Cubbyhole Share secret data between client applications. This is mostly a demonstration of some of the work I've been evaluating at Storj

Mar 21, 2022

Authenticating using Workload Identity Federation to Cloud Run, Cloud Functions

Authenticating using Workload Identity Federation to Cloud Run, Cloud Functions

Authenticating using Workload Identity Federation to Cloud Run, Cloud Functions This tutorial and code samples cover how customers that use Workload i

Dec 3, 2022

Barbar Service is a project for demo of simple distribute authentication Service.

Barbar Service is a project for demo of simple distribute authentication Service.

Barbar Service Barbar Service is a project for demo of simple distribute authentication Service. Project Structure Basicaly we reffer to Domain Driven

Aug 29, 2022
A single sign-on solution based on go-oauth2 / oauth2 and gin-gonic/gin

A single sign-on solution based on go-oauth2 / oauth2 and gin-gonic/gin

Nov 17, 2021
Oauth2-golang - Oauth2 Golang Mysql

Oauth2-golang - Oauth2 Golang Mysql

Sep 16, 2022
Hazelcast Storage for go-oauth2/oauth2

Hazelcast Storage for go-oauth2/oauth2

Jan 26, 2022
Go library providing in-memory implementation of an OAuth2 Authorization Server / OpenID Provider

dispans Go library providing in-memory implementation of an OAuth2 Authorization Server / OpenID Provider. The name comes from the Swedish word dispen

Dec 22, 2021
simple-jwt-provider - Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management.

Simple and lightweight JWT-Provider written in go (golang). It exhibits JWT for the in postgres persisted user, which can be managed via api. Also, a password-reset flow via mail verification is available. User specific custom-claims also available for jwt-generation and mail rendering.

Dec 18, 2022
A standalone, specification-compliant, OAuth2 server written in Golang.
A standalone, specification-compliant,  OAuth2 server written in Golang.

Go OAuth2 Server This service implements OAuth 2.0 specification. Excerpts from the specification are included in this README file to describe differe

Dec 28, 2022
Go login handlers for authentication providers (OAuth1, OAuth2)
Go login handlers for authentication providers (OAuth1, OAuth2)

gologin Package gologin provides chainable login http.Handler's for Google, Github, Twitter, Facebook, Bitbucket, Tumblr, or any OAuth1 or OAuth2 auth

Dec 30, 2022
JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, ..
JWT login microservice with plugable backends such as OAuth2, Google, Github, htpasswd, osiam, ..

loginsrv loginsrv is a standalone minimalistic login server providing a JWT login for multiple login backends. ** Attention: Update to v1.3.0 for Goog

Dec 24, 2022
Go OAuth2

OAuth2 for Go oauth2 package contains a client implementation for OAuth 2.0 spec. Installation go get golang.org/x/oauth2 Or you can manually git clo

Jan 8, 2023
Golang OAuth2 server library

OSIN Golang OAuth2 server library OSIN is an OAuth2 server library for the Go language, as specified at http://tools.ietf.org/html/rfc6749 and http://

Dec 23, 2022