The Ed-Fi “Classic Dashboards” are no longer supported through the Ed-Fi Alliance. You can still receive support and maintenance through the Ed-Fi vendor community. Please look at any of the vendors’ dashboard solutions on the Registry of Ed-Fi Badges or the Ed-Fi Starter Kits if you are looking for a visualization solution to use with the Ed-Fi ODS. This documentation will remain available to assist existing Classic Dashboard implementers.

File-Based Authentication

The techniques described on this page are useful for development but not suitable for production.

Identify an Authentication File Directory

The Ed-Fi Dashboards application supports a variety of authentication methods suitable for production environments. However, file-based authentication can be useful for initial development and developer testing because the technique avoids the complexities of Active Directory or other integration-based authentication. To set up file-based authentication, follow the steps below.

Look in the Web.config file of the EdFi.Dashboards.SecurityTokenService.Web project and find the credentialsFilePath setting under appSettings. This is the directory where an auth.txt file will be stored. You can change the path to store the file in another location. If the credentialsFilePath setting does not exist, add it under the appSettings section.

Create Authentication File

Create an auth.txt file (example below). This file has a list of test users that will have access to the system. The comma-delimited list of attributes for a user are as follows - LoginId, password, start date from which the login is valid, end date by which the login is invalid, e-mail address, and staff category. For the staff category, use "LEA System Administrator", "Superintendent", "Principal", "Assistant Principal", "School Administrative Support Staff", "Teacher", or "School Administrator".

JoeClark,cH9FrU6e,01/01/2010,01/01/2050,JoeClark@example.com,Superintendent
SandyMcMann,5UsAcuVu,01/01/2010,01/01/2050,SandyMcMann@example.com,LEA System Administrator

Link to Existing User by E-mail Address

Find a user in the Dashboard database for which you would like to add a login account. Add a corresponding entry in the auth.txt with an e-mail address in the text file that maps to the user's e-mail address in the database. You may have to add an e-mail address for them in the database.

Enable File-Based Authentication

In the EdFi.Dashboards.SecurityTokenService.Web project, open Utilities\CastleWindsor\Development\ConfigurationSpecifictInstaller.cs. Ensure the methods below exist in the class. If they do not, add the methods below to the class:

 	protected override void RegisterIAuthenticationProvider(IWindsorContainer container)
  	{
		var config = GetConfigValueProvider(container);
        container.Register(Component
                .For<IAuthenticationProvider>()
                .ImplementedBy<TextFileAuthenticationProvider>()
                .DependsOn(Property.ForKey("credentialsFilePath").Eq(config.GetValue("credentialsFilePath"))));
    }
	protected override void RegisterIUserRolesProvider(IWindsorContainer container)
    {
		var registrar = new ChainOfResponsibilityRegistrar(container);
		var types = new[]
		               {
		                    typeof (PositionTitleUserClaimSetsProvider),
                            typeof (StaffCategoryUserClaimSetsProvider)
		               };


		registrar.RegisterChainOf<IUserClaimSetsProvider<ClaimsSet, EdFiUserSecurityDetails>, 
										NullUserClaimSetsProvider<ClaimsSet, EdFiUserSecurityDetails>>(types);
	}
 
	private static IConfigValueProvider GetConfigValueProvider(IWindsorContainer container)
    {
		IConfigValueProvider config;

        try
        {
            config = container.Resolve<IConfigValueProvider>();
        }
        catch (Exception ex)
        {
            throw new ConfigurationErrorsException("Unable to resolve the IConfigValueProvider while registering Demo user role provider.  
													The configuration value provider is used to read the 'credentialsFilePath' setting from the web.config
													appSettings section to supply to the service.  Make sure the IConfigValueProvider 
													is being registered with the container before the IUserRolesProvider.", ex);
        }
        return config;
    }

Once these steps are performed, developers should be able to log in to the dashboards using the credentials added to the auth.txt file.