Skip to main content

E-infra OIDC Auth backend for OARepo

Project description

E-infra authentication and authorization module for InvenioRDM

This remote backend adds support for Czech e-infra AAI solution - login.e-infra.cz allowing all members of czech academic community can use their home institution credentials to log in.

Installation

Add the module to your repository's pyproject.toml:

dependencies = [
    "oidc-einfra>=1.0.0",
    # ...
]

Configuration

  1. Register a new application with e-infra OIDC Provider at https://spadmin.e-infra.cz/. When registering the application ensure that the Redirect URI points to https://<my_invenio_site>:5000/oauth/authorized/e-infra/

General parameters

OIDC parameters

Perun-specific parameters

  1. Grab the Client ID and Client Secret after registering the application and add them to your ENVIRONMENT variables:
INVENIO_EINFRA_CONSUMER_KEY=*Client ID*
INVENIO_EINFRA_CONSUMER_SECRET=*Client Secret*
  1. Add the remote application to the site's invenio.cfg:
from oidc_einfra import EINFRA_LOGIN_APP

OAUTHCLIENT_REMOTE_APPS = {
    "e-infra": EINFRA_LOGIN_APP
}
  1. Add the e-infra public key to your invenio.cfg or environment variables:
EINFRA_RSA_KEY=b'-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmho5h/lz6USUUazQaVT3\nPHloIk/Ljs2vZl/RAaitkXDx6aqpl1kGpS44eYJOaer4oWc6/QNaMtynvlSlnkuW\nrG765adNKT9sgAWSrPb81xkojsQabrSNv4nIOWUQi0Tjh0WxXQmbV+bMxkVaElhd\nHNFzUfHv+XqI8Hkc82mIGtyeMQn+VAuZbYkVXnjyCwwa9RmPOSH+O4N4epDXKk1V\nK9dUxf/rEYbjMNZGDva30do0mrBkU8W3O1mDVJSSgHn4ejKdGNYMm0JKPAgCWyPW\nJDoL092ctPCFlUMBBZ/OP3omvgnw0GaWZXxqSqaSvxFJkqCHqLMwpxmWTTAgEvAb\nnwIDAQAB\n-----END PUBLIC KEY-----\n'
  1. Add the VO, communities group, api url and filters for eduperson_entitlement_extended:
EINFRA_REPOSITORY_VO = '0081581a-a0da-4ac9-8612-3af6b1c8bfe2'
EINFRA_COMMUNITIES_GROUP = '8becbbb6-cbb5-450e-8f71-20a12418e821'
EINFRA_API_URL = 'https://perun-api.e-infra.cz'

EINFRA_ENTITLEMENT_NAMESPACES = {'geant'}
EINFRA_ENTITLEMENT_GROUP_PARTS = [
    ['cesnet.cz', 'group'],
    ['e-infra.cz', 'group']
]
  1. Start the server and go to the login page https://127.0.0.1:5000/login/

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

oarepo_oidc_einfra-1.0.2.tar.gz (20.8 kB view hashes)

Uploaded Source

Built Distribution

oarepo_oidc_einfra-1.0.2-py3-none-any.whl (24.9 kB view hashes)

Uploaded Python 3

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