Print

Print


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.