SmarterApp Logo
OpenDJ Installation Checklist
2024-03-26 14:03:06 -0400 |

Overview

Item Description
Purpose LDAP server for TDS user accounts
Communicates With OpenAM
ART
Repository Location https://github.com/SmarterApp/IM_OpenDJ
Additional Documentation SBAC OpenDJ Installation
SBAC SSO Design

Instructions

Create AWS Instance

Configure SFTP Server for ART -> OpenDJ Integration on AWS Instance


ubuntu@opendj-deploy:/home/art_userftp$ sudo dpkg --get-selections | grep openssh-sftp-server
openssh-sftp-server       install

Match group [name of user group added previously]
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    PasswordAuthentication yes
Match group filetransfer
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    PasswordAuthentication yes
Match group sftpusers
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    PasswordAuthentication yes

Create SFTP User Account

Install OpenDJ on AWS Instance

Update Perl Scripts That Process User Data

Update sbacWatchXMLFolder.pl

my $inputXMLFileDir    = "/opt/dropbox/sftp_root";

Update sbacProcessXML.pl

my $inputXMLFileDir    = "/opt/dropbox";         # folder where the XML files are uploaded
my $processedFileDir   = "/opt/scripts/sbacXMLFiles";      # folder where the XML files are stored after processing
my $httpResponseServer = "https://www.example.com/callback/";   # HTTP server for callback response
my $ldapHost           = "localhost";                      # host name of the OpenDJ server
my $ldapPort           = "1389";                           # port number of the OpenDJ server
my $ldapBindDN         = "cn=SBAC Admin";                  # replace with the bindDN of a service account or rootDN with permissions
my $ldapBindPass       = "cangetin";                  # replace with password of the OpenDJ service account

my $ldapBaseDN         = "ou=People,dc=smarterbalanced,dc=org";   # location where the users may be found
my $ldapTimeout        = "10";                             # how long to wait for a connection to the LDAP server before timing out

# Email Variables - these variables are specific to subroutines which generate emails

my $fromAddress       = 'Smarter-DoNotReply@example.com';  # all email will come from this email address
my $fromPerson        = 'Smarter-DoNotReply';              # the name of the person sending the email
my $emailAddrOverride = 'bill.nelson@identityfusion.com';  # when $emailOverride flag is set, send recipient's email to this addr
my $adminEmail        = 'bill.nelson@identityfusion.com';  # email address of user who is monitoring script results
my $emailServer       = "mail.example.com";                # replace with your email server
my $defaultPassword   = "password123";                       # default password for test users
#!/bin/sh
su -c "perl /opt/scripts/sbacWatchXMLFolder.pl" opendj &

Verification

Create Prime User Account

<?xml version='1.0' encoding='UTF-8'?>
<Users>
<User Action="ADD">
  <UUID>[CREATE-UNIQUE_UUID_HERE]</UUID>
  <FirstName>[CHOOSE-FIRST_NAME]</FirstName>
  <LastName>[CHOOSE-LAST_NAME]</LastName>
  <Email>[CHOOSE-EMAIL]</Email>
  <Phone/>
  <Role>
    <RoleID></RoleID>
    <Name>Administrator</Name>
    <Level>CLIENT</Level>
    <ClientID>[CHOOSE-CLIENT_IDENTIFIER_NUMBER]</ClientID>
    <Client>[CHOOSE-UNIQUE_CLIENT_NAME]</Client>
    <GroupOfStatesID/>
    <GroupOfStates/>
    <StateID/>
    <State/>
    <GroupOfDistrictsID/>
    <GroupOfDistricts/>
    <DistrictID/>
    <District/>
    <GroupOfInstitutionsID/>
    <GroupOfInstitutions/>
    <InstitutionID/>
    <Institution/>
  </Role>
</User>
</Users>

An example of the prime_user_testfile_.xml file with placeholders replaced by example values:

<?xml version='1.0' encoding='UTF-8'?>
<Users>
<User Action="ADD">
  <UUID>2503a564-fde8-11e5-86aa-5e5517507c66</UUID>
  <FirstName>Prime</FirstName>
  <LastName>User</LastName>
  <Email>prime.user@example.com</Email>
  <Phone/>
  <Role>
    <RoleID></RoleID>
    <Name>Administrator</Name>
    <Level>CLIENT</Level>
    <ClientID>98765</ClientID>
    <Client>PRIME_USER_CLIENT</Client>
    <GroupOfStatesID/>
    <GroupOfStates/>
    <StateID/>
    <State/>
    <GroupOfDistrictsID/>
    <GroupOfDistricts/>
    <DistrictID/>
    <District/>
    <GroupOfInstitutionsID/>
    <GroupOfInstitutions/>
    <InstitutionID/>
    <Institution/>
  </Role>
</User>
</Users>

Verify SFTP Connectivity

back to Deployment Checklists

As of Fall 2018 the Smarter Balanced Test Delivery System (TDS) is no longer supported.

The code base and documentation for the TDS is available within the Smarter Balanced GitHub repository.

Creative Commons License Unless stated otherwise, all content on SmarterApp.org is licensed under a Creative Commons Attribution 4.0 International License.