Client impersonation
Authorization servers must never process requests without user interaction unless the
client’s identity is assured, such as through secure redirect URIs. While OIDC allows silent
authentication with `prompt=none` if prior consent exists, some scenarios may
require always prompting the user, which can be achieved by adding a special purpose item to force
the consent page to appear.
Section https://datatracker.ietf.org/doc/html/rfc8252#section-8.6 states that The authorization server SHOULD NOT process authorization requests
automatically without user consent or interaction, except when the identity of the client can be
assured.
. It recommends that Measures such as claimed "https" scheme redirects MAY be
accepted by authorization servers as identity proof.
The user is able to configure the
registered redirect URIs in the application that comply with that solution.
However, whenever a user session exists and a new authorization request is triggered, the request
might be processed without any user interaction. It can occur especially when a consent prompt is
not required, or all the consent item were approved. This condition is not wrong because OIDC has
the concept of prompt=none as defined by https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest. The Authorization Server MUST NOT display any authentication or consent user
interface pages. An error is returned if an End-User is not already authenticated or the Client does
not have pre-configured consent for the requested Claims or does not fulfill other conditions for
processing the request. The error code will typically be login_required, interaction_required, or
another code defined in Section 3.1.2.6. This can be used as a method to check for existing
authentication and/or consent
.
While this solution is acceptable for most applications, cases might exist where the preferred behavior is to always prompt.
The proposed solution is to inject a do-not-show purpose item to the request and
force the consent page to be prompted. This solution is a three-part procedure, creating a purpose,
creating a privacy policy and editing existing applications.
Client impersonation solution
In the following procedure, the use of prompt as the purpose name, purpose ID, and the selected attribute is just an example. These fields can be any value.
Procedure
-
Create a purpose.
- Create a privacy policy.
- Edit your existing OIDC or OIDC for Open Banking application.