Print

Print


Hi Andy,

(Back from vacation today... apologies if you get many rapid-fire emails...)

Indeed, I'm planning on doing this prior to the first release.  Because the macaroons are short-lived and only valid for the local site storage system, it's a bit easier to evolve the claims than in SciTokens (which must be understood by multiple storage systems, all on their own release cycle).

Note that I just pushed libmacaroons to be scheduled for the next EPEL7 and Fedora 28 release.  That means this code's dependencies should be resolvable for those platforms (one of the conditions Andy set out in his original email below).  For me, getting this into the base xrootd install would ease any future pain of coordinating API changes within Xrootd itself -- no need to manage more complex sets of compatible versions, since we only have to target a single version!

Thoughts?

Brian

On Jun 20, 2018, at 3:19 PM, Andrew Hanushevsky <[log in to unmask]> wrote:

Actually, it would be good if the macaroon contained UID/GID (or whatever you consider describing ownership) from the get go -- even if it is not used for certain system. These things evolve quickly and I don't think it would be good to constrain the evolution simply because we don't have enough information. Putting this in after the fact is usually far more problematic than one initially assumes.

Andy

On Wed, 20 Jun 2018, Brian Bockelman wrote:

Hi Andreas,

dCache currently embeds the UID / GID(s) of the original entity that generated the token into the token itself.

XRootD does not really have a concept of "file ownership" (authorization module is completely separated from the filesystem module), so I don't currently include this in the XRootD-generated macaroon.

As I've been trying out a few use cases locally (locally, XRootD sits on top of HDFS which, like EOS, does have file ownership), I'm hitting ownership issues like you outline below.  I think the XRootD-generated token is going to include the user and group info too for the case where XRootD is sitting on top of distributed filesystems.

Brian

On Jun 20, 2018, at 7:33 AM, Andreas-Joachim Peters <[log in to unmask]> wrote:

I have one question if you use macaroons for writing. If I allow with a macaroon to write into 'my' directory, will a file be created with my identity or the identity of the authenticated client with the macaroon? Or is the identity for creatoin also specified in the macaroon? Reading is clear.

Cheers Andreas.


On Wed, Jun 20, 2018 at 1:58 PM, Fabrizio Furano <[log in to unmask] <mailto:[log in to unmask]>> wrote:
Hi,

On 20.06.18 12:56, Paul Millar wrote:
Hi Fabrizio,

On 20/06/18 11:48, Fabrizio Furano wrote:
 Paul, surely it's available in DPM 1.10 (latest in epel)

Excellent.

Could you say which option needs tweaking in order to enable the support?

The DPM v1.10 release notes don't seem to mention macaroons much.

indeed, we don't consider them a released feature ready for
prime time. Eventually they will.

To enable then, one needs to make sure that the Apache config
contains:
- (in the Location match for /dpm) NSMacaroonSecret <secret>
- SSLVerifyClient must be "optional"

Cheers
Fabrizio



 It may be available on slightly older DPMs if the sysadmin has
upgraded the HTTP frontend alone (lcgdm-dav 0.20). Needless to say,
I don't encourage package alchemies in prod setups.

:-D

 About the authentication, I take the statement "every authenticated
client",
which in our world may mean X509, X509/VOMS

Yes, it includes X.509.  For dCache, this is also true for
OpenID-Connect, Kerberos, username+password and macaroons.

(You can even use a macaroon when requesting a fresh macaroon.)

I'm working on adding SciToken support now.

 That was for generating. I am a bit puzzled about authorization. Really
you don't apply any kind of authorization to generate a macaroon? Do you
check everything only when a macaroon is received?

Yes, beyond a global enable/disable switch.

The CPU cost of generating a macaroon is rather trivial.

In the Birgisson et al paper, they measured the crypo overhead of
minting a macaroon (in Python) at 20 µs, plus 55 µs per caveat.  For
comparison they measured RSA keygen (as used by SciToken) as taking 54
ms (54000 µs) in OpenSSL.  So a typical macaroon is about two orders of
magnitude faster to generate than an RSA key-pair.

There's no problem with multiple requests filling up any storage:
typically macaroons share the same secret.

It doesn't authorise users to do anything they can't already do,
especially with X.509 proxies.

For example, consider a user that generates and emails a friend a
macaroon that grants the bearer the ability to read some data.

That user could email their friend an X.509 proxy.

Failing that, they could even download the data and simply email it to
their friend.

At least with macaroons, the user can limit activity to reading data (no
deletion) and only a specific portion of the namespace.

 For the records, the DPM implementation is considered experimental
because it may miss something... however it's good to gain experience.

Agreed.

Cheers,

Paul.



########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1 <https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1>


Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1 <https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1>


########################################################################
Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1



Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1