diff --git a/README.md b/README.md index f8618c5..fe8d4e1 100644 --- a/README.md +++ b/README.md @@ -70,12 +70,16 @@ The server can be configured on start up using environment variables or at runti ### Environment variables -Use the following environment variables to create a user on start up: - -| Name | Value | -|-----------------------|-----------------| -| FLASK_OIDC_USER_ID | OIDC user id | -| FLASK_OIDC_USER_EMAIL | OIDC user email | +Use the following environment variables to create a user and register a client on start up: + +| Name | Value | +|--------------------------------|--------------------------| +| FLASK_OIDC_USER_ID | OIDC user id | +| FLASK_OIDC_USER_EMAIL | OIDC user email | +| FLASK_OIDC_CLIENT_ID | OIDC client id | +| FLASK_OIDC_CLIENT_REDIRECT_URI | OIDC client redirect URI | +| FLASK_OIDC_CLIENT_PUBLIC_KEY | OIDC client public key | +| FLASK_OIDC_CLIENT_SCOPE | OIDC client scope | ### Web API diff --git a/oidc_server/app.py b/oidc_server/app.py index e1c5572..b2a01cd 100644 --- a/oidc_server/app.py +++ b/oidc_server/app.py @@ -99,6 +99,16 @@ def create_app(test_config: dict[str, Any] | None = None) -> OidcServerApp: if "OIDC_USER_ID" in app.config: app.add_user(StubUser(id=app.config["OIDC_USER_ID"], email=app.config["OIDC_USER_EMAIL"])) + if "OIDC_CLIENT_ID" in app.config: + app.add_client( + StubClient( + client_id=app.config["OIDC_CLIENT_ID"], + redirect_uri=app.config["OIDC_CLIENT_REDIRECT_URI"], + public_key=app.config["OIDC_CLIENT_PUBLIC_KEY"], + scope=app.config["OIDC_CLIENT_SCOPE"], + ) + ) + key = RSAKey.generate_key(is_private=True) authorization_server = app.create_authorization_server(key) require_oauth = app.create_resource_protector()