[Openid-specs-ab] OpenID Connect for Identity Proofing (Proposal)
Marcos Sanz
sanz at denic.de
Fri Feb 22 10:59:23 UTC 2019
Hi Torsten,
> > - Page 10: The role of "max_age" is a bit strange: it is defined as
a
> > "field for the sub-element date of the verification sub-claim"
but
> > it's actually a way of introducing a (hidden) query syntax. When I
think
> > of it, it's an extension of the special three member values defined in
> > OIDC core section 5.5.1, that is, parallel to the existing reserved
> > keywords "essential", "value" and "values". Maybe it'd help to
explicitly
> > define it that way. Do you understand what I mean?
>
> I think so. I would argue the whole representation extends the syntax of
the claims parameter payload by introducing nested claims
> + conditions on those nested claims.
>
> I would appreciate if you would come up with a text proposal.
This is what I had in mind:
"
Section 5.5 in OIDC Core defines how to request specific claims using the
"claims" parameter. Section 5.5.1 extends that query syntax and allows for
the member value of the claim being requested to be a JSON object with
additional information/constraints on the claim. For doing so it defines
three members ("essential", "value" and "values") with special query
meanings and allows for other special members to be defined (while stating
that any members that are not understood must be ignored).
This specification introduces a new such member "max_age".
"max_age" OPTIONAL Only applicable to claims that contain dates or
timestamps. Defines the maximum time (in seconds) to be allowed to elapse
since the value of the date/timestamp up to the point in time of the
request. The IDP should make the calculation of elapsed time starting from
the last valid second of the date value. The following is an example of a
request for claims where the verification process of the data is not
allowed to be older than 63113852 seconds.
{
}
"userinfo" :{
"verified_person_data" :{
"verification" :{
"date" :{
"max_age" : "63113852"
}
},
"claims" : null
}
"
Admittedly, this is more generic than what you originally wrote, since it
allows for combinations of "max_age" with e.g.
"date_of_issuance"/"date_of_expiry" (combinations I still thought to be
useful). If this is not what you wanted or you plainly want to ban it, I
could slightly adjust the text.
> > - Page 11 introduces "transaction_id" and I was wondering whether this
is
> > the same as the "id" field introduced in page 4 or not, and then would
ask
> > to either align names or explicitly explain the differences.
>
> That’s a different claim. Id refers to the verification process with the
IDP whereas transaction_id refers to the actual OpenID
> Connect transaction. It’s used to in dispute and audit scenarios to
trace back to the OIDC transaction, the OP is supposed to
> retain an audit log so the authentication and consent steps performed
can be followed.
Ok, understood.
> > - Page 5: Btw, why is "country" optional for identity_document but not
for
> > "eID" (Page 6)?
>
> Conceptually, it would be better to make country mandatory as well. But
there are cases in the wild where the IDP did not capture
> the country (because it was clear from the context back then - sometimes
20-30 yrs ago).
Ok, I see.
> > - And finally we are making heavy use of distributed claims in our
setup
> > and I am having trouble in thinking how the special members
_claim_names
> > and _claim_sources (which also have usage in aggregated claims) would
play
> > along together with this spec. Maybe it's just one further example at
the
> > end that I am missing.
>
> Honestly, I haven’t thought about this because of lake of use cases. If
you can come up with text, I would happily add it.
Fine, I'll think about this.
Best,
Marcos
More information about the Openid-specs-ab
mailing list