Skip to content

Consent

Consent answers a narrow question: is this application allowed to act on your behalf, with these permissions?

It is not about whether Sarah may read attendance records — that is her permissions, and no amount of agreeing changes it. It is about whether the library app may do so as her.

When someone is asked

IDEN asks the first time an application requests permissions the person has not already agreed to give it, and records the answer so they are not asked again.

Applications marked skipConsent never ask. That flag is for first-party applications — your own dashboard, your own kiosk. Asking your own staff to consent to your own dashboard is noise that teaches people to click through prompts without reading them, which is the exact habit consent screens depend on not existing.

Everything else should ask.

What gets recorded

The permissions actually granted, not the ones requested.

This distinction is not cosmetic. Suppose the library app asks for library:loans:read and library:admin, and Sarah holds only the first. She is shown, and agrees to, the first. If IDEN recorded the raw request, library:admin would be marked as consented — and the day someone gives Sarah that permission, the library app would receive it without anyone ever being asked.

Consent covers what someone was shown. Nothing else.

Withdrawing it

GET /entity/connections lists the applications a person has granted access to, and DELETE /entity/connections/{clientId} takes it back — deleting the agreement and revoking every refresh token that application holds for them.

Access tokens already issued run to their expiry, as always.

Withdrawing is not a block list. The application may ask again — and will have to, since the record is gone.

First-party applications do not appear here

They never asked, so there is no agreement to withdraw. To cut one off, an administrator changes what it may request.