https://github.com/crocs-muni/indie-oidc-provider

https://github.com/crocs-muni/indie-oidc-provider

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: crocs-muni
  • Language: Python
  • Default Branch: master
  • Size: 21.5 KB
Statistics
  • Stars: 0
  • Watchers: 4
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme

README.md

Example of OpenID Connect 1.0 Provider

This is an example of OpenID Connect 1.0 server in Flask and Authlib.


Take a quick look

This is a ready to run example, let's take a quick experience at first. To run the example, we need to install all the dependencies:

$ pip install -r requirements.txt

Set Flask and Authlib environment variables:

# disable check https (DO NOT SET THIS IN PRODUCTION)
$ export AUTHLIB_INSECURE_TRANSPORT=1

Create Database and run the development server:

$ flask initdb
$ flask run

Now, you can open your browser with http://127.0.0.1:5000/, login with any name you want.

Before testing, we need to create a client:

create a client

NOTE: YOU MUST ADD openid SCOPE IN YOUR CLIENT

Let's take authorization_code grant type as an example. Visit:

http://127.0.0.1:5000/oauth/authorize?client_id=${CLIENT_ID}&scope=openid+profile&response_type=code&nonce=abc

After that, you will be redirect to a URL. For instance:

https://example.com/?code=RSv6j745Ri0DhBSvi2RQu5JKpIVvLm8SFd5ObjOZZSijohe0

Copy the code value, use curl to get the access token:

curl -u "${CLIENT_ID}:${CLIENT_SECRET}" -XPOST http://127.0.0.1:5000/oauth/token -F grant_type=authorization_code -F code=RSv6j745Ri0DhBSvi2RQu5JKpIVvLm8SFd5ObjOZZSijohe0

Now you can access the userinfo endpoint:

bash $ curl -H "Authorization: Bearer ${access_token}" http://127.0.0.1:5000/oauth/userinfo

Owner

  • Name: CRoCS
  • Login: crocs-muni
  • Kind: organization
  • Location: Faculty of Informatics, Masaryk University, Brno

Centre for Research on Cryptography and Security

GitHub Events

Total
  • Push event: 2
  • Pull request event: 1
  • Create event: 3
Last Year
  • Push event: 2
  • Pull request event: 1
  • Create event: 3

Dependencies

pyproject.toml pypi
  • authlib *
  • cryptography *
  • flask *
  • flask-sqlalchemy *
requirements.txt pypi
  • Authlib ==0.13
  • Flask *
  • Flask-SQLAlchemy *