inrupt / inrupt/solid-client-authn-js
Expose the current issuer
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 77
- Forks
- 49
- Avg merge
- 18h 20m
- Merged PRs (30d)
- 32
Description
Search terms you've used
issuer
Impacted environment
In which environment would the proposed feature apply ?
- The browser
- Node.js
- Other (please specify): ...
- I'm not sure.
Feature suggestion
[...] "retrieve the current issuer from the session" [and] expose that via the ISessionInfo interface, potentially
In certain cases, it may be useful for an App to know the OIDC issuer which was used to authenticate current user.
E.g. a user with webId https://someuser.solidcommunity.net/profile/card#me may have an issuer https://solidcommunity.net, and we want to know that.
Expected functionality/enhancement
Currently, ISessionInfo doesn't expose issuer, and it could.
The issuer is exposed within the Authorization header of the fetch function as iss property of a JWT token. It's also exposed in localStorage, however i'm told this is going to change.
Actual functionality/enhancement
Expose the current issuer in ISessionInfo (or in other standard way)
Use Cases
-
As of now, some OIDC Identity Providers (typically https://solidcommunity.net and other NSS-based servers) don't include
solid:oidcIssuerin personal profile documents. This is sufficient for authenticating into NSS Pods, but fails when authenticating using e.g. @solid/access-token-verifier.
So, sometimes an app needs to fix such incomplete profile document (if it can), to make it compliant. Hence, it needs to know the issuer. -
Also, perhaps an app wants to show the current issuer in UI... 🤷🏾♀️
ping @jeff-zucker
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the ISessionInfo interface and the fetch function documentation linked in the issue, then trace where session information and the Authorization header are assembled for browser and Node.js. Confirm how the issuer is currently represented and identify the relevant authentication tests or entry points. Done means the current OIDC issuer is exposed through the agreed session API and is covered for both environments.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, authentication
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100