You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 13, 2022. It is now read-only.
a Self-Issued OpenID Provider is a self-hosted OIDC Provider that issues self-signed ID tokens. such a self-signed ID token includes a public key in its sub_jwk claim, with which the token is signed. a self-signed ID token is identified as such with a special reserved issuer of "https://self-issued.me".
Proposal: extend the webid-oidc-spec to allow this case by:
recognizing that ID tokens can be self-issued, and bypassing OIDC Issuer Discovery and using the public key in the ID token's sub_jwk claim to validate the signature when the token is self-issued (according to the iss claim);
requiring (for this case) that the webid claim is used to name the WebID, because the sub claim is reserved for the "thumbprint" of the sub_jwk;
reiterating in Authorized OIDC Issuer Discovery that the solid:oidcIssuer predicate applies in this case and must exactly match the iss of the ID token, which is the special reserved URI <https://self-issued.me>; and
validating that the WebID has a http://www.w3.org/ns/auth/cert#key predicate whose type and key parameter statements (exponent and modulus for RSA, currently the only key type supported by Self-Issued OPs) match those of the sub_jwk.
TL;DR: ID tokens can be self-signed. validate self-signatures, confirm WebID lists the same public key, and WebID says its issuer is the self-issued OP.
Use case: a bot or other automatic agent can have a WebID. allowing the use of self-issued ID tokens with WebID-OIDC can simplify these agents and their deployments by not requiring a stub implementation of an OIDC Provider with at least its configuration and jwks endpoints just to verify ID token signatures. all that's required is hosting a single static profile document on an ordinary web server for the agent to have a WebID.