Authenticating Attributes / Identity Providers #2632
Unanswered
mrinalwadhwa
asked this question in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Related to #2621
Authentication: the process where one entity gains assurances about the attributes of another entity.
These assurances may be:
self assurances by the entity whose attributes are being authenticated
a. Proof of possession of
private_key
during a secure channel handshake authenticates thepublic_key
attribute of an entity.b. Proof of Rotation/Revocation of public keys should be a self assurance
c. An address at which an entity is available to respond may be a self assurance
assurances from a third-party that is considered a trusted authority on one or more attributes.
We may consider the project manager of project Green the trusted authority on which other identities are members of the green project and what roles they play on the project. So to authenticate the
project=green, role=reader
set of attributes:a. we may talk directly to the project manager and ask them for a list of project members and their roles
b. or we may get a signed credential (like an x509 cert) from some other means that carries a signature by the project manager attesting to a certain identifier possessing a set of other attributes.
c. or we may get a bearer credential (like a bearer token) that is issued by the trusted authority and proof of possession of that credential may prove a set of attributes assured by the trusted authority.
In cases
a
orb
we need to have pre-establishedidentifier=6b2edb..,public_key=6b2edb..,project=green,role=project_manager
In case
c
we need to have pre-establishedidentifier=6b2edb..,token_validation_mechanism={...},project=green,role=project_manager
Now the problem has transitioned from "how to authenticate attributes of project members" into "how to authenticate attributes of project managers" .. we may have multiple levels of this transition but eventually every node will need to be initialized with one or more trust anchors.
Authentication of Attributes in itself is an Authentication and Authorization problem.
In #2621 I proposed that we should have a place to store Authenticated Attributes of Known Identities. Let's say we call this the Identities table.
To extend that design further, I propose that a we should have pluggable Identity Providers.
An Identity Provider:
Some examples of possible identity providers:
An identity provider that
An identity provider that
An identity provider that
An identity provider that
etc.
Let's use the conversation below to explore what it would take to implement such pluggable Identity Providers.
What would their API look like?
Beta Was this translation helpful? Give feedback.
All reactions