---
title: Ucam Webauth
author: David Baynard
date: 09 Dec 2018
...
[](https://travis-ci.com/dbaynard/UcamWebauth)
# <https://raven.cam.ac.uk/project/>
The University of Cambridge _Raven_ service uses the _Ucam Webauth_ protocol.
This repository contains a number of Haskell libraries to interact with this system.
# ucam-webauth
[](https://hackage.haskell.org/package/ucam-webauth)
[](http://stackage.org/lts-13/package/ucam-webauth)
[](http://stackage.org/nightly/package/ucam-webauth)
This implements the client authentication protocol; specifically, the validation.
# ucam-webauth-types
[](https://hackage.haskell.org/package/ucam-webauth-types)
[](http://stackage.org/lts-13/package/ucam-webauth-types)
[](http://stackage.org/nightly/package/ucam-webauth-types)
This implements data types for the client authentication protocol.
There is an internal package which is *not* recommended for use.
Its only purpose is to split the core functionality among packages for minimal ghcjs dependencies.
# raven-wai
[](https://hackage.haskell.org/package/raven-wai)
[](http://stackage.org/lts-13/package/raven-wai)
[](http://stackage.org/nightly/package/raven-wai)
This adds [wai](//hackage.haskell.org/package/wai) middleware enabling authentication using _Raven_.
# servant-raven
[](https://hackage.haskell.org/package/servant-raven)
[](http://stackage.org/lts-13/package/servant-raven)
[](http://stackage.org/nightly/package/servant-raven)
API combinators for [servant](//hackage.haskell.org/package/servant), using [servant-auth](//hackage.haskell.org/package/servant-auth).
# servant-raven-server
[](https://hackage.haskell.org/package/servant-raven-server)
[](http://stackage.org/lts-13/package/servant-raven-server)
[](http://stackage.org/nightly/package/servant-raven-server)
The handlers for [servant](//hackage.haskell.org/package/servant).