Hi, The package has moved to testing: - Fedora 28: https://bodhi.fedoraproject.org/updates/FEDORA-2018-9e2640da1e <https://bodhi.fedoraproject.org/updates/FEDORA-2018-9e2640da1e> - EPEL 7: https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2018-3b68fe0e41 <https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2018-3b68fe0e41> If folks could please take some time to review and test it, it'll help reduce the 2 week waiting period. Regardless, on the timescale of the next Xrootd release, libmacaroons should be present on at least a subset of the production platforms. Brian > On Jun 14, 2018, at 9:23 PM, Brian Bockelman <[log in to unmask]> wrote: > > Hi, > > I posted the proposed sources here: > > https://bugzilla.redhat.com/show_bug.cgi?id=1591556 <https://bugzilla.redhat.com/show_bug.cgi?id=1591556> > > If there's anyone who can pickup the review and push it forward, it would be greatly appreciated. > > Brian > >> On Jun 14, 2018, at 10:15 AM, Andrew Hanushevsky <[log in to unmask] <mailto:[log in to unmask]>> wrote: >> >> Yes, I think that Michal is blessed as of now (as long as he doesn't make any mistakes :-). I suppose another reason to host it in the xroot github repo under, say, xrootd-macaroons. >> >> Andy >> >> On Thu, 14 Jun 2018, Fabrizio Furano wrote: >> >>> Are you a blessed EPEL packager ? >>> You need one to bless your package. Should not be difficult,as it's a >>> plain library. >>> >>> I think Michal may have this kind of power. >>> >>> About Debian I don't know personally. So far we got the key components >>> into it by courtesy (someone told me it was Mattias). I'd say that EPEL >>> comes first. >>> >>> f >>> >>> On 14.06.18 16:57, Brian Bockelman wrote: >>>> Hi, >>>> >>>> I can probably take care of this for EPEL, but I really have no background in Debian. >>>> >>>> Assuming we could get at least that far, could we get things into the main repo? >>>> >>>> Andy, your mention of "stock repos" was a bit ambiguous. Do you consider EPEL a stock repo for RHEL-like platforms? >>>> >>>> Brian >>>> >>>>> On Jun 14, 2018, at 7:15 AM, Andrew Hanushevsky <[log in to unmask] <mailto:[log in to unmask]>> wrote: >>>>> >>>>> Hi Fabrizio, >>>>> >>>>> I totally agree. We will not enbed libmacroons source into the xroot repo simply to avoid this kind of mess (for us and everyone else :-). So, I urge that you or whomever you lean on, repackge libmacaroons into an EPEL-style package that we can use without ever looking at the source. >>>>> >>>>> Andy >>>>> >>>>> >>>>> On Thu, 14 Jun 2018, Fabrizio Furano wrote: >>>>> >>>>>> Hi Andy, >>>>>> >>>>>> yes, development style is one thing, and so far the xrootd project >>>>>> has been very clear on that. >>>>>> >>>>>> In this case I had DPM in mind, and its WebDAV frontend >>>>>> already embedded the source of libmacaroons quite some time ago. >>>>>> Now we are talking about embedding the code of libmacaroons also in xrootd. >>>>>> >>>>>> The result would be to have potentially two different versions of >>>>>> the same code in the same DPM system, coming from two different >>>>>> frontends. >>>>>> >>>>>> It will work (I believe), yet the clean solution IMO is to properly >>>>>> package libmacaroons into EPEL+debian, so that noone needs to embed the code anymore. >>>>>> >>>>>> f >>>>>> >>>>>> >>>>>> On 06/14/2018 12:01 PM, Andrew Hanushevsky wrote: >>>>>>> Hi Fabrizio, >>>>>>> >>>>>>> I totally agree that having two source builds are a pain and should be avoided. I'm almost tempted to say should be prohibited. >>>>>>> In the xroot case, it should be possible to develop a plugin by installing the rpms you are dependent on and restricting >>>>>>> yourself to whatever public headers come with it. That's how it's done with all commonly used third party >>>>>>> packages. If can't develop that way then something is fundamentally wrong and should be corrected. Doing it that way, avoids the >>>>>>> exact problem you mention. So, I guess it comes down to how we enforce that kind of development style. Do you agree? >>>>>>> >>>>>>> Andy >>>>>>> >>>>>>> On Thu, 14 Jun 2018, Fabrizio Furano wrote: >>>>>>> >>>>>>>> Hi Andy, >>>>>>>> >>>>>>>> yes, that would be clean, and personally I would prefer to >>>>>>>> have libmacaroons in the stock repos. >>>>>>>> >>>>>>>> The annoyance I'd like to avoid is that so far DPM builds >>>>>>>> libmacaroons inside the source tree as an internal dep, >>>>>>>> exactly as you describe, for using it inside Apache. It's there >>>>>>>> since one year and a half... >>>>>>>> >>>>>>>> It would be quite annoying to have two versions of the same lib >>>>>>>> built inside the source tree of two different frontends: mod_lcgdm_dav >>>>>>>> and xrootd >>>>>>>> >>>>>>>> This is why I'd prefer to investigate if we can organize an "official" >>>>>>>> publishing of libmacaroons, at least to epel and debian. This thing >>>>>>>> has already been done in the past, and would represent to me the >>>>>>>> cleanest scenario possible, or at least it would give the possibility >>>>>>>> of having a clean situation. >>>>>>>> >>>>>>>> ... thoughts? >>>>>>>> >>>>>>>> Cheers >>>>>>>> Fabrizio >>>>>>>> >>>>>>>> >>>>>>>> On 14.06.18 09:55, Andrew Hanushevsky wrote: >>>>>>>>> In general, we do not add components to the main repo that depend on >>>>>>>>> third party libraries that are not available in a stock system. The >>>>>>>>> reasons for this should be obvious. The Macroon component is only one of >>>>>>>>> several components that people are developing with third party >>>>>>>>> dependencies. So we know we need to solve this problem. Our current >>>>>>>>> thinking is to setup additional projects in the main xroot repo to host >>>>>>>>> such developments and include them into our standard build pipeline. >>>>>>>>> Doing this should solve the dependency issue as well as making it >>>>>>>>> trivial to assign proper ownership so we aren't in the loop in terms of >>>>>>>>> updates and whatever. However, we would package them and sites could >>>>>>>>> install whatever they want via rpm. That way, those who wish to use a >>>>>>>>> feature know ahead of time that there will be additional libraries that >>>>>>>>> will be installed that we have no control over and may conflict with >>>>>>>>> whatever they already have installed. >>>>>>>>> >>>>>>>>> This seems the like the cleanest approach to this issue and avoids >>>>>>>>> leaving dead code in the main repo as these components come into and >>>>>>>>> fall out of favor. Michal and I have to work on this as we don't it in >>>>>>>>> place but should have a workable solution relatively soon. >>>>>>>>> >>>>>>>>> Andy >>>>>>>>> >>>>>>>>> On Wed, 13 Jun 2018, Fabrizio Furano wrote: >>>>>>>>> >>>>>>>>>> Hi Brian, >>>>>>>>>> >>>>>>>>>> true, macaroons are implemented by DPM and dcache. Having them also in >>>>>>>>>> xrootd >>>>>>>>>> would be great. >>>>>>>>>> >>>>>>>>>> About the distribution, my personal preference is to have these things >>>>>>>>>> handy to >>>>>>>>>> install and clean on the source tree, so I'd love to see macaroons and >>>>>>>>>> scitokens >>>>>>>>>> in the Xrd codebase, respecting all the strict project rules about >>>>>>>>>> makefiles (e.g. turning off the component) and deps. >>>>>>>>>> >>>>>>>>>> What did you do for libmacaroons? Since it's not distributed, we build >>>>>>>>>> it with DPM so far. >>>>>>>>>> Are you doing the same? >>>>>>>>>> Maybe we want to find a volunteer packager that submits it to >>>>>>>>>> epel/debian, etc. >>>>>>>>>> and only then refine the details of a build with Xrd ? >>>>>>>>>> >>>>>>>>>> Fabrizio >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 06/13/2018 04:08 PM, Brian Bockelman wrote: >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> I have an initial (but functioning) support for Macaroons in Xrootd: >>>>>>>>>>> >>>>>>>>>>> https://github.com/bbockelm/xrootd-macaroons <https://github.com/bbockelm/xrootd-macaroons> >>>>>>>>>>> >>>>>>>>>>> Macaroons are a symmetric-key-based token format. It allows an >>>>>>>>>>> entity with access to the secret key generate a bearer token >>>>>>>>>>> embedding one more "caveats" (rules for usage, such as restrictions >>>>>>>>>>> on path, expiration time, or valid operations). The bearer >>>>>>>>>>> of the token can add additional caveats (reducing permission) but >>>>>>>>>>> doesn't have the ability to remove them. >>>>>>>>>>> >>>>>>>>>>> Anyone else with the secret key (such as the same host or another >>>>>>>>>>> host in the cluster) can then verify the token as apply the >>>>>>>>>>> authorization rules in the caveats. >>>>>>>>>>> >>>>>>>>>>> Why is this useful? A few cases: >>>>>>>>>>> >>>>>>>>>>> 1. Delegating fine-grained access: Rucio generates a token to access >>>>>>>>>>> a single file at a site (using its X509 client cert to >>>>>>>>>>> authenticate), then sends the token to an end-user. Hence, the >>>>>>>>>>> end-user doesn't need to authenticate with the site (no user >>>>>>>>>>> X509 necessary) in order to download files. The VO (ATLAS, via >>>>>>>>>>> Rucio) can manage the fine-grained rights they delegate to the >>>>>>>>>>> user -- even if the storage is run by the site. >>>>>>>>>>> >>>>>>>>>>> 2. Enabling third-party-copy: If client C wants server A to download >>>>>>>>>>> from server B, the client can contact server B for a >>>>>>>>>>> fine-grained access token and provide it to server A as part of the >>>>>>>>>>> HTTP COPY request. >>>>>>>>>>> - I suspect I'll get the first FTS3-based transfers working today. >>>>>>>>>>> >>>>>>>>>>> IIUC, Macaroons are implemented by dCache and DPM. I utilized the >>>>>>>>>>> same caveat formats and API for requesting new tokens, but >>>>>>>>>>> generally one would not expect tokens to be reusable across different >>>>>>>>>>> implementations or site installations. >>>>>>>>>>> >>>>>>>>>>> Currently, the token is generated via a XrdHttp plugin but should be >>>>>>>>>>> usable throughout the authorization framework; however, you >>>>>>>>>>> need an encrypted channel between client and server to use it safely. >>>>>>>>>>> >>>>>>>>>>> The obvious question is "how does this differ from SciTokens"? >>>>>>>>>>> - SciTokens are based on asymmetric (public key) cryptography whereas >>>>>>>>>>> Macaroons are symmetric key. This means anyone can verify >>>>>>>>>>> a SciToken but only the issuing entity can verify a Macaroon. >>>>>>>>>>> - In the SciTokens model, the VO issues the authorization, which may >>>>>>>>>>> be valid across many sites. The macaroon is specific to >>>>>>>>>>> the site and requires an interaction with the site to generate. >>>>>>>>>>> - Macaroons can be attenuated (made weaker) by the end-user. I can >>>>>>>>>>> take a powerful macaroon and add additional limitations >>>>>>>>>>> without contacting a third-party, then safely give the limited >>>>>>>>>>> macaroon to another person if I desire. SciTokens can only be >>>>>>>>>>> attenuated by contacting the VO to exchange the powerful one for a >>>>>>>>>>> new one (hence, the VO always generates the token). >>>>>>>>>>> >>>>>>>>>>> Just as one uses a mix of asymmetric and symmetric cryptography >>>>>>>>>>> throughout the course of the day, I see SciTokens and Macaroons >>>>>>>>>>> as complementary approaches, each enabling some distinct and some >>>>>>>>>>> common use cases. >>>>>>>>>>> >>>>>>>>>>> So - one natural question for me is whether this better lives inside >>>>>>>>>>> the xrootd repository or standalone. Unlike SciTokens, the >>>>>>>>>>> dependency stack for Macaroons is more manageable (a direct >>>>>>>>>>> dependency on libmacaroons - https://github.com/rescrv/libmacaroons >>>>>>>>>>> - and an indirect dependency on libbsd). This means upstreaming of >>>>>>>>>>> the macaroons code is more approachable than the SciTokens >>>>>>>>>>> code. Additionally, since the code includes both an issuer and a >>>>>>>>>>> verifier, Macaroons are more immediately usable - no >>>>>>>>>>> non-Xrootd services setup. >>>>>>>>>>> >>>>>>>>>>> Accordingly, I'm leaning to converting this into a module inside the >>>>>>>>>>> xrootd repository. >>>>>>>>>>> >>>>>>>>>>> Thoughts? >>>>>>>>>>> >>>>>>>>>>> Brian >>>>>>>>>>> >>>>>>>>>>> -------------------------------------------------------------------------------------------------------------------------------- >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 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 <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 <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