Old Release

This documentation relates to an old version of VIVO, version 1.10.x. Looking for another version? See all documentation.

There are three elements in the linkage between a User Account and a Profile page:

  • The user account holds the externalAuthId
  • runtime.properties specifies the URI of the matching property
  • The profile page must have a property with that URI whose value matches the externalAuthId. (The property value is either a String or an untyped literal.)

A user account may have an externalAuthId

  • The externalAuthId is optional.

  • There are several ways to create a externalAuthId:

    • If you are using internal authentication – managed within VIVO — then each account must be created by an admin, and the admin may choose to set the externalAuthId to a useful value.

    • If you are using external authentication – Shibboleth, or the like – then when a user without an account passes authentication, an account is created auto-magically. The externalAuthId is set to the user's Shibboleth ID.

    • Regardless of the type of authentication, you could choose to ingest the information for the user accounts, and create the externalAuthId as part of that ingest.

  • In any case, the externalAuthId can be used to link to the user's profile page.
  • This info is stored in the userAccounts model.
  • You can confirm this by going to the SiteAdmin page, clicking on "Ingest Tools", then "Manage Jena Models", then the button labelled "RDB Models", then the "output model" link under vitro-kb-userAccounts. The output should contain statements that look something like this:
  • I don't know what would happen to a user with more than one one externalAuthID. Probably VIVO will arbitrarily choose among them.

runtime.properties may contain a value for selfEditing.idMatchingProperty

  • You can confirm this value by looking in the vivo.all.log file in Tomcat logs. Each time VIVO starts up, the first entry written to the log contains all of the properties from runtime.properties. It helps to inspect this if you might possibly be reading the wrong runtime.properties file.

  • At Cornell, ours looks like this:

       selfEditing.idMatchingProperty = http://vivo.cornell.edu/ns/hr/0.9/hr.owl#netId

The profile page may match the externalAuthId on the user account

  • To associate a profile page with a user account, the Individual must have a data property whose URI is the one from runtime.properties, and whose value is equal to the externalAuthId of the user account.
  • For example, the Individual object that forms the basis for my profile page contains a statement like this:

    <http://vivo.cornell.edu/individual/JamesBlake>
        <http://vivo.cornell.edu/ns/hr/0.9/hr.owl#netId>
        "jeb228" 
        .
    
  • You can confirm this by logging in as an admin, navigating to the profile page, clicking on "edit this individual" and then the button labelled "Raw Statements with this Resource as Subject"
  • In the example above, the "netId" field is set to an untyped Literal. A String Literal will work also.
  • No labels