Skip to main content

Security Interface for you project.

Project description

https://img.shields.io/travis/com/bruziev/security_interface.svg?style=flat-square https://img.shields.io/codecov/c/github/bruziev/security_interface.svg?style=flat-square

Security Interface

This library provides easy API for authentication and authorization.

Installation

Install with the following command:

$ pip install security_interface

Usage

First of all you need implement IdentityPolicyInterface and AuthorizationPolicyInterface interfaces. For example we can implement JWT Security:

import jwt
from security_interface import IdentityPolicyInterface, AuthorizationPolicyInterface

class JwtIdentityPolicy(IdentityPolicyInterface):
    def __init__(self, secret, algorithm="HS256"):
        self.algorithm = algorithm
        self.secret = secret

    async def identify(self, identity):
        if jwt is None:
            raise TypeError("Please install PyJWT")
        try:
            return jwt.decode(
                identity,
                self.secret,
                algorithms=[self.algorithm],
                options={"verify_exp": True, "verify_iat": True},
            )
        except Exception as e:
            return None

class JwtAuthPolicy(AuthorizationPolicyInterface):
    async def can(self, identity, permission):
        return permission in identity["scope"]

Create security instance with our implementation

from security_interface.api import Security
jwt_identity = JwtIdentityPolicy("SECRET")
jwt_auth_policy = JwtAuthPolicy()
security = Security(jwt_identity, jwt_auth_policy)
# Checking claim
security.identify(CLAIM)
# Checking permission
security.can(CLAIM, "read")
security.can(CLAIM, "write")

For full implementation see DEMO

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

security_interface-0.1.0.tar.gz (3.4 kB view details)

Uploaded Source

Built Distribution

security_interface-0.1.0-py2.py3-none-any.whl (5.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file security_interface-0.1.0.tar.gz.

File metadata

  • Download URL: security_interface-0.1.0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for security_interface-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b3248553ac7f2c34ba1c135a17582ddbdc853c3a71e43a345a8ee52b18aca2b9
MD5 7e8006504c56d9f4cf906d71d72d8ce9
BLAKE2b-256 0bd5698447436c98bab0d3a3a401113b6ee0786060d099bac1bd2ad6ec6508c6

See more details on using hashes here.

File details

Details for the file security_interface-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: security_interface-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.6

File hashes

Hashes for security_interface-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0d2f35a82fbea387898e316c504eed4689983f593adfd0b7767283c70e6b75ec
MD5 abdb73d557c3fec7177a3af72aaaa84e
BLAKE2b-256 6eab275e37f2a60422d9785de81c6104e776ddbde4e6d9cb34e4713c45690ddb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page