![]() |
Fox's Pages | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UW home
|
Updated: July 31, 2008 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Fox's UW Shib Page - TargetedID for shib 1.3 |
| Summary: | This describes a method for Shibboleth TargetedId maintenance using a Postgres database. Examples and downloads cannot not be expected to work without modification at sites other than the University of Washington. |
|---|---|
| Download: | You may consult the example components: |
Shibboleth does not provide a viable way to maintain TargetedIDs in a production environment. Our method stores TargetedIDs in external databases. generating the values only as needed. Redundant databases, with automatic replication and failover, are provided.
| Table* | Contents | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| tgtids | one row for each user/sp_domain combination. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pno | a unique number assigned by us to each provider domain (which may contain multiple SPs). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| regid | our invarient user identifier (uwRegID). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| tgtid | the TargetID: 128 random bits (from MD5), as a hex string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sp_domains | one row for each provider domain. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pno | the provider domain number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| domain_name | the provider domain's name | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sps | one row for each service provider . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pno | the SP's provider domain number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| spid | SP's providerID | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A daemon process, running on each database system, performs continual maintenance of the system.
These daemons also report the status of their database to the University's monitoring system.
This example shows a TargetedID generated from the SP id and the user's registry id, rather that her userid.
<SimpleAttributeDefinition
id="urn:uw:dir:attribute-def:uwRegID"
sourceName="uwRegID">
<DataConnectorDependency requires="directory"/>
</SimpleAttributeDefinition>
<SimpleAttributeDefinition
id="urn:mace:dir:attribute-def:eduPersonTargetedID"
smartScope="washington.edu"
sourceName="tid">
<DataConnectorDependency requires="tgtdb"/>
</SimpleAttributeDefinition>
<CustomDataConnector id="tgtdb" class="edu.washington.UWJDBCDataConnector"
dbURL0="jdbc:postgresql://first_db_host/tgtids?user=user&password=password"
dbURL1="jdbc:postgresql://second_db_host/tgtids?user=user&password=password"
dbDriver="org.postgresql.Driver"
maxActive="10"
maxIdle="5">
<Query>select tid(?,?)</Query>
<AttributeDependency requires="urn:uw:dir:attribute-def:uwRegID"/>
<StatementCreator class="edu.washington.DependencyStatementCreator">
<Parameter type="String"
attributeName="urn:uw:dir:attribute-def:uwRegID"
nullMissing="false"></Parameter>
<Parameter type="String"
attributeName="%REQUESTER%"
nullMissing="false"></Parameter>
</StatementCreator>
</CustomDataConnector>
|
Jim Fox UW Technology Identity and Access Management University of Washington fox@washington.edu |
© 1983-2009, University of Washington