Re: [OAUTH-WG] Dynamic Scopes

George Fletcher <gffletch@aol.com> Wed, 27 June 2018 17:17 UTC

Return-Path: <gffletch@aol.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D5FC5130E03 for <oauth@ietfa.amsl.com>; Wed, 27 Jun 2018 10:17:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=aol.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fo5q6gCMx8cF for <oauth@ietfa.amsl.com>; Wed, 27 Jun 2018 10:17:37 -0700 (PDT)
Received: from sonic306-30.consmr.mail.bf2.yahoo.com (sonic306-30.consmr.mail.bf2.yahoo.com [74.6.132.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CA7A9130DFF for <oauth@ietf.org>; Wed, 27 Jun 2018 10:17:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aol.com; s=a2048; t=1530119855; bh=9R4klQhWOWmEIcf9LlczL3aIlGdQIiWf3Iph1NOifUg=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject; b=ixQYYYaKjorm0PpK0H7gwGVIodY8uog3mLXOpdhvxYY/TvKKgdeUj4NFvt0da5IKngYtPY7A4bpvsEIheGocMSvxGg2ieVGezhXN7JGZwQJdNnatlRGzQYYqUesit7m1UtRclBcoDx3+wEi8QYoKy8mFkI4GkKzIy9zV9eeEMrs4LWH9ujEBvHTCisMx5T8DtePQOvBL6xuXhiDUg4aTFzwl6c1dx6cP/GvpC4tzek9APouOmS//dzO95U8jJdg3qEL0EozCjY7CkKBEaytqRs2nXFIIJPlO/QrBjt27ZWNUWPBRY/10ljvjtZ6SWIYKmrlxl8nIYEvFanIUD0Eecg==
X-YMail-OSG: ZNCOrLYVM1kmL1y9kqVDDFxEquh10gUgLwhKsVo.U7k8GMPOEpLMY6rlv1Wxsz8 0LELVJ.FmVxzNZ2APTE1qZuSoptPFriGKyqsNrKiJqAKxEHVg5Oc-
Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.bf2.yahoo.com with HTTP; Wed, 27 Jun 2018 17:17:35 +0000
Received: from 108.sub-174-192-35.myvzw.com (EHLO [100.78.35.73]) ([174.192.35.108]) by smtp410.mail.bf1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 2fbc489acdde9377240e080af0486bd4; Wed, 27 Jun 2018 17:13:34 +0000 (UTC)
Content-Type: multipart/alternative; boundary="Apple-Mail-A9AE15E7-2D39-44B5-9ABA-0230F4996017"
Mime-Version: 1.0 (1.0)
From: George Fletcher <gffletch@aol.com>
X-Mailer: iPhone Mail (15F79)
In-Reply-To: <C64A7845-AF59-4282-BFD4-14F5CCC42B71@lodderstedt.net>
Date: Wed, 27 Jun 2018 13:13:33 -0400
Cc: Brian Campbell <bcampbell=40pingidentity.com@dmarc.ietf.org>, oauth <oauth@ietf.org>
Content-Transfer-Encoding: 7bit
Message-Id: <48E721A7-E5F8-4016-83FC-9CDCA944A0AA@aol.com>
References: <291DC85D-66B4-403F-8159-52D0091F7631@lodderstedt.net> <CA+k3eCQMCJv3NcSnBDKBUVcm131oMAdnbopSeAaD75acAqUMwg@mail.gmail.com> <b9e4115a-512d-3155-9023-604566d7190f@aol.com> <00432150-20C0-4B5F-AB4E-92F96B968A3A@lodderstedt.net> <01e15dff-2bef-831f-0b00-f64137ccc80e@aol.com> <0EF040C2-F0C2-4586-828A-A809A0373F40@lodderstedt.net> <f0d8b95a-738f-0b92-e888-6f1970048505@aol.com> <9007FECD-C700-4314-B990-3B5B5414F540@lodderstedt.net> <4cf7f274-ceb8-1734-6e83-1f83766e8061@aol.com> <C64A7845-AF59-4282-BFD4-14F5CCC42B71@lodderstedt.net>
To: Torsten Lodderstedt <torsten@lodderstedt.net>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/RG_kgn97z6yOjs71wPFO49pT93g>
Subject: Re: [OAUTH-WG] Dynamic Scopes
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 27 Jun 2018 17:17:41 -0000

Yes, that is the basic idea and matches the UMA flow. I think some profiling of UMA is required but may be good place to start.

Thanks,
George

--
Identity Standards Architect
Identity Engineering 
Oath

> On Jun 27, 2018, at 12:22 PM, Torsten Lodderstedt <torsten@lodderstedt.net> wrote:
> 
> Hi George,
> 
> thanks a lot for investing the time to assemble this flow description!
> 
> If I got it right the idea is to move the definition of the required permissions (scope) 
> of the requested access token to the interaction between signing service and authz service
> when the permission ticket is obtained as reaction to the attempt of the client (the insurance 
> company) to sign a document. So the client does not need to know what scope to request.
> It instead uses the permission ticket (minted by the RS and the AS) to request the needed 
> permissions. 
> 
> Is that correct?
> 
> best regards,
> Torsten.
> 
>> Am 24.06.2018 um 15:01 schrieb George Fletcher <gffletch@aol.com>:
>> 
>> Not sure I have the flow exactly correct... here is an attempt to define a flow based on UMA. It's a little difficult to label which flows are which parts of the specs. Specifically I am using...
>> 
>> https://docs.kantarainitiative.org/uma/wg/oauth-uma-grant-2.0-05.html
>> https://docs.kantarainitiative.org/uma/wg/oauth-uma-federated-authz-2.0-05.html
>> 
>> If you want the see the image... take the following text and load it into https://www.websequencediagrams.com/
>> 
>> title Signing Sequence
>> 
>> participant "Browser" as B
>> participant "Insurer" as I
>> participant "Signer" as S
>> participant "Bank\n(UMA AS)" as A
>> 
>> B->I: complete process
>> I->S: sign doc\n(required params)
>> S->A: permission req\n(what the signer needs)
>> A->S: permission ticket
>> S->I: Not authorized\n(AS + permission tckt)
>> I->A: request RPT\n(permission tckt)
>> A->I: need_info
>> I-->B: redirect
>> B->A: claims interaction endpoint
>> A->B: user verification & consent
>> B->A: user meets required claims
>> A-->B: redirect
>> B->I: user met claimns\n(permission tckt)
>> I->A: request RPT\n(permission tckt)
>> A->I: RPT issued
>> I->S: sign doc\n(RPT)
>> S->A: introspect\n(RPT)
>> A->S: permissions\n(required params)
>> S->I: Signed doc
>> 
>> <uma-signing-rpt.png>
>> 
>>> On 6/24/18 4:27 AM, Torsten Lodderstedt wrote:
>>> Hi George,
>>> 
>>> how is the dynamic nature (hash) of the authorization request handled in your solution?
>>> 
>>> Note: the signing service is not provided by the insurance company but a third party, a sol-called trusted service provider. The insurance company as the client in this flow sends the request to this provider.
>>> 
>>> best regards,
>>> Torsten.
>>> 
>>> Am 23.06.2018 um 21:07 schrieb George Fletcher <gffletch@aol.com>:
>>> 
>>>> Thanks Torsten.
>>>> 
>>>> I think I have a solution :) Just to make sure I have the flow correct...
>>>> 
>>>> Assumption: Using a mobile client
>>>> 
>>>> 1. User (using their mobile client) attempts to sign a document with the insurance company
>>>> 2. Insurance company redirects the user to their Bank asking for identity proof, and signing of specific documents
>>>> 3. User interacts with Bank to get authorization for the specific transaction
>>>> 4. Mobile client submits request to insurance company using             token that is specific to the user, document etc.
>>>> 
>>>> This is effectively the UMA 2.0 flow [1]
>>>> 
>>>> 1. Mobile client attempts to invoke resource at the insurance company
>>>> 2. Insurance company registers the request with UMA AS (the bank in this case) and gets a permissions ticket
>>>> 3. Insurance company instructs mobile client to contact the bank
>>>> 4. Mobile client contacts the bank specifying the permissions ticket
>>>> 5. User meets banks requirements for the specific transaction (claims interaction)
>>>> 6. Bank issues mobile client the RPT (token)
>>>> 7. Mobile client invokes resource at insurance company with             RPT
>>>> 
>>>> Note that the insurance company can specify the necessary bits that need to be in the token when it interacts with the Bank (as the UMA AS). [There might be some profiling required here]
>>>> 
>>>> I think it's worth exploring whether UMA will solve this use case.
>>>> 
>>>> Thanks,
>>>> George
>>>> 
>>>> [1] https://docs.kantarainitiative.org/uma/wg/oauth-uma-grant-2.0-08.html
>>>> 
>>>>> On 6/23/18 3:43 AM, Torsten Lodderstedt wrote:
>>>>>> Am 22.06.2018 um 23:08 schrieb George Fletcher <gffletch@aol.com>:
>>>>>> 
>>>>>> I would think that the scope issued to the refresh_token could represent the category or class of authorizations the refresh_token should be able to perform. For example, the kind of transactions that can be bound to access tokens. The scope issued into the access_token could be one of the "parameterized" ones. But maybe I'm not fully understanding the use case :)
>>>>> Let me try to explain ;-)
>>>>> 
>>>>> The client is an issuance company wanting the customer to electronically sign a new contract (legally binding!). Signing in the end means to send a request containing the hash of the document to an API. The API will respond with an CM/S Object containing signature, certificate etc that the client will embedded in the contract document (typical PDF).
>>>>> 
>>>>> We want the user to authorize the signing request using their bank as IDP/AS. Therefore the client sends the OAuth authorization request to the AS. The actual signing request needs to be bound to client, user AND hash (document) in order to prevent fraud. Regulation (eIDAS) requires to always demonstrate the sole control of the user over the whole process. The AS therefore binds (scopes) the access token to exactly this single document/signing request. If the client wants the user to sign another document, it needs to got through the whole process again.
>>>>> 
>>>>> One could think about a general signing permission represented by a refresh token, but not in the high assurance level cases I‘m looking into.
>>>>> 
>>>>> Hope that helps,
>>>>> Torsten.
>>>>> 
>>>>> 
>>>> 
>> 
>> -- 
>> Distinguished Engineer                   
>> Identity Services Engineering     Work: george.fletcher@teamaol.com
>> AOL Inc.                          AIM:  gffletch
>> Mobile: +1-703-462-3494           Twitter: http://twitter.com/gffletch
>> Office: +1-703-265-2544           Photos: http://georgefletcher.photography