https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-26
MinutesRoll call
Quorum was NOT reached.
Approve minutes
- Approve minutes of UMA telecon 2021-06-10
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-10>
, UMA telecon 2021-06-17
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-17>
, UMA telecon 2021-06-24
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-24>
, UMA telecon 2021-07-01
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-01>
, UMA telecon 2021-07-08
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-08>
, UMA telecon 2021-07-15
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-15>
, UMA telecon 2021-07-22
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-22>
, UMA telecon 2021-07-29
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-29>
, UMA telecon 2021-08-05
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-05>
, UMA telecon 2021-08-12
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-12>
, UMA telecon 2021-08-19
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-19>
Deferred
Minimal Interop Profile
Let's get to some test cases/requirements?
PAT is fairly impl specific, could be given to the Mock RS test suite
- auth code flow
- can become first point of non-interop
Goal: make sure that AS's are interoperable , eg one AS can be 'swappable'
with other ASs. Understanding of 'extras'/vendor specific values that
degrade that interop. As an RS the more ASs I can support define the 'wide'
ecosystem I can support
Scope of test
- 1 AS under test
- 1 Mock RS test suite
- 2+ ROs
- clear success cases (including error conditions)
- response testing for unexpected values returned → WARN
- Minimum Viable ONLY
Input to Mock RS Test Suites
- name of 'rreguri' endpoint at the AS
- multiple PATs to represent the RO context
- at least 2
- value for _id, ie what key will the AS return
- resource descriptions keys supports
- Only required content is resource_scopes
- Optional to push other keys (type, desc, name, icon_uri)
- create support for user_access_policy_uri
- use of introspection
- optional support for exp, iat, nbf (maybe too much since this is
OAuth introspection scope)
1. resource registration
1. Error cases
1. PAT less requests
2. get/put/delete, requests without known id
3. leaking between PATs
2. Create resource description: POST rreguri/
- should always work, returns new id
- performs 5+ times for each PAT
3. Read resource description: GET rreguri/_id
1. ready all created
2. should always work for returned ids
4. Update resource description: PUT rreguri/_id
- should always work, return same id
5. Delete resource description: DELETE rreguri/_id
1. should always work
2. removed from list after deleted
3. future: effect on RPTs/tickets
6. List resource descriptions: GET rreguri/
1. only returns created resources for this PAT
2. likely interjected between other cases, ensure state is
reported accurately
2. permission ticket creation
1. all scopes for single resource
2. multiple resources, all scopes
3. single resource, subset of scopes
4. multiple resource, subset of scopes
5. error cases
1. wrong resource for PAT
2. wrong scopes for resource id
6. future,
1. AS overriding resource/scope sets
3. introspection (optional)
1. keep in mind, introspection is an OAuth defined item, want to
limit to UMA defined functionality to remain minimal viable
2. RPT issued with all resources from permission ticket
3. RPT used with correct PAT
4. active:true, must have the 'permissions' array
5. how to test active:false response?
1. would require manual intervention at the AS?
6. error cases
1. wrong PAT for RPT
7. (future) AS imposed changes based on policy
The test suite could be 'random' ie for scope generation?
Real application, UMA protect userinfo (OIDC scopes)
Relationship Manager - user stories / *Discovery*
1. As a Client, I want to be able to declare types I understand, in
order to successfully use complex APIs
2. As an RS, I want to defer permission ticket creation, in order to a)
not have to understand the Client b) not make authZ decisions (tell me
don’t make me think)
3. As an ASO, I want to pre-register Clients, in order to assess their
appropriateness, capability and complete non-technical activities
4. As a Client, I want to pre-register with ASs, in order to a) test my
UX and technical integrations b) declare my capabilities
UMA in Wikipedia
Have started an open document with the current english content. Everyone is
welcome to suggest and edit and we can review next week
https://docs.google.com/document/d/1TbD4ODQOdQkLwHjlpjTQ4lbEPMbky67O8Clrzxe…
Attendees
As of October 26, 2020, quorum
<http://kantarainitiative.org/confluence/display/uma/Participant+Roster> is
5 of 9. (Michael, Domenico, Peter, Sal, Thomas, Andi, Alec, Eve, Steve)
Voting:
1. Eve
2. Alec
3. Steve
Non-voting participants:
1. Scott
2. Anik
https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-19
MinutesRoll call
Quorum was NOT reached.
Approve minutes
- Approve minutes of UMA telecon 2021-06-10
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-10>
, UMA telecon 2021-06-17
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-17>
, UMA telecon 2021-06-24
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-24>
, UMA telecon 2021-07-01
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-01>
, UMA telecon 2021-07-08
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-08>
, UMA telecon 2021-07-15
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-15>
, UMA telecon 2021-07-22
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-22>
, UMA telecon 2021-07-29
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-29>
, UMA telecon 2021-08-05
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-05>
, UMA telecon 2021-08-12
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-12>
Deferred
UMA in Wikipedia
Have started an open document with the current english content. Everyone is
welcome to suggest and edit and we can review next week
https://docs.google.com/document/d/1TbD4ODQOdQkLwHjlpjTQ4lbEPMbky67O8Clrzxe…
Relationship Manager - user stories
1. As a Client, I want to be able to declare types I understand, in
order to successfully use complex APIs
2. As an RS, I want to defer permission ticket creation, in order to a)
not have to understand the Client b) not make authZ decisions (tell me
don’t make me think)
3. As an ASO, I want to pre-register Clients, in order to assess their
appropriateness, capability and complete non-technical activities
4. As a Client, I want to pre-register with ASs, in order to a) test my
UX and technical integrations b) declare my capabilities
Minimal Interop Profile
Goal:
What parts of the spec will be test? Should we separate Grant from Fedz?
What is takes around the UMA AS
1. Mock RS (well known resources/scopes)
2. Mock Client (well known requests)
3. Mock IDP (well known RO/RqP)
Fedz:
- Mock RS test client
- PAT creation
- RS client credentials
- RO authorization → auth code flow
- 1 resource registration
- set of resources, scopes,
- 2 permission ticket creation
- 3 introspection
Grant:
- Mock Client test client
- Client Credentials → static/ well defined
- RPT endpoint
- claims pushing, multiple rounds of pushing?
- error
- claims pushing or gathering
- request submitted
- PCT
- claims gathering endpoint
Policy:
- RqP has the rights via identity
- Other requirements, agree to ad-hoc TOS
- specific acr/scopes in claims token from
FR AS:
https://github.com/ForgeRock/frdp-uma-resource-server/wiki
- claims pushing (IDToken)
- no
- PCT
- not quite
- request_submitted is supported, creates a pending req for RO, not
using ticket/interval though
- redirect_user / interactive claims gathering, gets a claims token
through an auth_code flow
IDENTOS AS:
- interactive claims gathering
- RSasRO, RO has client credentials with AS
- no
- request_submitted
- PCT
- claims pushing
*Discovery*
Per RS-directed
- the RO can tell the RS that some resources are public/discoverable
(their existence not their content...)
- RO is able to share that discovery URL to the RqP,
- doesn't mean the RqP can access all → could UMA protect
discovery/webfinger, and get back the specific "stuff" that RqP can access
- this is instead of sharing many specific URLs
- RO has abstracted URLs for specific resources, this is separate from
discovery?
File names... in medical case the resources don't have 'names', A LOT of
info falls under simple types. Eg sleep records vs infectious disease,
should the RqP be able to discover the existence of both types even if they
can only access the sleep records.
AS-directed (or discovery service-directed)
- An RqP goes to the AS and asks for all the resources granted to the RqP
- the AS has the resource and the policy about which RqPs can access
- can the RqP learn about the resource URLs (across many RSs) it can
access
- Similar to Pension Dashboard case, discover and register all pensions
with a single AS. RqP (user or financial advisor) go to the AS to find the
locations and authZ to access
- Identos use-case,
- the Client understands specific types of resources (eg xrays)
- send the RqP to the to the AS to
- i) know who the RqP is and (eg the Primary Care Physician)
- ii) which resources that RqP have that match the type (all their
patients xrays)
- iii) choose which of those to share with the client (a specific
patients for a specific encounter)
Two discovery endpoints
1. protected discovery → managed by AS
1. (or indapendant discovery service?)
2. OIDC distributed claims (endpoint, token) that the RP can get
claims from there
3. the AS doesn't know the endpoint in UMA today
2. public discovery → managed by RS
1. in FR impl, the RS proxies Client requests to the AS, to reduce
who the client needs to talk to and could provide the more wholesome
discovery
Attendees
As of October 26, 2020, quorum
<http://kantarainitiative.org/confluence/display/uma/Participant+Roster> is
5 of 9. (Michael, Domenico, Peter, Sal, Thomas, Andi, Alec, Eve, Steve)
Voting:
1. Thomas
2. Alec
Non-voting participants:
1. George
2. Scott
Regrets:
1. Steve
https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-08-05
MinutesRoll call
Quorum was NOT reached.
Approve minutes
- Approve minutes of UMA telecon 2021-06-10
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-10>
, UMA telecon 2021-06-17
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-17>
, UMA telecon 2021-06-24
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-24>
, UMA telecon 2021-07-01
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-01>
, UMA telecon 2021-07-08
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-08>
, UMA telecon 2021-07-15
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-15>
, UMA telecon 2021-07-22
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-22>
, UMA telecon 2021-07-29
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-29>
Deferred
UMA in Wikipedia
https://fr.wikipedia.org/wiki/User-Managed_Accesshttps://en.wikipedia.org/wiki/User-Managed_Access
Anyone familiar to wikipedia to update content?
Can/should the group review and create some more accurate content?
- Alec to create a google doc with the current content for the group to
iterate on
Relationship Manager - user stories
2. As Alice, I want a way to grant Bob access to my resources without
knowing the URLs, in order to a) not deal with URLs b) share more complex
resources (ex not a PDF, a health record)
The RS registers a name and description at the AS, which is how Alice can
differentiate resources
In the FR impl, the RS after registering a resource, saves the resource id
(and other metadata), and *then* generates the URL. The URL is created
after registration, which is what Alice is meant to share with Bob. There
was also resource discovery at the RS, that would allow the RqP to query
based on specific other claims, this feature is turned on by the RO for
each resource. Part of the random URL strategy was to improve the privacy
of including information in the URL, instead of sharing
rs.com/georges_photos you can share rs.com/<uuid> without leaking
information.
The URI registration would allow RqP discovery of resources across RSs. If
we consider discovery as a layer ontop on UMA, we can separate the mappings
from the authorization path. The URL can change over time, the RS can
update the URL separate from any discovery needs.
The RS can also define the hierarchy of policy and groups many resources in
a single resource registration, ie taking 1000 or URLs and putting
registering a single resource.
When does an AS become as RS to expose a list of protected/available
resources? Doesn't necessarily need to be the AS, or can be a separate url
discovery service. Registration can be 1-n, not 1-1 eg many resources in
one registration. If there are public/private photos, then a request for a
public photo can include all public photo resource id, a request for a
private resource includes only the single resource id. The registered
resources could be 'public photos' and 'private photos'.
What is the UX of Alice managing her resources and policy? What is the UX
of Bob being granted access to resources? Where does sharing occur, from
the RS or AS?
The idea of a privacy wallet, people keep a record of their identity
relationships themselves. That ANCR record defines the PII controller and
contact info. Creates a privacy rights access point, in addition to the
policy. People can broadcast their services for discovery. This is done so
that on each new session the user can compare the privacy statement against
the previously agreed to one.
How does Bob reach out to Alice's resources in order to determine where to
go? Alice sends a receipt with her policy to Bob, including a URI to the
calendar (or to her Privacy Wallet?). If the URI is to his calendar, then
Bob can start an UMA flow. Bob would end up with receipts for Alice's AS
and her calendar service
Privacy aspects are internal to the AS today in UMA, or are implementation
specific. Alice shares a purpose, which must be mapped to authorization for
Bob. UMA isn't prescriptive about scopes, there can be a scope such as
'do_not_share' that tell Bob's client to not retransmit to 3rd parties.
However these scopes are legal by nature and not technically enforced. The
RqP/Client can need to push claims declaring their agreements (eg a
receipt) that include the PII controller who is taking custodianship of the
information granted to Bob.
Just as discovery is capability on top on UMA, the privacy framework can be
a profile on top of UMA. It provides implementation specifics where
end-user legal privacy controls are required. Could this use UMA resource
scopes sufficiently cover this? Or the claims pushing of a new claim_type
eg a ANCR receipt/rights claim?
https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html#rfc.…
1. As Bob(RqP), I want to be able to discover resources available/shared
with me, in order to not need URLs sent by Alice
2. As a Client, I want to be able to declare types I understand, in
order to successfully use complex APIs
3. As an RS, I want to defer permission ticket creation, in order to a)
not have to understand the Client b) not make authZ decisions (tell me
don’t make me think)
4. As an ASO, I want to pre-register Clients, in order to assess their
appropriateness, capability and complete non-technical activities
5. As a Client, I want to pre-register with ASs, in order to a) test my
UX and technical integrations b) declare my capabilities
AOB
Attendees
As of October 26, 2020, quorum
<http://kantarainitiative.org/confluence/display/uma/Participant+Roster> is
5 of 9. (Michael, Domenico, Peter, Sal, Thomas, Andi, Alec, Eve, Steve)
Voting:
1. Domenico
2. Alec
Non-voting participants:
1. George
2. Ian
3. Scott
Regrets:
1. Steve
I just noticed that there are five different language versions <https://fr.wikipedia.org/wiki/User-Managed_Access> of the User-Managed Access entry in Wikipedia. Neat. The page(s) could use some updates to reflect UMA 2.0, deployments of same, scenarios, new work, and so on. Anyone up for contributing a few edits?
Eve Maler | cell and Signal +1 425.345.6756
https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-29
MinutesRoll call
Quorum was NOT reached.
Approve minutes
- Approve minutes of UMA telecon 2021-06-10
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-10>
, UMA telecon 2021-06-17
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-17>
, UMA telecon 2021-06-24
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-06-24>
, UMA telecon 2021-07-01
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-01>
, UMA telecon 2021-07-08
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-08>
, UMA telecon 2021-07-15
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-15>
, UMA telecon 2021-07-22
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-22>
Deferred
Relationship Manager - user stories
1. As an ASO, I want to allow Alice to bring a resource management UX,
in order to not provide this myself
1. Today, the AS must provide some interface for Alice to see her
registered resources (uri) and the policy for each resource→RqP. Core UMA
has some implication that Alice can 'bring her own AS'
2. As discussed last time, Alice may need to work with many AS's, and
sometimes that is out of her control
3. A challenge may be that Alice needs to authenticate uniquely to
each AS? Alice will authenticate at an IDP, and there can be federation
4. IN RM draft
1. Instead of Alice managing resources in several AS UXs, she can
use her single RM to manage her resources. In some cases, the
existence of
multiple ASs can be hidden from her
2. The concept of the PAT is changed, such that a PAT represents
the entire RS (all ROs) and the resource negotiate between
the RS and AS
are the types, not specific resources
1. There's not necessarily a RO specific PAT, as the RS's API
may not support user context in the path, even if it does
there is a
challenge around getting RO specific uris to the RqP
2. ex an RS api `/me/profile` the RS get's a ticket that
represents that type of resource, and during claims
gathering the AS is
able to determine the specific profile to return to the
client. The RS
learns the specific profile either by inspecting the RPT or through
introspection
3. Some initial goals of RM were to make a 'zero knowledge' AS. An
AS that doesn't need to see end-user identity claims.
Identity federation
happens to the RM, the RM then registers RqP policy against
RS→RM resource
ids. The AS is only learning resource ids, and conveying to
the RS during
specific transaction. The RS is responsible to resolve the
resource id to
the right RO information
4. As there are more RS specified AS's, there are also new needs
for federation or mutual trust between those ASs to get back to widest
possible ecosystems. This is OOS of RM but could be achieved
through other
governance registries or discovery services
2. As Alice, I want a way to grant Bob access to my resources without
knowing the URLs, in order to a) not deal with URLs b) share more complex
resources (ex not a PDF, a health record)
1. Today, all of Alices resources are registered with the AS
independently, however this doesn't include any specific URI.
Therefore she
needs to get URIs for the RS, and somehow know which registered
resource id
corresponds to what URI(s). How does Alice know what at the AS means what
URI to the RS?
2. In some reference impls, the RS creates a new URI that is directly
linked to the registered resource.
3. rsurl.com/alice/A.pdf, rsurl.com/alice/B.pdf, rsurl.com/alice/C.pdf →
registered at the AS → (type:pdf, scope) x3 → (randomid1, randomid2,
randomid3).
1. the RS keeps track of relationship from public uri and internal
AS registered id. The RS writes RqP policy to the AS against
the randomidN.
2. This RS performs on RM behaviour instead of making Alice
interact with the AS at all
4. there are also challenges exposing URIs AT ALL to Alice and Bob,
if the URI includes any PI all parties can see it, even if they're not
authorized. Best Practice: NO URIs are human readable
5. Today this is somewhat addressed as URIs don't leave 'digital
space' we share them through copy/paste, not through analogue means
6. There are more challenge with URI sharing when the number of
resource is very large or are dynamically create (such as FHIR
observations created by a device)
7. Another FHIR complication is querying by time frame...
1. some ways to address through 'shortcut' scopes like
'last_three_month', 'not_before=<timestamp>'
2. This is better addressed by Rich Authorization Request. There
are still challenges with UMA async, Alice can't consider all possible
authorization requests ahead of time. Alice is smart but she
can't see the
future.
3. As Bob(RqP), I want to be able to discover resources
available/shared with me, in order to not need URLs sent by Alice
4. As a Client, I want to be able to declare types I understand, in
order to successfully use complex APIs
5. As an RS, I want to defer permission ticket creation, in order to a)
not have to understand the Client b) not make authZ decisions (tell me
don’t make me think)
6. As an ASO, I want to pre-register Clients, in order to assess their
appropriateness, capability and complete non-technical activities
7. As a Client, I want to pre-register with ASs, in order to a) test my
UX and technical integrations b) declare my capabilities
AOB
Attendees
As of October 26, 2020, quorum
<http://kantarainitiative.org/confluence/display/uma/Participant+Roster> is
5 of 9. (Michael, Domenico, Peter, Sal, Thomas, Andi, Alec, Eve, Steve)
Voting:
1. Alec
2. Eve
Non-voting participants:
1. Scott
2. Zhen
Regrets:
1. Steve
<https://kantarainitiative.org/confluence/display/uma/UMA+telecon+2021-07-29>