All Projects → zmartzone → Mod_auth_openidc

zmartzone / Mod_auth_openidc

Licence: apache-2.0
OpenID Connect Relying Party implementation for Apache HTTP Server 2.x

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Mod auth openidc

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 (+1655.39%)
Mutual labels:  oauth2, oauth, openid-connect
Fosite
Extensible security first OAuth 2.0 and OpenID Connect SDK for Go.
Stars: ✭ 1,738 (+156.72%)
Mutual labels:  oauth2, oauth, openid-connect
Passport
Simple, unobtrusive authentication for Node.js.
Stars: ✭ 19,608 (+2796.31%)
Mutual labels:  oauth, oauth2, openid-connect
Authing
🔥Authing - IDaaS/IAM solution that can Auth to web and mobile applications.
Stars: ✭ 247 (-63.52%)
Mutual labels:  oauth2, oauth, openid-connect
Oauthlib
A generic, spec-compliant, thorough implementation of the OAuth request-signing logic
Stars: ✭ 2,323 (+243.13%)
Mutual labels:  oauth2, oauth, openid-connect
Assent
Multi-provider framework in Elixir
Stars: ✭ 126 (-81.39%)
Mutual labels:  oauth2, oauth, openid-connect
Nginx Openid Connect
Reference implementation of OpenID Connect integration for NGINX Plus
Stars: ✭ 96 (-85.82%)
Mutual labels:  oauth2, oauth, openid-connect
External Auth Server
easy auth for reverse proxies
Stars: ✭ 189 (-72.08%)
Mutual labels:  oauth2, oauth, openid-connect
Authlib
The ultimate Python library in building OAuth, OpenID Connect clients and servers. JWS,JWE,JWK,JWA,JWT included.
Stars: ✭ 2,854 (+321.57%)
Mutual labels:  oauth2, oauth, openid-connect
yii-auth-client
Yii Framework external authentication via OAuth and OpenID Extension
Stars: ✭ 20 (-97.05%)
Mutual labels:  oauth, oauth2, openid-connect
Play Pac4j
Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 375 (-44.61%)
Mutual labels:  oauth, openid-connect
Oauth
🔗 OAuth 2.0 implementation for various providers in one place.
Stars: ✭ 336 (-50.37%)
Mutual labels:  oauth2, oauth
React Aad
A React wrapper for Azure AD using the Microsoft Authentication Library (MSAL). The easiest way to integrate AzureAD with your React for authentication.
Stars: ✭ 324 (-52.14%)
Mutual labels:  oauth2, oauth
Django Oidc Provider
OpenID Connect and OAuth2 provider implementation for Djangonauts.
Stars: ✭ 320 (-52.73%)
Mutual labels:  oauth2, openid-connect
Scribejava
Simple OAuth library for Java
Stars: ✭ 5,223 (+671.49%)
Mutual labels:  oauth2, oauth
Next Auth
Authentication for Next.js
Stars: ✭ 8,362 (+1135.16%)
Mutual labels:  oauth2, oauth
Retroauth
A library build on top of retrofit, for simple handling of authenticated requests
Stars: ✭ 405 (-40.18%)
Mutual labels:  oauth2, oauth
Buji Pac4j
pac4j security library for Shiro: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 444 (-34.42%)
Mutual labels:  oauth, openid-connect
Identitymodel.oidcclient
Certified C#/NetStandard OpenID Connect Client Library for native mobile/desktop Applications (RFC 8252)
Stars: ✭ 316 (-53.32%)
Mutual labels:  oauth2, openid-connect
Spruce
A social networking platform made using Node.js and MongoDB
Stars: ✭ 399 (-41.06%)
Mutual labels:  oauth2, oauth

Build Status OpenID Certification Code Quality: Cpp Total Alerts

mod_auth_openidc

mod_auth_openidc is an authentication/authorization module for the Apache 2.x HTTP server that functions as an OpenID Connect Relying Party, authenticating users against an OpenID Connect Provider.

Overview

This module enables an Apache 2.x web server to operate as an OpenID Connect Relying Party (RP) to an OpenID Connect Provider (OP). It authenticates users against an OpenID Connect Provider, receives user identity information from the OP in a so called ID Token and passes on the identity information (a.k.a. claims) in the ID Token to applications hosted and protected by the Apache web server.

The protected content and/or applications can be served by the Apache server itself or it can be served from elsewhere when Apache is configured as a Reverse Proxy in front of the origin server(s).

By default the module sets the REMOTE_USER variable to the id_token [sub] claim, concatenated with the OP's Issuer identifier ([sub]@[iss]). Other id_token claims are passed in HTTP headers and/or environment variables together with those (optionally) obtained from the UserInfo endpoint.

It allows for authorization rules (based on standard Apache Require primitives) that can be matched against the set of claims provided in the id_token/ userinfo claims.

mod_auth_openidc supports the following specifications:

For an exhaustive description of all configuration options, see the file auth_openidc.conf in this directory. This file can also serve as an include file for httpd.conf.

Support

Community Support

For generic questions, see the Wiki pages with Frequently Asked Questions at:
https://github.com/zmartzone/mod_auth_openidc/wiki
There is a Google Group/mailing list at:
[email protected]
The corresponding forum/archive is at:
https://groups.google.com/forum/#!forum/mod_auth_openidc
Any questions/issues should go to the mailing list.

Commercial Services

For commercial Support contracts, Professional Services, Training and use-case specific support you can contact:
[email protected]

How to Use It

OpenID Connect SSO with Google+ Sign-In

Sample configuration for using Google as your OpenID Connect Provider running on www.example.com and https://www.example.com/example/redirect_uri registered as the redirect_uri for the client through the Google API Console. You will also have to enable the Google+ API under APIs & auth in the Google API console.

OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration
OIDCClientID <your-client-id-administered-through-the-google-api-console>
OIDCClientSecret <your-client-secret-administered-through-the-google-api-console>

# OIDCRedirectURI is a vanity URL that must point to a path protected by this module but must NOT point to any content
OIDCRedirectURI https://www.example.com/example/redirect_uri
OIDCCryptoPassphrase <password>

<Location /example/>
   AuthType openid-connect
   Require valid-user
</Location>

Note if you want to securely restrict logins to a specific Google Apps domain you would not only add the hd=<your-domain> setting to the OIDCAuthRequestParams primitive for skipping the Google Account Chooser screen, but you must also ask for the email scope using OIDCScope and use a Require claim authorization setting in the Location primitive similar to:

OIDCScope "openid email"
Require claim hd:<your-domain>

The above is an authorization example of an exact match of a provided claim against a string value. For more authorization options see the Wiki page on Authorization.

Quickstart with a generic OpenID Connect Provider

  1. install and load mod_auth_openidc.so in your Apache server
  2. configure your protected content/locations with AuthType openid-connect
  3. set OIDCRedirectURI to a "vanity" URL within a location that is protected by mod_auth_openidc
  4. register/generate a Client identifier and a secret with the OpenID Connect Provider and configure those in OIDCClientID and OIDCClientSecret respectively
  5. and register the OIDCRedirectURI as the Redirect or Callback URI with your client at the Provider
  6. configure OIDCProviderMetadataURL so it points to the Discovery metadata of your OpenID Connect Provider served on the .well-known/openid-configuration endpoint
  7. configure a random password in OIDCCryptoPassphrase for session/state encryption purposes
LoadModule auth_openidc_module modules/mod_auth_openidc.so

OIDCProviderMetadataURL <issuer>/.well-known/openid-configuration
OIDCClientID <client_id>
OIDCClientSecret <client_secret>

# OIDCRedirectURI is a vanity URL that must point to a path protected by this module but must NOT point to any content
OIDCRedirectURI https://<hostname>/secure/redirect_uri
OIDCCryptoPassphrase <password>

<Location /secure>
   AuthType openid-connect
   Require valid-user
</Location>

For details on configuring multiple providers see the Wiki.

Quickstart for Other Providers

See the Wiki for configuration docs for other OpenID Connect Providers:

Disclaimer

This software is open sourced by ZmartZone IAM. For commercial services you can contact ZmartZone IAM as described above in the Support section.

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