canada-ca / canada-ca/CATS-STAE

Native OIDC client types question

Open
#32 1 comment 0 reactions 0 assignees View on GitHub
openid question
Dominant language
Shell
Stars
16
Forks
1
PR merge metrics
No merged PRs in 30d

Description

Reading through the OIDC spec the first time, I had the impression that native clients must register dynamically, and each native application must use the code flow and authenticate with private_key_jwt.

```
Full clients, native clients with dynamically registered keys, and direct access clients as defined
above MUST authenticate to the authorization server’s token endpoint using a JWT assertion as
defined by the JWT Profile for OAuth 2.0 Client Authentication and Authorization Grants using
only the private_key_jwt method defined in OpenID Connect Core

Native applications using dynamic registration MUST generate a unique public and private key
pair on the device and register that public key value with the authorization server. Authorization
servers MUST NOT issue a public and private key pair to the client as part of the registration
process.
```

However, in the igov specs https://openid.net/specs/openid-igov-oauth2-1_0-ID1.html#rfc.section.2.1.2 it says that,

```
Native clients MUST either:

use dynamic client registration to obtain a separate client id for each instance, or
act as a public client by using a common client id and use PKCE to protect calls to the token endpoint.
```

Rereading the CATS spec, noting that whenever a native client is mentioned, it's with the caveat that it used dynamic client registration. Is it permissible under CATS that native clients just not register dynamically so they may use PKCE and no client authentication? Why would a native client ever go to the trouble of the dynamic registration route, considering the ease of PKCE? I can only think if they needed encrypted id tokens.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.