Hyperion Membership Provider is an authentication provider that allow to validate users (username + password) on Shared Service, as an alternative to the built-in validation provided by default on Asp.net.
At every login, the provider try to authenticate the user in Shared Server. On failure, it queries the local user database, so to allow a mixed authentication (Hyperion users + local users) and to preserve the functionality of the built-in provider.
While importing each user information such as username, first name, last name, email etc etc the provider does not store passwords in the local tables, which are therefore exclusively in Shared Service.
The provider has two applications: a JSP page that exposes a REST API that is queried by a DotNetNuke module to be installed at the FormWork portal (found in the annexes) and a schedulable task to synchronize periodically remote users with the local ones.

Operating Notes

The provider can import users from Shared Service in the local metadata database. The imported users are contained in the Hyperion groups from which you choose to start with the import (see later in this document).

Please note the following points


  1. In case of same names with local users or local roles, Shared Service values will be used.
  2. Every Hyperion group is mapped as a Role.
  3. The deletion feature affects only users whose Display Name contains '(Hyperion)' or whose Role description begins with 'Hyperion'.
  4. Membership in a newly created Role in FormWork depends on the user's membership to a Hyperion Shared Services group.
  5. Shared Services groups can be in hierarchy. During import phase the hierarchy is flattened, on a single level, united by the Role Group 'Hyperion'
  6. Users belonging to a more than zero level will also belong to the corresponding roles that the system creates for the child groups.

 

Installation

JSP Page

The JSP Page, whose content you can see at the end of this article, is saved on the web applications root folder in the server that hosts the workspace.

If your Hyperion version is less than Oracle 11.1.2.1, the webapp is run by Tomcat and the root folder is like {Hyperion root}\deployments\Tomcat5\Workspace\webapps\workspace

If you have a newer version of Hyperion, the webapp is run by a Web Logic server, you can find installation info in this guide.


DotNetNuke Module

The provider will install as a DotNetNuke extension:

  1. Log in FormWork portal as SuperUser (host)
  2. Surf to Host --> Extensions
  3. Click "Install Extension Wizard" bottom page
  4. Select the zip file containing the provider (present in {web_site_root}/DesktopModules/HyperionMembershipProvider/HyperionAuthenticationProvider_distr.zip)
  5. Click Next
  6. Accept the Licence Agreement
  7. Click Return


Configuration

  1. Log in FormWork portal as SuperUser (host)
  2. Surf to Admin --> Portam Management --> Extensions
  3. The installed provider is in the extensions group 'Authentication System'. Click the blue pen to the left of the provider Hyperion
  4. Fill in the required fields according to the following specifications:
    1. JspLocation: it indicates the complete JSP URL (please check the URL using the button 'Test connection')
    2. Username: the username that interrogates the Shared Services repository
    3. Password: the user password
    4. GroupList: a list of groups Hyperion separated by semicolon (ex: 'Administrators; Sales; CC') you want to dump.
  5. Save the configuration ('Update Authentication Settings')

The gui shows the read-only properties:
  • Active: it indicates wether the provider is the authentication method actually used
  • IsScheduled: it indicates if there is an operation to schedule the syncronization

First Use

  1. Complete the Configuration step 
  2. Make sure you can connect properly to the JSP through the button 'Test connection'
  3. Import users and groups through the button 'Import Hyperion users'
  4. Check that the import was successful and that the result is what you expect
  5. Activate the provider through the manual edit of the web.config as follows:

Under configuration / system.web change the node membership by changing the attribute defaultProvider in "HyperionMembershipProvider" and inserting in the child node providers the following two nodes:


<clear />

<add     name="HyperionMembershipProvider"

type="HyperionMembershipProvider.HyperionMembershipProvider, HyperionMembershipProvider"

             connectionStringName="SiteSqlServer"

             applicationName="DotNetNuke"

             description="Stores and retrieves membership data from Hyperion Shared Services and local SQL Server database"/>


Test a log in using an imported user.


Scheduling

Once the provider is installed, you can schedule the Hyperion user and groups synchronization using the portal scheduler and the available task.

In order to schedule the sync (Drop & Create of users and roles) you need to create a new schedule task as follows:

  1. Log in as SuperUser
  2. Surf Host --> Schedule
  3. Click 'Add item to schedule'
  4. Fill the form. 
    1. The field 'Full Class Name and Assembly' must be ‘HyperionMembershipProvider.HyperionSchedulableSyncronization, HyperionMembershipProvider’

 

Uninstall

  1. Log in as SuperUser
  2. Ensure that the provider is not the default authentication provider (not set as Active) restoring the original web.config.
  3. Delete any scheduled tasks for the automatic import.
  4. Surf Host --> Extensions
  5. Click the red cross near the provider
  6. Tick ‘Delete files’

  7. Click Next to uninstall

  8. Click Return to end the uninstall


Appendix ( web.config before and after the activation of the provider)


  

Before:

 

<configuration>

 

 [...]

 

 <system.web>

 

 <!-- default provider -->

 <membership defaultProvider="AspNetSqlMembershipProvider" userIsOnlineTimeWindow="15">

 <providers>

 <clear />

            

 </providers>

 </membership>

 </system.web>

 

 [...]

 

</configuration>



After:

 

<configuration>

 

 [...]

 

 <system.web>

 

 <!-- default provider -->

 <membership defaultProvider="HyperionMembershipProvider" userIsOnlineTimeWindow="15">

 <providers>

 <clear />

 <add name="HyperionMembershipProvider"

                       type="HyperionMembershipProvider.HyperionMembershipProvider, HyperionMembershipProvider"

                       connectionStringName="SiteSqlServer"

                       applicationName="DotNetNuke"

                       description="Stores and retrieves membership data from Hyperion Shared Services and local SQL Server database" />

 </providers>

 </membership>

 </system.web>

 

 [...]

 

</configuration>