[Openid-specs-risc] Call notes

Atul Tulshibagwale atul at sgnl.ai
Wed Jun 28 00:08:00 UTC 2023


Hi all,
Here are the call notes for today's call. They are also stored here
<https://hackmd.io/@oidf-wg-sse/wg-meeting-20230627>.

Atul

-- 

<https://sgnl.ai>

Atul Tulshibagwale

CTO

<https://linkedin.com/in/tulshi> <https://twitter.com/zirotrust>
<atul at sgnl.ai>

WG Meeting: 2022-06-27
<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#WG-Meeting-2022->WG Meeting:
2022- <https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Agenda>Agenda

   - Pull requests
   - Standardized scopes
   - Subject Identifiers

<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Attendees>Attendees

   - Atul Tulshibagwale (SGNL)
   - Shayne Miel (Cisco)
   - Eric Karlinsky (Okta)
   - Topher Marie (Strata)
   - Steve Venema (ForgeRock)
   - Apoorva Deshpande (Okta)
   - Phil Hunt (Independent ID)

<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Guests>Guests

   - Muneera (Apple)

<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Notes>Notes
<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Pull-Requests>Pull Requests

   - Most pull requests are merged. A few waiting on a pending review
   - Building HTML. Look at: <put url here></put>

<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Standardized-Scopes>Standardized
Scopes

   - [Eric] How does a Receiver know which scopes to request in order to
   setup a stream
   - [Atul] Can extend that to other functionalities, e.g. Poll a Stream
   - [Eric] Can we have an attribute in the well-known endpoint, which is
   an array of scopes that are supported. It could be two separate attributes.
   This could solve it.
   - How does a Receiver know which of the scopes are absolutely needed
   versus not needed.
   - There should be some indication of which scopes can do what
   - [Atul] I had a proposal:

   {
     "issuer":
       "https://tr.example.com",
     "jwks_uri":
       "https://tr.example.com/jwks.json",
     "delivery_methods_supported": [
       { "method": "urn:ietf:rfc:8935" },
       {
         "method": "urn:ietf:rfc:8936",
         "scopes_supported": ["poll_stream", "read"]
       }
     ],
     "configuration_endpoint": {
       "url": "https://tr.example.com/ssf/mgmt/stream",
       "scopes_supported": ["create_stream"]
     }
     "status_endpoint":
       "https://tr.example.com/ssf/mgmt/status",
     "add_subject_endpoint":
       "https://tr.example.com/ssf/mgmt/subject:add",
     "remove_subject_endpoint":
       "https://tr.example.com/ssf/mgmt/subject:remove",
     "verification_endpoint":
       "https://tr.example.com/ssf/mgmt/verification",
     "critical_subject_members": [ "tenant", "user" ]
   }


   - [Eric] For any of this, we need authentication
   - [Eric] We should require the metadata to have scopes if an endpoint
   requires authentication
   - [Phil] I’d expect there to be an OAuth server to issue the token with
   the scopes. And what is the nature of the client? Is it another SSF server?
   Is it a command line tool?
   - [Phil] If you’re building a command line tool, you need to specify
   both endpoints, but the spec defines only one endpoint
   - [Phil] The spec assumes it is always one server talking to another
   token
   - [Atul] Just putting scopes doesn’t define where the AuthZ server is
   - [Shayne] Access token doesn’t contain the stream ID
   - [Steve] Interop will be a pain point if we don’t have standardized
   scopes
   - [Steve, Atul] We could recommend a set of scopes and still allow other
   scopes to be used
   - [Eric] What is the namespace these scopes are in? Are they globally
   unique? How do we avoid conflicts with existing scopes?
   - [Steve] Can we define a SSF namespace?
   - [Shayne] Do they need to be globally unique? The OpenID Connect scopes
   seem very simple like “profile” or “email”
   - [Phil] You don’t need to register with IANA, you can just use a URN
   syntax like urn:openid:ssf:create_stream or something like that
   - Everyone on the call agrees that having a few standard scopes that are
   recommended, but allowing Transmitters to use different scopes will be a
   good addition to the spec

<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Subject-Identifiers>Subject
Identifiers

   - [Atul] Should subjects be at the top level, or should they be inside
   events. Also, should we use “sub_id” as the SecEvents Subject Identifiers
   spec is now standardizing that.
   - [Phil] From a common processing / routing point of view, how can a
   router or processor avoid having to parse individual events. It should just
   be able to parse top-level items such as “aud” or “exp”
   - [Phil] Streams may need to filter by subjects, if it is at the
   top-level, it will be better
   - [Shayne] Can we do both? Always put it at the top-level, but include
   it within the event when the event demands it
   - [Atul] Does putting “subject” as a required field in every “events”
   claim solve?
   - [Phil] This could be problematic if events are encrypted. The subject
   being available at the top-level can help route events even if the contents
   are encrypted
   - [Phil] The point is to use a registered claim.
   - [Apporva] If routing is the concern, wouldn’t it suffice to put the
   stream id in the JWT?
   - [Shayne] The stream ID is specific to the Tx - Rx communication, so
   shouldn’t be in the JWT
   - [Phil] My use case: Each SCIM server in a cluster is using a common
   router to push events. You may have multiple hops involved before the SCIM
   Receiver receives the event. You will need to re-sign the event at each hop
   if the stream ID is in the JWT.
   - [Atul] Since the stream ID information is at the URL level, even
   before getting to the JWT, so it’s not a concern for routing
   - [Phil] A single trigger may cause a SCIM and a RISC event (e.g.
   password changed), and if the formats are different, the routing logic for
   each type of event will need different processing
   - [Shayne] Existing events that have encrypted payloads don’t use SSF
   right now, extracting the sub_id to the top-level may enable those
   events to use SSF
   - [Steve] Struggling with a single subject. How would you decide which
   is the more important subject in a hypothetical “transfer” event.
   - [Phil] We need the concept of a primary subject, otherwise how would
   you do “add subject” and “remove subject”
   - [Steve] We have “complex” in SSF, but the SubIds draft talks about
   “aliases”, can we reconcile those?
   - [Phil] I only realized this because we cannot deploy SET PUSH and POLL
   on a point-to-point basis. We have to have recovery points, and routing
   becomes important.
   - [Steve] We have the PUSH and POLL RFCs, does it make sense to have a
   different RFC for these complex store and forward cases?
   - [Phil] SSF defines registration (which is different for push vs poll)
   - [Apoorva] Circling back to the encryption requirement. If we encrypt
   the event, and have a sub_id that is outside, won’t we be leaking PII? We
   would need to encrypt the subject in order to get this. (+1 from Shayne and
   Phil)
   - [Atul] We may want to keep the spec the same to avoid conflicting with
   existing implementations
   - [Phil] If SCIM and CAEP/RISC events differ a lot, then the processing
   infrastructure gets complex. Non-standard placement of subject will kill
   interop
   - [Steve] If you add a top-level claim then doesn’t the spec say you can
   ignore that claim.
   - [Atul] Should we discuss the top-level sub_id with replication in
   events?

<https://hackmd.io/i9spoIOLRkGuco8JThJbSw?view#Action-Items>Action Items

   - Atul to create an issue to describe the scopes requirement
   - Shayne to double check if he has proposed the top-level sub_id in the
   GitHub issue.
   - Phil to investigate whether unknown claims are required to be
   understood
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-risc/attachments/20230627/93088f42/attachment-0001.html>


More information about the Openid-specs-risc mailing list