Re: [CODE4LIB] First draft of patron account API

2012-06-22 Thread MJ Ray
>>> Jakob Voss  5/28/2012 04:04 AM >>> 
> http://gbv.github.com/paia/paia-868166f.html
> http://gbv.github.com/paia/
[...]
> The API should be made available to end-users and to third parties. A
> mapping to RDF should be possible, similar to DAIA, but the first goal
> is to provide an easy and defined access for automatically accessing
> patron accounts. How would you make use of such an API?

We've a lot of other patron data in Koha and it would be good to
access that - and update it as well, auth permitting.  Should we
extend PAIA or is there another standard that we should consider?

(Of course, Koha can use things like LDAP for its patron data,
but for various reasons, some libraries want Koha as primary store
and SIP is a bit hard-core and doesn't cover all updates.)

Thanks for any feedback,
-- 
MJ Ray (slef), member of www.software.coop, a for-more-than-profit co-op.
http://koha-community.org supporter, web and library systems developer.
In My Opinion Only: see http://mjr.towers.org.uk/email.html
Available for hire (including development) at http://www.software.coop/


Re: [CODE4LIB] First draft of patron account API

2012-05-29 Thread Simon Spero
On Tue, May 29, 2012 at 5:31 AM, Jakob Voss  wrote:

>  What are your major complaints with NCIP?
>>
>
> 2. NCIP is rarely implemented in total, so you never know what you get
>

2(a)  Each implementation is usually  of a different subset :-/

One existing protocol that might be serviceable is LDAP.

It's an obvious choice for the person information, including the
authentication parts, and may already be the primary repository for this
information in the existing ILS (so no risky auth bridging).

It would be possible to use custom back-end LDAP code to handle circulation
functions (it's even possible to do this in javscript via ldapjs).  However
this would lose the benefits of being able to use an existing LDAP
infrastructure, so a pure circulation API would still be cleaner.

Simon


Re: [CODE4LIB] First draft of patron account API

2012-05-29 Thread Jakob Voss

Hi,

I added a recent changes list at http://gbv.github.com/paia/ to easier 
follow modifications to the PAIA specification.


P Williams wrote:


I'm very interested in this problem space.  Good to see that someone is
taking the initiative to try to solve the problem.  I guess I'll have to
learn some German :)


Ach, das ist nicht nötig :-)

You better correct my English by proofreading the current PAIA spec.


You mention VuFind ILS drivers.  You might also be interested in the
"connectors" from the XC NCIP toolkit [http://xcncip2toolkit.googlecode.com]
and LAI Connector from Equinox's FulfILLment [
http://www.fulfillment-ill.org/].


Thanks, I started a page with related work, open for contributions:

https://github.com/gbv/paia/wiki/Related-work


I think OAuth is a good starting place when you talk about authentication.
This would address some of the issues of trust with applications that want
to access your library related information and how to securely grant access
to these client applications.  With an OAuth model the server (ILS) doesn't
have to know about the client application before the first request in order
to establish trust.  The trust is established by the user just in time.

With library systems username and password are usually barcode and pin.
The pin is usually a four digit number which is substantially easier to
break with brute force than a true password (alpha-numeric + case +
punctuation).  I think that unfortunately PAIA has the potential to make
this type of attack easier.  Any thought to hardening library systems
against brute force authentication attempts?


You are right, but library systems should not have allowed weak 
passwords in the first place. I added a section on secuity considerations:


http://gbv.github.com/paia/paia-5c2005c.html#security-considerations

I think the best way is to enable PAIA only for patron accounts with 
strong passwords.


> What did you mean by decoupling of authorization and access?

One reason to decouple authorization (PAIA auth) and access (PAIA core) 
was to be free to use different authorization methods in addition to 
username and password. You could also support access tokens bound to 
specific clients which can access multiple patron accounts or access 
tokens with read-only access to a patron account. With username/password 
one would only have all or nothing.



What are your major complaints with NCIP?


1. One of the most important bits of information ("circulation status") 
is not defined but free text.

2. NCIP is rarely implemented in total, so you never know what you get
3. Identifiers are not URIs.
4. I don't know of any library that allows open access to their NCIP 
interface by patrons and third-parties.


But I've seen worse library APIs than NCIP ;-)


I can see this being useful with authenticating for use of licensed
databases, to determine eligibility for ILL services, or to verify a valid
user for reciprocal borrowing in person within a consortia.  It might also
be useful for a service like Library Elf.


Interesting case. You could think of a database as a document which can 
be requested - so the patron sends a PAIA "requestItems" and the 
resulting document state is 3 ("held") or 4 ("provided") on success and 
5 ("rejected") on failure.


Jakob

--
Jakob Voß , skype: nichtich
Verbundzentrale des GBV (VZG) / Common Library Network
Platz der Goettinger Sieben 1, 37073 Göttingen, Germany
+49 (0)551 39-10242, http://www.gbv.de


Re: [CODE4LIB] First draft of patron account API

2012-05-28 Thread P Williams
Hi,

I'm very interested in this problem space.  Good to see that someone is
taking the initiative to try to solve the problem.  I guess I'll have to
learn some German :)

You mention VuFind ILS drivers.  You might also be interested in the
"connectors" from the XC NCIP toolkit [http://xcncip2toolkit.googlecode.com]
and LAI Connector from Equinox's FulfILLment [
http://www.fulfillment-ill.org/].

I think OAuth is a good starting place when you talk about authentication.
 This would address some of the issues of trust with applications that want
to access your library related information and how to securely grant access
to these client applications.  With an OAuth model the server (ILS) doesn't
have to know about the client application before the first request in order
to establish trust.  The trust is established by the user just in time.

With library systems username and password are usually barcode and pin.
 The pin is usually a four digit number which is substantially easier to
break with brute force than a true password (alpha-numeric + case +
punctuation).  I think that unfortunately PAIA has the potential to make
this type of attack easier.  Any thought to hardening library systems
against brute force authentication attempts?

What are your major complaints with NCIP?  What did you mean by decoupling
of authorization and access?

I can see this being useful with authenticating for use of licensed
databases, to determine eligibility for ILL services, or to verify a valid
user for reciprocal borrowing in person within a consortia.  It might also
be useful for a service like Library Elf.

Viel Glück,
Tricia

On Mon, May 28, 2012 at 2:04 AM, Jakob Voss  wrote:

> Hi,
>
> In the last month we worked on specification of a patron account API
> (PAIA) because existing (or more: non-existing) APIs such as NCIP and
> SLNP don't fit our needs (most of all: simplicity, strict definitions,
> and decoupling of authorization and access). The API is based on DLF-ILS
> recommendations, VuFind ILS drivers, and OAuth among other input. I'd
> hereby like to share the current draft for comments:
>
> http://gbv.github.com/paia/paia-868166f.html
> http://gbv.github.com/paia/
>
> How to contribute:
> * Implement a server and/or client of the PAIA specification for your
> ILS and/or discovery interface
> * Fork and modify the specification at github
> * Comment on the specification and report bugs:
> https://github.com/gbv/paia/issues
> * Think about useful apps and mashups that make use of PAIA
>
> The API should be made available to end-users and to third parties. A
> mapping to RDF should be possible, similar to DAIA, but the first goal
> is to provide an easy and defined access for automatically accessing
> patron accounts. How would you make use of such an API?
>
> Jakob
>
>
> --
> Verbundzentrale des GBV (VZG)
> Digitale Bibliothek - Jakob Voß
> Platz der Goettinger Sieben 1
> 37073 Goettingen - Germany
> +49 (0)551 39-10242
> http://www.gbv.de
> jakob.v...@gbv.de
>


Re: [CODE4LIB] First draft of patron account API

2012-05-28 Thread Matthew Mikitka
Jakob,

Good work - looks promising.  Some use-cases that I can think of are:

 - Integration with client-side notification system e.g., pull overdue or 
resource availability events
 - Sync online social network profiles with library systems to find people with 
common interests based on book selection

matt 
 
>>> Jakob Voss  5/28/2012 04:04 AM >>> 
Hi,

In the last month we worked on specification of a patron account API
(PAIA) because existing (or more: non-existing) APIs such as NCIP and
SLNP don't fit our needs (most of all: simplicity, strict definitions,
and decoupling of authorization and access). The API is based on DLF-ILS
recommendations, VuFind ILS drivers, and OAuth among other input. I'd
hereby like to share the current draft for comments:

http://gbv.github.com/paia/paia-868166f.html
http://gbv.github.com/paia/

How to contribute:
* Implement a server and/or client of the PAIA specification for your
ILS and/or discovery interface
* Fork and modify the specification at github
* Comment on the specification and report bugs:
https://github.com/gbv/paia/issues
* Think about useful apps and mashups that make use of PAIA

The API should be made available to end-users and to third parties. A
mapping to RDF should be possible, similar to DAIA, but the first goal
is to provide an easy and defined access for automatically accessing
patron accounts. How would you make use of such an API?

Jakob


--
Verbundzentrale des GBV (VZG)
Digitale Bibliothek - Jakob Voß
Platz der Goettinger Sieben 1
37073 Goettingen - Germany
+49 (0)551 39-10242
http://www.gbv.de
jakob.v...@gbv.de


[CODE4LIB] First draft of patron account API

2012-05-28 Thread Jakob Voss
Hi,

In the last month we worked on specification of a patron account API
(PAIA) because existing (or more: non-existing) APIs such as NCIP and
SLNP don't fit our needs (most of all: simplicity, strict definitions,
and decoupling of authorization and access). The API is based on DLF-ILS
recommendations, VuFind ILS drivers, and OAuth among other input. I'd
hereby like to share the current draft for comments:

http://gbv.github.com/paia/paia-868166f.html
http://gbv.github.com/paia/

How to contribute:
* Implement a server and/or client of the PAIA specification for your
ILS and/or discovery interface
* Fork and modify the specification at github
* Comment on the specification and report bugs:
https://github.com/gbv/paia/issues
* Think about useful apps and mashups that make use of PAIA

The API should be made available to end-users and to third parties. A
mapping to RDF should be possible, similar to DAIA, but the first goal
is to provide an easy and defined access for automatically accessing
patron accounts. How would you make use of such an API?

Jakob


-- 
Verbundzentrale des GBV (VZG)
Digitale Bibliothek - Jakob Voß
Platz der Goettinger Sieben 1
37073 Goettingen - Germany
+49 (0)551 39-10242
http://www.gbv.de
jakob.v...@gbv.de