uwcirg/authlib

Name: authlib

Owner: University of Washington Clinical Informatics Research Group

Description: An ambitious authentication library for OAuth 1, OAuth 2, OpenID clients and servers.

Forked from: lepture/authlib

Created: 2018-03-24 00:11:41.0

Updated: 2018-03-24 00:11:43.0

Pushed: 2018-03-24 01:50:27.0

Homepage: https://authlib.org/

Size: 800

Language: Python

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Authlib

Build Status Coverage Status Wheel Status PyPI Version Release Stage Follow Twitter

Authlib is an ambitious authentication library for OAuth 1, OAuth 2, OpenID clients, servers and more.

Authlib is compatible with Python2.7+ and Python3.5+.

orization_server.register_grant(AuthorizationCodeGrant)
orization_server.register_grant(ImplicitGrant)
orization_server.register_grant(ResourceOwnerPasswordGrant)
orization_server.register_grant(ClientCredentialsGrant)
orization_server.register_grant(RefreshTokenGrant)
orization_server.register_grant(OpenIDCodeGrant)
orization_server.register_grant(OpenIDImplicitGrant)
orization_server.register_grant(OpenIDHybridGrant)
orization_server.register_endpoint(RevocationEndpoint)
orization_server.register_endpoint(IntrospectionEndpoint)
Useful Links
  1. Take a look at Authlib Homepage
  2. Get more information with Authlib Documentation
  3. Have a taste with Authlib Playground
  4. Stay tuned with Authlib Newsletter
  5. Get latest news via Authlib on Twitter
  6. Ask questions on StackOverflow with Authlib Tag
Spec Implementations

Lovely features that Authlib has built-in:

? RFC5849: The OAuth 1.0 Protocol

  • [x] OAuth1Session for Requests
  • [x] OAuth 1.0 Client for Flask
  • [x] OAuth 1.0 Client for Django
  • [x] OAuth 1.0 Server for Flask
  • [ ] OAuth 1.0 Server for Django

? RFC6749: The OAuth 2.0 Authorization Framework

  • [x] OAuth2Session for Requests
  • [x] OAuth 2.0 Client for Flask
  • [x] OAuth 2.0 Client for Django
  • [x] OAuth 2.0 Server for Flask
  • [ ] OAuth 2.0 Server for Django

? RFC6750: The OAuth 2.0 Authorization Framework: Bearer Token Usage

  • [x] Bearer Token for OAuth2Session
  • [x] Bearer Token for Flask OAuth 2.0 Server
  • [ ] Bearer Token for Django OAuth 2.0 Server

? RFC7009: OAuth 2.0 Token Revocation

  • [x] Token Revocation for Flask OAuth 2.0 Server
  • [ ] Token Revocation for Django OAuth 2.0 Server

? RFC7515: JSON Web Signature (JWS)

  • [x] “HS256” algorithm via RFC7518
  • [x] “HS384” algorithm via RFC7518
  • [x] “HS512” algorithm via RFC7518
  • [x] “RS256” algorithm via RFC7518
  • [x] “RS384” algorithm via RFC7518
  • [x] “RS512” algorithm via RFC7518
  • [x] “ES256” algorithm via RFC7518
  • [x] “ES384” algorithm via RFC7518
  • [x] “ES512” algorithm via RFC7518
  • [x] “PS256” algorithm via RFC7518
  • [x] “PS384” algorithm via RFC7518
  • [x] “PS512” algorithm via RFC7518

? RFC7516: JSON Web Encryption (JWE)

JWE implementation is in plan now.

? RFC7517: JSON Web Key (JWK)

  • [x] “oct” algorithm via RFC7518
  • [x] “RSA” algorithm via RFC7518
  • [x] “EC” algorithm via RFC7518

? RFC7518: JSON Web Algorithms (JWA)

  • [x] Algorithms for JWS
  • [ ] Algorithms for JWE
  • [x] Algorithms for JWK

? RFC7519: JSON Web Token (JWT)

JWT shares the same interface with JWS. Besides that, JWT has payload claims validation.

? RFC7521: Assertion Framework for OAuth 2.0 Client Authentication and Authorization Grants

RFC7521 implementation is in plan.

? RFC7522: Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants

RFC7522 implementation is in plan.

? RFC7523: JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants

RFC7523 implementation is in plan.

 ? RFC7591: OAuth 2.0 Dynamic Client Registration Protocol

RFC7591 implementation is in plan. However, Flask SQLAlchemy ClientMixin is designed based on it.

? RFC7592: OAuth 2.0 Dynamic Client Registration Management Protocol

RFC7592 implementation is in plan.

? RFC7636: Proof Key for Code Exchange by OAuth Public Clients

RFC7636 implementation is in plan.

? RFC7662: OAuth 2.0 Token Introspection

  • [x] Token Introspection for Flask OAuth 2.0 Server
  • [ ] Token Introspection for Django OAuth 2.0 Server

? OpenID Connect 1.0

  • [x] OpenID Claims validation
  • [x] OpenID Connect for Flask OAuth 2.0 Server
  • [ ] OpenID Connect for Django OAuth 2.0 Server

? OpenID Connect Discovery 1.0

Developers can create a JSON file himself.

And more will be added.

Framework Integrations

Framework integrations with current specification implementations:

Security Reporting

If you found security bugs which can not be public, please send me email at me@lepture.com. Attachment with patch is welcome. My PGP Key fingerprint is:

 E895 A70C EBDF 4F2A DFE0 7E55 E3E0 118B 2B4C

You can also find it at https://keybase.io/lepture.

License

Authlib is licensed under LGPLv3. Please see LICENSE for licensing details.

If this license does not fit your company, consider to purchase a commercial license.

Find more information on https://authlib.org/support#commercial-license


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.