[Openid-specs-heart] Fwd: Draft HEART Meeting Notes 2015-10-13

Justin Richer jricher at MIT.EDU
Thu Oct 15 16:24:09 UTC 2015


Forwarding the off-list conversation that somehow got the “-bounces” address CC’d instead of the real list.

 — Justin

> Begin forwarded message:
> 
> From: Dale Moberg <dale.moberg at orionhealth.com>
> Subject: Re: [Openid-specs-heart] Draft HEART Meeting Notes 2015-10-13
> Date: October 15, 2015 at 12:22:53 PM EDT
> To: Justin Richer <jricher at mit.edu>, Openid-specs-heart <openid-specs-heart-bounces at lists.openid.net>
> 
> :-) I thought you might have a favorable disposition toward an introspection service!
> 
> From: Justin Richer <jricher at mit.edu <mailto:jricher at mit.edu>>
> Date: Thursday, October 15, 2015 at 9:21 AM
> To: Dale Moberg <dale.moberg at orionhealth.com <mailto:dale.moberg at orionhealth.com>>
> Cc: Openid-specs-heart <openid-specs-heart-bounces at lists.openid.net <mailto:openid-specs-heart-bounces at lists.openid.net>>
> Subject: Re: [Openid-specs-heart] Draft HEART Meeting Notes 2015-10-13
> 
> We’re not favoring JWT over introspection: in fact we’re mandating both simultaneously because the real world needs a balance between approaches. Coupled with the discovery system (also required), you can also use them together very nicely:
> 
>  1: RS gets a token, parses it as a JWT
>  2: RS reads the issuer, discovers configuration
>  3: RS pulls the public key of AS and checks signature
>  4: RS introspects token at the AS (as just discovered)
> 
> By having both JWT and Introspection lets the RS figure out which model it wants to use, and it can always count on both being available.
> 
> Believe me, I’m actually a rather big fan of the service-based model: https://tools.ietf.org/html/draft-ietf-oauth-introspection <https://tools.ietf.org/html/draft-ietf-oauth-introspection>  ;)
> 
>  — Justin
> 
>> On Oct 15, 2015, at 11:38 AM, Dale Moberg <dale.moberg at orionhealth.com <mailto:dale.moberg at orionhealth.com>> wrote:
>> 
>> Because I just located the drafts (thanks Justin!) I had missed a lot of what this group has as background context. I will soon find time to look at the drafts more carefully. Are there specific openid connect readings that we are profiling or adapting in this group? (I am familiar with the core openid connect spec on the oauth2-protected, identity-information service for the (API) client. 
>> 
>> I am a bit concerned about using JWT instead of an unpredictable opaque token (with expiration) for access. I suspect this embellishment  may be because of the deliberate omission (in core OAuth2) of the communication details between the resource service/server and the authz & token issuing endpoint server. I have always thought that from a security architecture viewpoint that introspection style services would provide good ways to offload most security checking work at the API endpoints to  a scalable layer of introspection servers. Certainly cloud scalability models seem to favor a service approach, rather than an approach using structured token unpacking, with cryptographic operations and checks. 
>> 
>> Perhaps you would be willing to explain to participants (or me) the case for using JWT in the way that is currently favored in our group? I can then provide my R&D group with the underlying thinking.
>> 
>> I will also continue to think about how to bridge trust between multiple API user security domains with a central shared API server, in its own security domain. That may be an issue to be addressed elsewhere, however.
>> 
>> Thanks for your response!
>> 
>> Dale Moberg
>> 
>> 
>> 
>> From: Justin Richer <jricher at mit.edu <mailto:jricher at mit.edu>>
>> Date: Wednesday, October 14, 2015 at 5:24 PM
>> To: Dale Moberg <dale.moberg at orionhealth.com <mailto:dale.moberg at orionhealth.com>>
>> Cc: Sarah Squire <sarah at engageidentity.com <mailto:sarah at engageidentity.com>>, "openid-specs-heart at lists.openid.net <mailto:openid-specs-heart at lists.openid.net>" <openid-specs-heart at lists.openid.net <mailto:openid-specs-heart at lists.openid.net>>
>> Subject: Re: [Openid-specs-heart] Draft HEART Meeting Notes 2015-10-13
>> 
>> The JWT specified by the HEART OAuth spec is the result of the OAuth process, not the input into it. We’re specifying a JWT as the format of the access token in order to allow interoperability between RS and AS from different vendors and domains. We’re also mandating support for token introspection for the same reason.
>> 
>> OpenID Connect further specifies JWT as the format for the ID token, which we’re inheriting directly.
>> 
>> We’re not using JWT assertions (RFC7521/7523) directly to get tokens, but we are using JWT assertions in client authentication, as defined in OpenID Connect Core as “private_key_jwt”.  This is something we’re not inventing, but mandating (and describing rationale for) its use. 
>> 
>> There is no fork or clash with other standards.
>> 
>> We are not inventing any new grant types, but we are specifying that certain kinds of client applications need to use certain grant types.
>> 
>> Hope this helps,
>>  — Justin
>> 
>>> On Oct 14, 2015, at 2:53 PM, Dale Moberg <dale.moberg at orionhealth.com <mailto:dale.moberg at orionhealth.com>> wrote:
>>> 
>>> Hi HEART people,
>>> 
>>> I am coming out of my mainly listen-mode participation to ask some questions. By way of introduction, I have been involved with the design and specification of inter-organizational security solutions in the IETF (EDIINT- AS2 for logistics and supply chains), Rosettanet (choreographed XML exchanges for business processes for high-tech), OASIS/UNCEFACT ebXML(same as rosettanet, but for any organizations), W3C (wsdl, ws-policy, ws-splat for rpc/doc/SOA/whatever), OMG and ISO(Unifi harmonization), UncefactMM/UBL(semantic compositionality models) GS1(EPCIS, IOT) and similar effots. But only recently addressing the healthcare domain with a focus of improving interoperability at both technical (security/protocol/API) and semantic to promote use of clinical data in Machine Learning models of “actionable information” Enough with the buzz words.
>>> 
>>> 
>>> "We are not developing a standard.
>>>  We are developing a profile of a standard.”
>>> "HEART
>>>  is primarily about user-mediated exchange, but we can’t ignore clinical data exchange.”
>>> 
>>> 
>>> However, it does not seem we are profiling a standard (a relatively straightforward matter of subsetting a specific standard to trim out optionality,
>>>  and mandate the functionality organizational groups need, while remainling interoperable and open to multiple implementations), but instead saying how you want to use:
>>> UMA + FHIR + OAuth2 + JWT + ??? —together within
>>> the registration, delegation, data contribution, and related data sharing scenarios. In other words, you want to build a way to apply several
>>>  existing standards and have them work together interoperably (like an IETF applicability statement).
>>> 
>>> 
>>> My first question concerns the IETF OAuth group’s RFC 7521 that “…provides a framework for the use of assertions with OAuth 2.0 in the form of a new client authentication mechanism and a new authorization grant type.”  Is it agreed to include RFC 7521 within our profile? RFC 7523 "JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants” already specifies a way to use JWT; in my opinion, it would clash with IETF work to fork an alternative approach to using JWT. If you plan to do this, I would be interested in your reasons for doing so.
>>> 
>>> The 7521/7523 profiling approach rapidly cuts down on our scope so that we do not have to worry how to specify using a signed JWT token to get an OAuth2 access token (via the newly defined grant type). If one of the four previously defined OAuth 2 (RFC 6749) grant types are to be used, we would have to explain what the JWT is doing in the process. All the other grant types involve client ids, secrets, usernames and password credentials in various combinations. Would they be combined with a JWT? How? Why? This seems to be a lot of effort, and personally I need a little motivation for undertaking trying to work through that amount of complexity.
>>> 
>>> Now you could use those previous kinds of credentials and grant types in contacting a JWT issuing service (call it an “authentication authority”). Is that a step that needs explicit profiling in this group?
>>> 
>>> As far as Eve’s design patterns (organizational, role, individual entity), another way of slicing the designs up is by introducing an idea of “organizational or aggregated organizational security domain”
>>> I work for a company that creates “HIEs— health information exchanges” Some of these HIEs span lab organizations, pharmacies, urgent cares, clinics, optometrists, hospitals etc etc.” Some emerging ones span different types of organizations involved in different aspects of healthcare — notably provider organizations and payer organizations. Each organization has its own security domain, but the HIE normally has a separate security domain. The main security problem is then defining the “trust bridge” allowing these distinct security domains to share their data, subject to HIPAA and CFR 42 kinds of privacy constraints.
>>> 
>>> To me, both the roles and individuals will be in an organizational context. The organizational context is typically identified by DNS domain names, and has a security domain within which credentials are submitted and checked. Typically the individuals will have an identifier associated with the organization (e.g,, email address) and role(s). When an individual from security domain A wishes to use resources within security domain B, it gets an organizational token (JWT) issued by domain A and then submits it to domain B, which can authorize access for the individual. This is a hard security problem to get resolved interoperably. Is this “pattern” one that we should profile? If it is I am all in. But if we are only interested in an individual’s capability to set policy within a specific security domain, the security problem will lack interoperability in emerging data exchanges accessed via APIs (including FHIR dstuX when it emerges).
>>> 
>>> Sorry for the detail but I have been as succinct as is consistent with explaining my questions.
>>> 
>>> I will attach a diagram I have used to ask this question to Eve Maler (hi Eve!).  Hoping to move us forward in getting clear about our profiling activity. I realize this is not a pure waterfall design pattern (use cases driving everying below), but that is not agile, and we should all be able to be agile as needed.
>>> 
>>> Dale Moberg
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> <DT-FHIRCaseFiveBasics.docx>_______________________________________________
>>> Openid-specs-heart mailing list
>>> Openid-specs-heart at lists.openid.net <mailto:Openid-specs-heart at lists.openid.net>
>>> http://lists.openid.net/mailman/listinfo/openid-specs-heart <http://lists.openid.net/mailman/listinfo/openid-specs-heart>
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-heart/attachments/20151015/9a10a242/attachment.html>


More information about the Openid-specs-heart mailing list