Subject: Proposal to change sieve: URL syntax used by the ManageSieve protocol

From: Alexey Melnikov <[email-masked]>
Date: Sun, 21 Sep 2008 12:55:17 +0100

Hi,
Chris Newman has reviewed the ManageSieve document and sent me the 
following comment on Sieve URLs that point to scripts:

> Section 3:
>
>>         sieveurl-script = "sieve://" [ authority ] "/" scriptname
>
> * IMAP URLs made the mistake of confusing the identity used to 
> authenticate with the identity that owns the script.  This makes IMAP 
> URLs cumbersome. I would strongly encourage a naming model that 
> separates the two and keeps the script owner explicit.  For example:
>
>   sieveurl-script = "sieve://" [ authority ] "/" owner "/" scriptname

I agree with Chris, however I am concerned that there are existing 
applications using <sieveurl-script> form of Sieve URLs.
So I would like to hear from people:
1). opinions on whether you think this change is a good or a bad idea
2). if you know of any application using existing <sieveurl-script> form 
(with no "owner").

---

From: Arnt Gulbrandsen <[email-masked]>
Date: Mon, 22 Sep 2008 16:33:32 +0200

> 1). opinions on whether you think this change is a good or a bad idea

Not sure. I lean towards bad.

> 2). if you know of any application using existing <sieveurl-script> 
> form (with no "owner").

KDE, at least Kontact and kio_sieve.

I have tried to edit my own sieve script using the web browser 
Konqueror. It worked, but I don't think more than a few dozen people do 
such things.

Kontact, on the other hand, might just be deployed and used by a hundred 
thousand people. It forms a sieve://... URL when you ask it to frob 
your sieve script, passes that URL to the KIO subsystem, which in turn 
passes it on to kio_sieve. kio_sieve goes and retrieves the script, or 
issues LISTSCRIPTS, or something, and may pass other URLs back.

Arnt

---

From: Дилян Палаузов<[email-masked]>
Date: Tue, 23 Sep 2008 11:24:52 +0200

Hello,
>>   sieveurl-script = "sieve://" [ authority ] "/" owner "/" scriptname

What about
    sieveurl-script = "sieve://" [ authority ] "/" [owner "/"] scriptname

And missing [owner "/"] implies authentication ID = authorization ID

> 1). opinions on whether you think this change is a good or a bad idea

Good.
> 2). if you know of any application using existing <sieveurl-script> form 

I used kio_slave on my old computer some years ago, but to what I 
remember as "root" I could edit only the global scripts, not the users' 
ones. By enhancing the URI with owner-part, the "root" can access 
anyscript by just changing the URI (and the client software then issues 
an UNAUTHENTICATE/AUTHENTICATE commands to access it).

Alternatively the URI could be "sieve://" [[ owner "@" ] authority]...

As next one could think on a way how the "root" or any other who can 
access the script of more than one person can retrieve the list of 
script-owners, s/he has access to (in means of URI and protocol command).

Със здраве,
	Дилян

---

From: Kjetil Torgrim Homme <[email-masked]>
Date: Sun, 28 Sep 2008 16:48:31 +0200

> 1). opinions on whether you think this change is a good or a bad idea

it might be a good change.  the URI specification as I read it does not
mandate changes to the userinfo to indicate separate namespaces, but
it's clearly allowable.  if we put authentication credentials in the
"authority" (e.g., authz "=" auth ":" password "@" server), this will
too create a new namespace...

oh -- I think the ManageSieve specification should disallow encoding the
password as part of the URI, or it needs to go the whole hog and specify
how to encode SASL methods, the need for TLS etc.

to make the owner an explicit part of the path itself is a clean and
intuitively understandable solution, especially for listscripts when the
user is authorised to edit the scripts of many owners.  the other
alternative is to make it crystal clear that the userinfo component in
authority indicates the owner, and authorization by other parties can
not be encoded in the URI.

-- 
still not decided,
Kjetil T.

---

From: Jeffrey Hutzelman <[email-masked]>
Date: Tue, 30 Sep 2008 00:11:55 -0400

--On Sunday, September 28, 2008 04:48:31 PM +0200 Kjetil Torgrim Homme 
<[email-masked]> wrote:

if we put authentication credentials in the
> too create a new namespace...

No, you don't want to do that.  The whole point of the exercise is to avoid 
conflating the credentials used to authenticate to managesieve with the 
namespace to be manipulated, so that clients with sufficient privilege can 
manipulate namespaces not belonging to them.

> how to encode SASL methods, the need for TLS etc.

Agree.  URL's locate resources; they should specify the service to talk to, 
where to reach it, and what to ask it for, but they should not specify the 
identity or credentials of the entity dereferencing the URL.

> user is authorised to edit the scripts of many owners.

Exactly.

> the other

Which defeats the point.

-- Jeff