On Mon, Sep 20, 2010 at 5:21 PM, MJ Ray <[log in to unmask]> wrote: > Ross Singer wrote: >> Agreed on this assessment, Jonathan. MJ, can you extrapolate on your >> concerns, because that Ars Technica article is not going to cut it for >> anything more than to avoid the choices that Twitter made. > > I've just sent another message trying to do that. Hope it helps. Yes. Well, at any rate it helps me refine my problem statement some. The concern about distributed apps (while legitimate) doesn't worry me quite so much in this particular case. The main use case we would be looking to solve is for known applications to access (and, depending on how trusted they are, manipulate) confidential (again, according to the level of trust) user information in an ILS without needing to store their credentials. If there is an added bonus of being to use it for all sorts of other, distributed applications, so much the better, but if that's not viable or secure, it's no problem since it would be outside of the necessary requirements, anyway. > >> And even by the standards of that article, I'm not sure that OAuth is >> inappropriate for the ILS-DI's use cases which are: >> >> 1) server-to-server communication as the first priority >> 2) something relatively standardized and abstracted enough to allow >> for institutions' local authentication mechanisms. > > I think FOSS servers would be affected by the published-key spoofing > flaw too, wouldn't they? > There are open source OAuth server implementations out there, I assume there's some local salt-ing going on. Another key difference between ILS-DI's use case and a service like Twitter's is that, from the start, the expectation can be set that only whitelisted clients have access. I'm not sure if Johns Hopkins or Stanford or NYPL cares much if there's a teeming app marketplace that can be built on top of their ILS API as much as simple and consistent access from their discovery interfaces, courseware, electronic reserves application, etc.. The very attributes that may make OAuth questionable for services like Twitter, Facebook, and their ilk may be non-factors for an ILS API simply because the environment can be much more controlled. The problem would be that if, indeed, these flaws do undermine public support for OAuth, the advantages it brings (client/server libraries, awareness outside of very library-specific domains) would be lost if there's no community using it. > Some of the projects that want to support ILS-DI are FOSS - one of the > Koha support companies signed some ILS-DI announcement IIRC, while > another wrote some of the code to implement it. > >> Which basically spells out the problem the ILS-DI group is facing: an >> incomplete, but evolving standard with heavy industry support, or... >> nothing. > > Glad to see it's recognised that OAuth is incomplete. > Really all that's recognized is that it exists and is one of the only, if not the only, protocol that allows for the decentralization of auth/authz without the client service needing to manage personal credentials. That's not necessarily an ILS-DI requirement, but it sure would be useful if we had it. > I've heard as much opposition as support among developers. On the one > hand, it's more work to sell. On the other, they're now even more at > the mercy of big service providers who can break their applications > (and so eat their support budgets) at will. > Unlike Twitter, however, we're starting from nothing. There's nothing currently invested in ILS-DI clients that would break by committing solely to OAuth (or anything, for that matter). If there is broad language support to build clients and servers, this should be less of an issue. >> We are still very much in the fact-gathering stage, so any suggestions >> are welcome. [...] > > If the problem that the group is trying to solve was explained on this > list, readers might be able to offer suggestions. > Jonathan gave a pretty good summary, but I'll tack on. The ILS-DI initiative was initially proposed by the digital library federation to provide following functionality out of integrated library systems: Level 1: Basic Discovery Interfaces * HarvestBibliographicRecords * HarvestExpandedRecords * GetAvailability * GoToBibliographicRequestPage Level 2: Elementary OPAC supplement All of the above, plus * HarvestAuthorityRecords * HarvestHoldingsRecords * GetRecord * Search * Scan * GetAuthorityRecords * Either OutputRewritablePage or OutputIntermediateFormat Level 3: Elementary OPAC alternative All of the above, plus * LookupPatron * AuthenticatePatron * GetPatronInfo * GetPatronStatus * GetServices * RenewLoan * HoldTitle * HoldItem * CancelHold * RecallItem * CancelRecall Level 4: Robust/domain specific discovery platforms All of the above, plus * SearchCourseReserves * Explain * Both OutputRewritablePage and OutputIntermediateFormat It's no longer under the auspices of the DLF and the priority of functionality has changed. We're now focused first on: * GetAvailability * LookupPatron * AuthenticatePatron * GetPatronInfo * GetPatronStatus * GetServices * RenewLoan * HoldTitle * HoldItem * CancelHold * RecallItem * CancelRecall (basically, the old Level 3 functions + Level 1's "GetAvailability"). The baseline right now is to get this functionality via the XC NCIP Toolkit (http://code.google.com/p/xcnciptoolkit/). It's unclear what the final API will look like (that is, whether it will be the NCIP toolkit's API or some abstraction layer on top of it). The primary use case for these functions is for discovery systems (a la Summon, VuFind, etc.) to be able to interact with the ILS just like the bundled OPAC, but any application that interacts with the ILS (reserves systems, courseware, portals, etc.) could be considered if its needs are similar enough. > Hope that helps, Indeed, and I hope the reply was likewise helpful. Thanks, -Ross.