sso/website/config.py

58 lines
1.3 KiB
Python

import os
from pathlib import Path
from environs import Env
from logging import getLogger
logger = getLogger(__file__)
def read_private_key_file(path):
with open(path) as f:
return f.read()
env = Env()
env.read_env("auth.cfg")
if 'TESTING' in os.environ:
test_path = Path(__file__).parents[1] / 'auth.cfg.test'
logger.warning("loading %s", test_path)
env.read_env(test_path, recurse=False, override=True)
STRIP_RE = env.str("STRIP_RE")
LDAP_URL = env.str("LDAP_URL")
DN_STRING = env.str("DN_STRING")
PEOPLE_BASEDN = env.str("PEOPLE_BASEDN")
UID_LDAP_FILTER = env.str("UID_LDAP_FILTER")
ISSUER_URL = env.str("ISSUER_URL", "https://arkhack.org")
LDAP_BIND_DN = env.str("LDAP_BIND_DN")
LDAP_BIND_PASSWORD = env.str("LDAP_BIND_PASSWORD")
SQLALCHEMY_DATABASE_URI = env.str("SQLALCHEMY_DATABASE_URI")
SQLALCHEMY_TRACK_MODIFICATIONS = env.bool("SQLALCHEMY_TRACK_MODIFICATIONS")
SECRET_KEY = env.str("SECRET_KEY")
JWT_CONFIG = {
'key': read_private_key_file('private.pem'),
'alg': 'RS512',
'iss': ISSUER_URL,
'exp': 3600
}
SCOPES_SUPPORTED = [
"profile:read",
"profile:write",
"password:write",
"users:read",
"openid",
]
RESPONSE_TYPES_SUPPORTED = [
"code",
"code id_token",
"id_token",
"token id_token",
]