Metadata-Version: 2.1
Name: aserto-idp
Version: 0.3.1
Summary: Common identity providers for use with Aserto client libraries
Home-page: https://github.com/aserto-dev/aserto-python/tree/HEAD/packages/aserto-idp
License: Apache-2.0
Author: Aserto, Inc.
Author-email: pypi@aserto.com
Maintainer: authereal
Maintainer-email: authereal@aserto.com
Requires-Python: >=3.8,<4.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Dist: aiohttp (>=3.8.0,<4.0.0)
Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0)
Project-URL: Documentation, https://github.com/aserto-dev/aserto-python/tree/HEAD/packages/aserto-idp
Project-URL: Repository, https://github.com/aserto-dev/aserto-python/tree/HEAD/packages/aserto-idp
Description-Content-Type: text/markdown

# Aserto Identity Providers
Common identity providers for use with Aserto client libraries

## Installation
### Using Pip
```sh
pip install aserto-idp
```
### Using Poetry
```sh
poetry add aserto-idp
```
## Current Identity Providers
### OpenID Connect
```py
from aserto_idp.oidc import identity_provider
```
## Usage
### With [`aserto-authorizer-grpc`](https://github.com/aserto-dev/aserto-python/tree/HEAD/packages/aserto-authorizer-grpc)
```py
from aserto.client import IdentityContext, IdentityType
from aserto_idp.oidc import AccessTokenError, identity_provider

oidc_provider = identity_provider(issuer=OIDC_ISSUER, client_id=OIDC_CLIENT_ID)

try:
    subject = await oidc_provider.subject_from_jwt_auth_header(request.headers["Authorization"])

    identity_context = IdentityContext(
        type=IdentityType.IDENTITY_TYPE_SUB,
        identity=subject,
    )
except AccessTokenError:
    identity_context = IdentityContext(type=IdentityType.IDENTITY_TYPE_NONE)

```
### With [`aserto`](https://github.com/aserto-dev/aserto-python/tree/HEAD/packages/aserto)
```py
from aserto import Identity
from aserto_idp.oidc import AccessTokenError, IdentityProvider

oidc_provider = identity_provider(issuer=OIDC_ISSUER, client_id=OIDC_CLIENT_ID)

try:
    subject = await oidc_provider.subject_from_jwt_auth_header(request.headers["Authorization"])

    identity = Identity(type="SUBJECT", subject=subject)
except AccessTokenError:
    identity = Identity(type="NONE")
```

