All Projects → pirogoeth → lsso

pirogoeth / lsso

Licence: MIT License
Nginx SSO middleware for protecting your internets.

Programming Languages

lua
6591 projects
HTML
75241 projects

Projects that are alternatives of or similar to lsso

Authelia
The Single Sign-On Multi-Factor portal for web apps
Stars: ✭ 11,094 (+26314.29%)
Mutual labels:  u2f, two-factor, sso
Maxkey
MaxKey is Single Sign On(SSO) System,Leading-Edge Enterprise-Class open source IAM(Identity and Access management) product.
Stars: ✭ 274 (+552.38%)
Mutual labels:  oauth, sso
traefik-proxy
One-step (secure) configuration for Traefik edge router.
Stars: ✭ 20 (-52.38%)
Mutual labels:  u2f, sso
Tailscale
The easiest, most secure way to use WireGuard and 2FA.
Stars: ✭ 6,157 (+14559.52%)
Mutual labels:  oauth, sso
OpenAM
OpenAM is an open access management solution that includes Authentication, SSO, Authorization, Federation, Entitlements and Web Services Security.
Stars: ✭ 476 (+1033.33%)
Mutual labels:  oauth, sso
Fw Cloud Framework
基于springcloud全家桶开发分布式框架(支持oauth2认证授权、SSO登录、统一下单、微信公众号服务、Shardingdbc分库分表、常见服务监控、链路监控、异步日志、redis缓存等功能),实现基于Vue全家桶等前后端分离项目工程
Stars: ✭ 717 (+1607.14%)
Mutual labels:  oauth, sso
sign-in-with-ethereum
Minimal example of sign in with Ethereum. Compatible with web3 browsers.
Stars: ✭ 25 (-40.48%)
Mutual labels:  oauth, sso
Home
Welcome to Janssen: the world's fastest cloud native identity and access management platform
Stars: ✭ 176 (+319.05%)
Mutual labels:  oauth, sso
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+5021.43%)
Mutual labels:  oauth, sso
Hydra
OpenID Certified™ OpenID Connect and OAuth Provider written in Go - cloud native, security-first, open source API security for your infrastructure. SDKs for any language. Compatible with MITREid.
Stars: ✭ 11,884 (+28195.24%)
Mutual labels:  oauth, sso
Sso
sso, aka S.S.Octopus, aka octoboi, is a single sign-on solution for securing internal services
Stars: ✭ 2,835 (+6650%)
Mutual labels:  oauth, sso
casdoor
An Identity and Access Management (IAM) / Single-Sign-On (SSO) platform with web UI supporting OAuth 2.0, OIDC, SAML and CAS, QQ group: 645200447
Stars: ✭ 4,147 (+9773.81%)
Mutual labels:  oauth, sso
WooDroid
Simple, robust Woocommerce API sdk for java and android
Stars: ✭ 77 (+83.33%)
Mutual labels:  oauth
redux-oauth
Bearer token-based authentication library with OAuth2 support for redux applications.
Stars: ✭ 68 (+61.9%)
Mutual labels:  oauth
mastodon-api-php
PHP wrapper for the Mastodon API.
Stars: ✭ 12 (-71.43%)
Mutual labels:  oauth
Yuna
Yuan企业通用后台,快速实现微后台架构
Stars: ✭ 19 (-54.76%)
Mutual labels:  sso
Vulnerable-OAuth-2.0-Applications
vulnerable OAuth 2.0 applications: understand the security implications of your OAuth 2.0 decisions.
Stars: ✭ 224 (+433.33%)
Mutual labels:  oauth
httpx-oauth
Async OAuth client using HTTPX
Stars: ✭ 55 (+30.95%)
Mutual labels:  oauth
goth fiber
Package goth_fiber provides a simple, clean, and idiomatic way to write authentication packages for fiber framework applications.
Stars: ✭ 26 (-38.1%)
Mutual labels:  oauth
active-directory-integration2
WordPress plug-in "Next Active Directory Integration"
Stars: ✭ 51 (+21.43%)
Mutual labels:  sso

lsso

lsso is a SSO middleware written in Lua to sit between Nginx and server endpoints.

lsso uses client-side cookies alongside a Redis database of session hashes to track session. In our setup, we use a fork of Osiris with a Redis token store as an OAuth endpoint.

Features:

  • OAuth authentication
  • Raven / Sentry support
  • Cross-domain-authentication
  • Backend session store in Redis
  • Auth and session event logging to Redis
  • CLI management tool, lssoctl (In Progress!)
  • Management API (In Progress!)
  • Temporary access token generation
  • 2FA Support

Requirements

Installation

  • Clone this repo..
  • Copy external/* to your lua5.1 package dir (/usr/local/share/lua/5.1/ or similar)
  • Use the file from nginx/sso-init.conf to set up the main nginx conf.
    • Make sure to adjust the request rate limit to your desire.
  • Use the template from nginx/sso-site.conf to set up your SSO endpoint.
    • Adjust any endpoints as you wish, but make sure to update config.lua as well.
  • Grab the src/config.lua, configure it, and stick it where you want
  • Change config_path in src/init.lua to point to your newly configured config.lua.
  • Insert access_by_lua_file /path/to/lsso/src/access.lua; in any location, server block, etc, that you want to protect.
  • Restart nginx.
  • Done! (?)

Roadmap

  • Authentication:
    • HTTP Basic authentication support for endpoints.
      • Stage: Researching
    • Implement SAML 2.0 authentication
      • Stage: Researching & implementing
    • Implement U2F Registration / Authentication process
      • Stage: Researching
    • Use JWT cookie instead of unsigned client cookies (? | lua-resty-jwt)
      • Stage: Researching
    • Per-location auth scoping (customizable scopes for each protected location: set $lsso_location_scope 'admin'; before access_by_lua_file)
  • API:
    • API access tokens
      • Inherently different from regular access tokens, but possibly managed/requested through the same endpoint?
      • If using a different endpoint, possibly /api/auth (?).
    • Some user-facing endpoints for managing sessions:
      • /auth/logout - kill the active user session, if any.
    • API for token requests, management, health, etc.
      • /api/_health - simple status
      • /api/token/request - request access token
      • Log access endpoints
        • /log/api - api event log
        • /log/auth - authentication event log
        • /log/session - session event log
        • ...
      • ...
  • Metadata:
    • Metadata store implementation
      • Required for U2F and other 2FA implementations
      • Should be an ephemeral data store, possibly key-value or record-based
      • Implementation language does not need to be Lua...
      • Should be simplistic, have an HTTP API, HTTP client
      • Should not depend on a temporal data store such as Redis (unless configured as persistent store)
      • Stage: Researching
  • Miscellaneous:
    • More documentation!
    • Stats collection for info about user sessions, login attempts, page accesses (?)
      • Stats export via statsd for aggregation (?)
    • Status portal (with content_by_lua_file and lustache)
  • Multi-Factor Auth:
    • Implement base for 2FA...
    • Major 2FA types:
      • Authy
        • Stage: Researching & implementation
      • U2F
        • Stage: Researching

Contributing

Pull requests and issues are more than welcome! I need as much feedback on this as possible to continue improving the SSO.

To discuss code or anything else, you can find us on IRC at irc.maio.me in #dev.

Licensing

This project is licensed under the MIT License. You can view the full terms of the license in /LICENSE.txt.

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].