-
Notifications
You must be signed in to change notification settings - Fork 21
Description
As discussed in UMA telecon 2011-08-11 (http://kantarainitiative.org/confluence/display/uma/UMA+telecon+2011-08-11):
In hData, you have to discover the EHR service providers. If a specialist needs information held by your primary-care physician, the specialist may not know the endpoint of the PCP's service yet. You need to discover the endpoint, and the patient/authorizing user also has to authorize that discovery somehow. We assume that the specialist can learn the location of the discovery service somehow, to "bootstrap" all this. This could be solved by OpenID Connect's discovery model, we think, as long as that discovery model is protectable/authorizable (through OAuth itself or through UMA?).
[In the past we've talked] about "requester-initiated" vs. "discovery-service-initiated" flows. But the use cases actually break down further:
- Requester-to-host for one resource set/scope (has been provisioned the resource location somehow, presumably knows the API for accessing it, doesn't know what's required to get access of all the types of permissions it seeks) – we have, so far, solved only for this flow.
- Requester-to-host for one/multiple resource sets with multiple scopes (has been provisioned the resource location somehow, presumably knows the API for accessing it, doesn't know what's required to get access of all the types of permissions it seeks, but wants to efficiently get multiple permissions added to its token at once)
This has been requested by Maciej M. We'd need to drill down farther on the one vs. multiple resource sets question. Implementation choices will change depending on how frequently each pattern is needed.
It's easier to solve for a single resource set with multiple scopes vs. multiple resource sets when the requester approaches the host first, since it would presumably approach with a concrete request against a particular resource.
But the host is authoritative for the protected resource sets there, so it could serve as a kind of distributed resource-set discovery service.
Or, since the AM has been told all this information by the host, the host could just refer the requester to the AM to find out possible resource sets.
But the requester is, so far, completely untrusted, so it should only learn/discover what's appropriate for it at this point. So maybe sending it to the AM for initial authorization to discover things is needed. This is what we think OpenID Connect wants to do.
- Requester-to-AM (with discovery functionality) first - We keep going in the direction of seeing the AM as needing discovery functionality!
Simple Web Discovery seems to depend on OAuth protection, but our original idea (reflected in the etherpad) was that you'd UMA-protect the discovery service, as a "host of discovery data". Would this actually simplify the OpenID Connect view of discovery services? Currently they seem to be treated specially.
The Project hData folks have experimented with both magnetic stripe cards and QR codes for allowing a patient to provision their discovery service's URL to a medical provider to bootstrap the process.