Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
# mysql
mysql> GRANT ALL ON cams.* TO 'camsusr'@'localhost' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON cams.* TO 'camsusr'@'idp-cams-1.mit.edu' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON cams.* TO 'camsusr'@'idp-cams-2.mit.edu' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT ON cams.* TO 'shibresolver'@'localhost' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT ON cams.* TO 'shibresolver'@'idp-cams-1.mit.edu' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT ON cams.* TO 'shibresolver'@'idp-cams-2.mit.edu' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT, LOCK TABLES, FILE, RELOAD ON *.* TO 'backup'@'localhost' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT ON cams.ExternalUser TO 'camsldap'@'localhost' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

mysql> quit

h4. 

Install

...

Shibboleth

...

IdP

...

  • Run

...

  • the

...

  • idp

...

  • application

...

  • installer

...

  • from

...

  • our

...

  • customized

...

  • binary

...

  • distribution,

...

  • available

...

  • in

...

  • /mit/touchstone/builds/NIST/idp2-cams/cams-shibboleth-identityprovider-2.x.y-bin.tgz,

...

  • and

...

  • the

...

  • install

...

  • script

...

  • contained

...

  • therein.

...

  • For

...

  • example:
    No Format
    
    

...

  • # cd /tmp

...

  • 
    # rm -rf shibboleth-identityprovider-2.*

...

  • 
    # tar xzf /path/to/cams-shibboleth-identityprovider-2.1.5-bin.tgz

...

  • 
    # cd shibboleth-identityprovider-2.1.5

...

  • 
    # ./install.sh

...

  • 
    [There should be no need to override the default responses to the installer's questions.

...

  • ]
    

...

  • By

...

  • default

...

  • (because

...

  • of

...

  • one

...

  • of

...

  • our

...

  • customizations

...

  • to

...

  • the

...

  • stock

...

  • Internet2

...

  • distribution)

...

  • this

...

  • will

...

  • install

...

  • under

...

  • /usr/local/shibboleth-idp/

...

  • .

...

  • The

...

  • installer

...

  • will

...

  • not

...

  • overwrite

...

  • the

...

  • configuration

...

  • files

...

  • of

...

  • an

...

  • existing

...

  • installation.

...

  • For

...

  • a

...

  • new

...

  • installation,

...

  • the

...

  • installer

...

  • will

...

  • generate

...

  • a

...

  • keystore,

...

  • and

...

  • prompt

...

  • for

...

  • its

...

  • password;

...

  • currently

...

  • we

...

  • do

...

  • not

...

  • use

...

  • this

...

  • keystore,

...

  • so

...

  • the

...

  • password

...

  • does

...

  • not

...

  • matter.

...

  • This

...

  • distribution

...

  • contains

...

  • the

...

  • standard

...

  • shibboleth-identityprovider

...

  • binary

...

  • distribution,

...

  • from

...

  • the

...

  • Internet2

...

  • zip

...

  • file

...

...

  • plus

...

  • the

...

  • following

...

  • customizations:

...

    • camslogin
      This provides the custom login pages for CAMS users. It is available as a tarball (/mit/touchstone/builds/NIST/idp2-cams/camslogin.tgz)

...

    • which

...

    • is

...

    • unpacked

...

    • into

...

    • the

...

    • top-level

...

    • directory

...

    • of

...

    • the

...

    • binary

...

    • distribution.

...

    • CamsLoginModule

...

    • (cams-jaas-loginmodule-x.y.jar)

...


    • This

...

    • is

...

    • the

...

    • JAAS

...

    • login

...

    • module

...

    • for

...

    • CAMS.

...

    • It

...

    • is

...

    • available

...

    • as

...

    • a

...

    • .jar

...

    • file

...

    • in

...

    • /mit/touchstone/builds/NIST/cams-jaas-loginmodule-x.y.jar,

...

    • where

...

    • x.y

...

    • is

...

    • the

...

    • version

...

    • number

...

    • (currently

...

    • 1.0).

...

    • It

...

    • must

...

    • be

...

    • copied

...

    • into

...

    • the

...

    • lib

...

    • subdirectory

...

    • of

...

    • the

...

    • binary

...

    • distribution.

...

    • camsutil-1.0.jar

...


    • This

...

    • is

...

    • a

...

    • helper

...

    • package

...

    • used

...

    • by

...

    • the

...

    • login

...

    • module

...

    • to

...

    • validate

...

    • the

...

    • username/password.

...

    • It

...

    • is

...

    • available

...

    • in

...

    • /mit/touchstone/builds/NIST/camsutil-1.0.jar.

...

    • It

...

    • must

...

    • be

...

    • copied

...

    • into

...

    • the

...

    • lib

...

    • subdirectory

...

    • of

...

    • the

...

    • binary

...

    • distribution

...

    • along

...

    • with

...

    • the

...

    • login

...

    • module

...

    • jar

...

    • file.

...

  • The

...

  • installer

...

  • will

...

  • create

...

  • and

...

  • populate

...

  • /usr/local/shibboleth-idp;

...

  • the

...

  • web

...

  • application

...

  • (war)

...

  • file

...

  • will

...

  • be

...

  • in

...

  • /usr/local/shibboleth-idp/war/idp.war,

...

  • but

...

  • the

...

  • current

...

  • version

...

  • of

...

  • the

...

  • idp.war

...

  • will

...

  • be

...

  • available

...

  • in

...

  • the

...

  • locker

...

  • (/mit/touchstone/builds/NIST/idp2-mit/idp.war).

...

  • The

...

  • idp

...

  • application,

...

  • running

...

  • under

...

  • Tomcat,

...

  • needs

...

  • full

...

  • access

...

  • to

...

  • the

...

  • install

...

  • directory,

...

  • so

...

  • make

...

  • sure

...

  • it

...

  • is

...

  • owned

...

  • by

...

  • the

...

  • tomcat

...

  • user,

...

  • e.g.:

...

  • No Format
    
    # chown -R tomcat:tomcat /usr/local/shibboleth-idp

...

  • 
    

...

  • To

...

  • ensure

...

  • that

...

  • we

...

  • run

...

  • the

...

  • current

...

  • version

...

  • of

...

  • the

...

  • web

...

  • application,

...

  • download

...

  • the

...

  • latest

...

  • idp.war

...

  • file

...

  • from

...

  • the

...

  • touchstone

...

  • locker

...

  • (/mit/touchstone/builds/NIST/idp2-mit/idp.war)

...

  • and

...

  • copy

...

  • it

...

  • into

...

  • /usr/local/tomcat/webapps/:
    No Format
    
    

...

  • # cp /path/to/idp.war /usr/local/tomcat/webapps/

...

  • 
    # chown tomcat:tomcat /usr/local/tomcat/webapps/idp.war
    

...

  • Copy

...

  • the

...

  • idp's

...

  • endorsed

...

  • jar

...

  • files

...

  • to

...

  • tomcat's

...

  • endorsed

...

  • dir:

...

  • No Format
    
    # mkdir -p /usr/local/tomcat/endorsed

...

  • 
    # cp -p /usr/local/shibboleth-idp/lib/endorsed/*.jar /usr/local/tomcat/endorsed/

...

  • 
    # chown -R tomcat:tomcat /usr/local/tomcat/endorsed
    

...

  • Copy

...

  • in

...

  • the

...

  • idp

...

  • config

...

  • files

...

  • for

...

  • the

...

  • server,

...

  • to

...

  • the

...

  • conf

...

  • subdirectory;

...

  • these

...

  • include:

...

    • attribute-filter.xml

...

    • attribute-resolver.xml

...

    • handler.xml

...

    • internal.xml

...

    • logging.xml

...

    • login.config

...

    • relying-party.xml

...

    • service.xml

...

    • tc-config.xml

...

    • (for

...

    • terracotta

...

    • clustering)

...

Terracotta

(See

...

https://spaces.internet2.edu/display/SHIB2/IdPClusterImage Added)

...

The

...

terracotta

...

software

...

is

...

used

...

to

...

cluster

...

the

...

IdP

...

nodes.

...

Each

...

node

...

must

...

run

...

the

...

terracotta

...

server,

...

as

...

well

...

as

...

the

...

instrumented

...

client

...

(tomcat,

...

in

...

our

...

case).

...

The

...

terracotta

...

server

...

operates

...

in

...

either

...

the

...

active

...

or

...

passive

...

role;

...

only

...

one

...

server

...

should

...

be

...

in

...

the

...

"active/coordinator"

...

state

...

at

...

a

...

time.

...

Download

...

the

...

terracotta

...

tarball;

...

our

...

current

...

version

...

is

...

in

...

the

...

touchstone

...

locker,

...

in

...

/mit/touchstone/downloads/terracotta-x.y.z.tar.gz.

...

Extract

...

it

...

under

...

/usr/local,

...

create

...

a

...

logs

...

directory

...

for

...

it,

...

make

...

it

...

owned

...

by

...

the

...

tomcat

...

user,

...

and

...

symlink

...

/usr/local/terracotta

...

to

...

it.

...

For

...

example

...

(replace

...

3.1.1

...

with

...

the

...

appropriate

...

terracotta

...

version

...

number):

No Format

...

# cd /usr/local

...


# tar xzf /path/to/terracotta-3.1.1.tar.gz

...


# mkdir -p terracotta-3.1.1/logs

...


# chown -R tomcat:tomcat terracotta-3.1.1

...


# rm -f terracotta

...


# ln -s terracotta-3.1.1 terracotta

...


...

The

...

IdP

...

requires

...

the

...

installation

...

of

...

a

...

couple

...

of

...

Terracotta

...

Integration

...

Modules,

...

and

...

the

...

generation

...

of

...

a

...

boot

...

jar

...

file

...

for

...

Tomcat,

...

which

...

is

...

specific

...

to

...

the

...

Java

...

version:

No Format

...

# setenv TC_HOME /usr/local/terracotta-3.1.1

...


# setenv TC_INSTALL_DIR $TC_HOME

...


# setenv JAVA_HOME /usr/java/default

...


# $TC_HOME/bin/tim-get.sh install tim-vector 2.5.1 org.terracotta.modules

...


# $TC_HOME/bin/tim-get.sh install tim-tomcat-6.0 2.0.1

...


# $TC_HOME/bin/make-boot-jar.sh -f /usr/local/shibboleth-idp/conf/tc-config.xml

...


...

Be

...

sure

...

to

...

regenerate

...

this

...

jar

...

after

...

installing

...

a

...

new

...

JDK.

...

Install

...

the

...

init

...

script

...

from

...

/mit/touchstone/maint/shibboleth-idp/terracotta/terracotta.init

...

in

...

/etc/init.d,

...

and

...

make

...

sure

...

it

...

is

...

configured

...

to

...

start

...

at

...

boot

...

time.

...

Note

...

that

...

terracotta

...

must

...

be

...

started

...

before

...

tomcat.

No Format

...

# cp /path/to/terracotta.init /etc/init.d/terracotta

...


# chmod 755 /etc/init.d/terracotta

...


# chkconfig --add terracotta

...


...

To

...

avoid

...

performance

...

impact

...

during

...

business

...

hours,

...

we

...

disable

...

automatic

...

garbage

...

collection

...

of

...

terracotta

...

objects.

...

Instead,

...

we

...

run

...

a

...

nightly

...

cron

...

job

...

to

...

do

...

the

...

garbage

...

collection

...

manually.

...

Since

...

this

...

should

...

only

...

be

...

done

...

on

...

the

...

active/coordinator

...

node,

...

the

...

script,

...

run-dgc-if-active.sh,

...

checks

...

the

...

server

...

mode,

...

then

...

runs

...

the

...

garbage

...

collector

...

if

...

and

...

only

...

if

...

the

...

server

...

is

...

the

...

active

...

node.

...

Both

...

the

...

script

...

and

...

cron

...

file

...

can

...

be

...

obtained

...

in

...

/mit/touchstone/maint/shibboleth-idp/terracotta/;

...

install

...

as

...

follows:

No Format

...

# cp /path/to/run-dgc-if-active.sh /usr/local/shibboleth-idp/bin/

...


# cp /path/to/run-dgc.cron /etc/cron.d/run-dgc

...

Shibboleth

...

SP

...

The

...

CAMS

...

application

...

needs

...

to

...

authenticate

...

against

...

our

...

IdPs,

...

and

...

so

...

requires

...

the

...

Shibboleth

...

service

...

provider

...

(SP)

...

software

...

to

...

run,

...

as

...

well

...

as

...

the

...

IdP

...

software.

...

Installation

We use the stock RHEL 5 64-bit

...

RPMs,

...

available

...

from

...

the

...

Internet2

...

downloads

...

site

...

;

...

the

...

current

...

RPMs

...

are

...

available

...

in

...

the

...

touchstone

...

locker

...

downloads

...

directory.

...

Install

...

the

...

following

...

RPMs:

...

  • log4shib
  • opensaml
  • shibboleth
  • xerces-c

...

  • xml-security-c

...

  • xmltooling
Configuration

The SP configuration files live in /etc/shibboleth:

...

  • shibboleth2.xml

...

  • (main

...

  • SP

...

  • configuration

...

  • file)

...

  • attribute-map.xml

...

  • (defines

...

  • our

...

  • attribute

...

  • mappings)

...

  • native.logger

...

  • (configures

...

  • Apache

...

  • module

...

  • logging

...

  • we

...

  • modify

...

  • the

...

  • stock

...

  • configuration

...

  • to

...

  • log

...

  • under

...

  • /var/log/shibboleth

...

  • instead

...

  • of

...

  • /var/log/httpd,

...

  • because

...

  • the

...

  • apache

...

  • user

...

  • must

...

  • have

...

  • write

...

  • access

...

  • to

...

  • the

...

  • directory)

...

Create

...

the

...

directory

...

for

...

the

...

native

...

logger,

...

and

...

make

...

it

...

writable

...

by

...

the

...

Apache

...

user:

No Format

...

# mkdir /var/log/shibboleth/httpd

...


# chown apache /var/log/shibboleth/httpd

...


The Apache module will log to the native.log file in this directory.

Note: SELinux must be set to permissive mode in order for the SP to function properly; otherwise (without modifying policy) its Apache module will be unable to connect to shibd's Unix socket (which lives in /var/run/shibboleth/). Edit /etc/selinux/config accordingly.