Client Authorization Policy
A dedicated Authelia authorization policy is assigned to the protected OIDC client.
Control which users are permitted to authorize access to the registered OIDC client.
Modern identity platforms use OpenID Connect (OIDC) to allow applications to authenticate users and obtain authorized access to protected resources. Authelia can operate as an OpenID Connect Provider, allowing registered relying-party clients to use Authelia for authentication and authorization. Authelia’s OIDC implementation provides client-specific authorization policies that determine whether an authorization request is permitted.
An OIDC authorization-abuse scenario occurs when an unauthorized or improperly configured client attempts to use the identity provider’s authorization endpoint to obtain authorization that it should not receive.
The abuse may involve a registered client requesting authorization for an unintended user, requesting an unauthorized authentication level, using an unapproved redirect URI, requesting unsupported response or grant types, attempting to bypass the expected consent process, or repeatedly generating authorization requests outside the expected application workflow.
In this use case, a controlled Authelia OIDC Provider is deployed on Ubuntu Linux inside an isolated VirtualBox laboratory. A synthetic OIDC client application is registered with Authelia and configured with explicitly permitted authorization parameters.
A Kali Linux security-testing system is used to generate controlled authorization requests against the laboratory OIDC authorization endpoint. The testing is restricted to the registered laboratory client and synthetic accounts.
Authelia’s OIDC client authorization policies are configured to determine whether the requesting user is permitted to authorize access to the specific client. These policies are specifically intended for OIDC Authorization Requests and are distinct from general Access Control Rules. A matching deny policy rejects the authorization request and returns an OIDC access_denied error.
Additional client restrictions are configured for redirect URIs, scopes, grant types, response types, PKCE, consent mode, and other OIDC parameters. Authelia recommends using the authorization-code response type and supports PKCE and Pushed Authorization Requests as additional OIDC security controls.
Authorization events are monitored through Authelia logs and telemetry. Authelia exposes OIDC endpoint metrics including authorization, consent, token, revocation, introspection, and configuration endpoints. JSON logging can also be enabled to provide structured security telemetry for centralized monitoring.
The controlled attack is repeated after the authorization policies are implemented to verify that unauthorized authorization requests are rejected, legitimate OIDC authorization continues to function, security events are recorded, and the complete authorization-abuse timeline can be investigated.
Complete Identity and Access Management Workflow: Authelia OIDC Provider → Registered OIDC Client → Authorization Request → Client / User Validation → Authorization Policy Evaluation → Unauthorized Request Detection → Authorization Denial → access_denied Response → Authorization Event Logging → Security Monitoring → Investigation → Policy Remediation → Post-Remediation Validation
Authelia provides the controlled identity-management and OIDC Provider environment. Authelia’s OIDC Provider allows registered clients to request authorization from the Authorization Endpoint. Client-specific authorization policies can determine whether users are permitted to authorize access to a particular client. Authelia also provides client-level restrictions for parameters including redirect URIs, scopes, grant types, response types, authorization policies, PKCE, consent mode, and Pushed Authorization Requests.
An OIDC client can become an authorization-abuse risk when authorization requests are accepted without sufficiently restricting which users, clients, redirect URIs, scopes, or authentication policies are permitted. An attacker may attempt to generate an authorization request using the identity of a legitimate client but with authorization parameters or user context that are not permitted by the organization’s intended policy.
The security problem is therefore:
The proposed security architecture applies client-specific authorization policies, strict OIDC client configuration, redirect-URI restrictions, response-type restrictions, PKCE, consent controls, and authorization-event monitoring to prevent unauthorized authorization requests from resulting in approved access.
Unauthorized OIDC authorization abuse occurs when a client or maliciously constructed authorization request attempts to obtain authorization that does not satisfy the identity provider’s configured client or user authorization requirements. The attack is performed against the laboratory Authelia OIDC Authorization Endpoint. The objective is to verify that Authelia does not simply process every syntactically valid authorization request. Instead, the authorization request must satisfy the registered client’s authorization policy and configured OIDC restrictions. A matching deny rule in the authorization policy results in a rejected consent and an OIDC access_denied response.
OIDC authorization should be treated as a policy-controlled identity operation rather than simply a successful authentication event.
Authelia provides dedicated OIDC authorization policies that are applied to authorization requests for individual clients. These policies can use conditions such as user or group identity and network information to determine the effective authorization policy. The available effective policies include one_factor, two_factor, and deny. This is distinct from Authelia’s general Access Control Rules. Its documentation and architecture decision record distinguish OIDC Authorization Request policies from ordinary access-control rules because they operate at different stages and have different purposes. The client itself is also restricted through its OIDC configuration. Authelia supports restrictions involving redirect URIs, scopes, grant types, response types, PKCE, consent mode, authorization policy, and Pushed Authorization Requests. Authorization-event monitoring provides visibility into the authorization workflow. Authelia provides structured logging and OIDC telemetry, including authorization and consent endpoint metrics, which can be correlated with the controlled security test.
The secure processing flow is:
A dedicated Authelia authorization policy is assigned to the protected OIDC client.
Control which users are permitted to authorize access to the registered OIDC client.
Authorization-policy rules are configured using controlled laboratory users and groups.
Prevent unauthorized users or groups from authorizing access to the protected client.
A deny policy is configured for the controlled unauthorized condition.
Reject an authorization request that violates the defined client authorization policy.
The OIDC client is configured with explicitly approved redirect URIs.
Prevent authorization responses from being redirected to an unregistered laboratory destination.
The OIDC client is restricted to the intended response type, with authorization code used for the laboratory implementation.
Prevent unauthorized use of unsupported or less-secure OIDC response types.
Only required OAuth/OIDC grant types are enabled for the laboratory client.
Prevent the client from using unnecessary token-acquisition mechanisms.
Only required OIDC scopes are assigned to the laboratory client.
Prevent authorization requests from obtaining unnecessary identity or resource permissions.
PKCE is enabled for the laboratory authorization-code flow.
Reduce authorization-code interception and misuse risk.
The laboratory client uses explicit consent where appropriate.
Require an authorization decision before access is granted to the requesting client.
Pushed Authorization Requests are enabled where the controlled client supports them.
Move authorization-request parameters to a back-channel and reduce the ability to manipulate front-channel authorization parameters.
Authorization requests, consent events, and relevant OIDC endpoint activity are monitored through Authelia logs and telemetry.
Detect and investigate abnormal authorization behavior.
Authorization events are correlated with client identity, user identity, request time, response status, and policy decisions.
Reconstruct the complete authorization-abuse sequence.
Relevant Authelia security telemetry is forwarded to centralized monitoring and analysis infrastructure.
Provide searchable evidence for unauthorized OIDC authorization attempts.
Authelia provides the controlled identity-management environment and acts as the laboratory OpenID Connect Provider. Its OIDC Provider supports registered clients, authorization policies, client restrictions, authorization requests, consent, tokens, and related OIDC functionality.
The OIDC Provider handles authorization requests from registered relying-party clients.
A synthetic application is registered as an OIDC client with Authelia.
Authelia provides client-specific authorization policies for OIDC Authorization Requests. These policies can apply different authorization outcomes depending on configured rules.
Authelia provides client-level controls for redirect URIs, scopes, grant types, response types, PKCE, consent mode, and authorization policies.
PKCE is used with the laboratory authorization-code flow.
Pushed Authorization Requests (PAR) are used where supported by the laboratory OIDC client.
Wazuh monitors the Ubuntu Authelia environment and collects relevant identity and authorization events.
OpenSearch provides centralized investigation and correlation of OIDC authorization events.
Kali Linux provides the controlled security-testing environment.
Ubuntu provides the controlled environment hosting Authelia and supporting monitoring components.
VirtualBox provides the isolated identity-security laboratory.