semvec/pypi-packages huggingface dataset:
aserto-idp 0.3.1
Common identity providers for use with Aserto client libraries
License: Apache-2.0
Requires Python: >=3.8,<4.0

# 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")
```