Service Provider

36
Service Provider

description

Service Provider. Background. Versions. 1.2 1.3 (since July ‘05) 2.0 (beta expected May ‘06). Platform. cross-platform C++ Microsoft ISS via ISAPI Apache httpd 1.3 & 2.0 Java shib 2.0. Service Provider. apache. mod_shib. shibd. Identity Provider. Building it. Binaries. - PowerPoint PPT Presentation

Transcript of Service Provider

Page 1: Service Provider

Service Provider

Page 2: Service Provider

Background

Page 3: Service Provider

Versions

•1.2

•1.3 (since July ‘05)

•2.0 (beta expected May ‘06)

Page 4: Service Provider

Platform

•cross-platform C++

•Microsoft ISS via ISAPI

•Apache httpd 1.3 & 2.0

•Java

•shib 2.0

Page 5: Service Provider

Service Provider

shibdshibd

apacheapachemod_shibmod_shib

Identity Provider

Page 6: Service Provider

Building it

Page 7: Service Provider

Binaries

•Redhat RPMs since 1.3

•much easier (if suitable)

•http://shibboleth.internet2.edu/latest.html

Page 8: Service Provider

Documentation

•Dropped from shib docs as of 1.3

•in favour of wiki...

•...but partially missing from wiki

•https://authdev.it.ohio-state.edu/twiki/

•select “Shibboleth Web”

Page 9: Service Provider

Install guide

•Not part of our original project plan...

•...but in draft.

Page 10: Service Provider

Dependencies: easy

•apxs (apache-dev)

•libssl-dev

•libcurl-dev

•Should be available with your O/S

Page 11: Service Provider

Dependencies: intermediate

•opensaml

•libxml-security-c

Page 12: Service Provider

Dependencies: harder

•xerces-c

•via Internet2, bug in upstream

•log4cpp

•via Internet2, project in limbo

Page 13: Service Provider

Other bits

•Service (/etc/init.d) script

•steal from the redhat packages

•if your init.d works the same

Page 14: Service Provider

First go

•Hello world

•local to apache server

•no internal Auth{N/Z} notion

Page 15: Service Provider

example

Page 16: Service Provider

First go

•set wayfURL to your local IDP

•self-signed certificates

•logout?

Page 17: Service Provider

Authorization

Page 18: Service Provider

access control

•by the server

•by the application

•by a framework

Page 19: Service Provider

application-managed

Page 20: Service Provider

server-managed

•apache httpd.conf / .htaccess files

•shibboleth 1.3b XML-based

Page 21: Service Provider

apache-based

•Require entity-name [entity-name]

Page 22: Service Provider

shibboleth-based

•relatively new, added in 1.3b

•performance questions

Page 23: Service Provider

<AccessControl>

<AND>

<OR>

<Rule require="affiliation">[email protected]</Rule>

<Rule require="affiliation">[email protected]</Rule>

</OR>

<Rule require="entitlement">

urn:mace:example.edu:exampleEntitlement

</Rule>

</AND>

</AccessControl>

Page 24: Service Provider

dealing with walk-ins

•“kiosk”-types, e.g. library terminals

•mod_auth_location

•http://staff.washington.edu/fox/authlocation/module.html

Page 25: Service Provider

framework-managed

•Java AuthN & AuthZ Services (JAAS)

•Active Directory Federated Services (ADFS)

•covered later

Page 26: Service Provider

Use Cases

Page 27: Service Provider

A real service

•a local app with internal user auth{N/Z}

•hack in “trusting” an environment variable

•e.g. $REMOTE_USER

•on-the-fly account creation

•deletion?

•logout?

Page 28: Service Provider

Example: sympa•mailing list manager

•attributes via environment variables

•app-configurable mapping

•authorization handled by apache

•a canonical URL defined by sympa

Page 29: Service Provider

Sympa’s logout

•two-stage login:

•authenticated by shibboleth

•explicitly asked to be “logged in”

•(demo)

Page 30: Service Provider

external services

•shibboleth/apache front-end

•“black-box” back-end

•e.g. proxying (via mod_proxy) or fastCGI

Page 31: Service Provider

Service Provider

shibdshibd

apacheapachemod_shibmod_shib

Identity Provider

Page 32: Service Provider

back-endfront-end

apacheapachemod_shibmod_shib

shibdshibd

mod_proxmod_proxyy

Identity Provider

Page 33: Service Provider

mod_proxy front-end

ProxyPass /jon http://front.ncl.ac.ukProxyPassReverse /jon http://front.ncl.ac.uk

<Location "/jon"> AuthType shibboleth ShibRequireSession on Require valid-user</Location>

Page 34: Service Provider

On the back-end

Order deny,allowDeny from allAllow from shib-front-end.ncl.ac.uk

Page 35: Service Provider

Shortcomings

•IP spoofing on the back-end

•cookie scope

•certificate scope

Page 36: Service Provider

example again