Re: [sipcore] Comments on draft-ietf-sipcore-sip-authn-02

worley@ariadne.com (Dale R. Worley) Wed, 13 June 2018 02:21 UTC

Return-Path: <worley@alum.mit.edu>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E6DCB130DC2 for <sipcore@ietfa.amsl.com>; Tue, 12 Jun 2018 19:21:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.686
X-Spam-Level:
X-Spam-Status: No, score=-1.686 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 yR4zELycWxJm for <sipcore@ietfa.amsl.com>; Tue, 12 Jun 2018 19:21:45 -0700 (PDT)
Received: from resqmta-ch2-06v.sys.comcast.net (resqmta-ch2-06v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D6F8D127332 for <sipcore@ietf.org>; Tue, 12 Jun 2018 19:21:44 -0700 (PDT)
Received: from resomta-ch2-03v.sys.comcast.net ([69.252.207.99]) by resqmta-ch2-06v.sys.comcast.net with ESMTP id Su3qfygSDN6xcSvPsfdn0u; Wed, 13 Jun 2018 02:21:44 +0000
Received: from hobgoblin.ariadne.com ([24.91.37.100]) by resomta-ch2-03v.sys.comcast.net with ESMTPA id SvPqfojMziX04SvPrfYLWH; Wed, 13 Jun 2018 02:21:44 +0000
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id w5D2LgD2004625; Tue, 12 Jun 2018 22:21:42 -0400
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id w5D2LfOg004622; Tue, 12 Jun 2018 22:21:41 -0400
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: Rifaat Shekh-Yusef <rifaat.ietf@gmail.com>
Cc: sipcore@ietf.org
In-Reply-To: <CAGL6epLiGUdnj6oiMA2ZfoQQf32jvW+xXVUW43J9JO1it9tfAw@mail.gmail.com> (rifaat.ietf@gmail.com)
Sender: worley@ariadne.com
Date: Tue, 12 Jun 2018 22:21:41 -0400
Message-ID: <87lgbjfmtm.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4wfPBu4QQVCAN7cxNRRCVfWv6zGNexv72hljo91fYX9LIy5Gw0E9IvUK5Y5pMQNepcOkxoO6O5kXST7GvxZc0dhFLhmjozgKkLMsJDtWNfwhLuSrdVGg4o ExJW3Ii+HB7Kx5r18AVWo2sH0rXcY4b1EKsJoY00XRCiwxkdSi2iSqU162JTjupgdL/fib4nIi2/1WuQHXPLxAFTteOAVkIJZo0=
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/YRZx0UpBFcAs3b6TMF-70pKrVig>
Subject: Re: [sipcore] Comments on draft-ietf-sipcore-sip-authn-02
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 13 Jun 2018 02:21:46 -0000

Rifaat Shekh-Yusef <rifaat.ietf@gmail.com> writes:
> (As a consequence, the meaning of the Location header in the 401
>> response (section 2.1.1) is not fixed -- the UA is expected to do
>> something with the value of the header, but there is no specification
>> of what that is.)
>>
>> The missing parts are the ones that use the existing OAuth 2.0 mechanism
> defined in RFC6749.
> I will try to add more details to make it clearer.

One suggestion is that the Location header in the F2 401 response should
have a field parameter to indicate to the Agent the intended
meaning of the Location URI, i.e., its the URL of an OAuth Authorization
Server and should be accessed per the protocols in this document.

More importantly, a quick look suggests that where section 2.1 shows
this

     |           F2 401 Unauthorized |                               |
     |              Location: AuthZ Server                           |
     |<------------------------------|                               |
     |                               |                               |
     |                               |                               |
>  The UA prompts the user to provide his/her credentials.           |
>  The UA then, as per OAuth 2.0 protocol, authenticates the user to |
>  the AuthZ server, and obtains an authorization code, which the UA |
>  will later hand to the Proxy.                                     |
     |<------------------------------------------------------------->|
     |                               |                               |
     |                               |                               |
     | F3 REGISTER [authz code]      |                               |
     |------------------------------>|                               |

there is intended to be a reference to 4.1.1 and 4.1.2 of RFC 6749.
4.1.1 tells how the Agent is to construct an HTTP GET request, which
starts the interaction between the user and the Authorization Server.
Eventually, per 4.1.2, the Authorization Server sends the web client a
redirection to a URL based on the redirect_uri parameter in the initial
GET request.  The Agent recognizes that URL and extracts from it the
authorization code, which it includes in the body of the F3 REGISTER per
2.1.1 in this draft.

Generally speaking, I estimate that nobody reading this document will
have prior knowledge of OAuth, so it would help greatly if you could
provide the cross-references between the parts of the protocol described
here with the sections of RFC 6749 that are incorporated into it.
Currently, the document only says "The method used by the UA to obtain
the code is out of scope for this document." which is generally used to
mean "that part is not defined", not "that part is specified in RFC
XXXX, so we won't repeat it here"!

>> - The document doesn't give a clear statement of which requests are
>> authenticated, what guarantees the authentication provides, or how the
>> call flows might be used in authorizing requests.  The only use of the
>> authentication/authorization information specified in the document is
>> SIP registration, but I suspect the intention is that SIP requests
>> carrying authentication/authorization can be forwarded to other server
>> entities, which can validate the AA information to determine whether
>> to service the request.
>>
>> This part is out of scope for this document.
> We had a long debate on the mailing list about this, so we left it for
> future documents.

The problem is that if there's no specification of how this would be
used to actually do something, you haven't answered the question "Why
bother?".

If I guess correctly, once the registration is set up (F3 in 2.1), then
the proxy is expected to apply the "tokens" to any request that the
Agent sends to it, before the proxy forwards the request to its
destination.  If you would specify how that is done, I would see how
this could be used in a practical system.

Dale