diff --git a/app/__init__.py b/app/__init__.py
index c30a7f15fe768cea4c82808aeb8b10d79d782177..d828e43312173889046d9434e5ba2d3a59112cc1 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -8,27 +8,47 @@ import vars
 import uuid
 from flask import Flask, redirect, url_for, request, render_template, flash, session
 from flask_bootstrap import Bootstrap
-import random
 
 
 def create_app(config_name):
-    app = Flask(__name__) # initialization of the flask app
-    Bootstrap(app) # allowing app to use bootstrap
+    app = Flask(__name__)  # initialization of the flask app
+    Bootstrap(app)  # allowing app to use bootstrap
 
-    @app.route('/', methods=['GET', 'POST']) # initial route to display the reg page
+    def get_authorized_user():
+        username_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.username_keys))
+        fullname_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.fullname_keys))
+        email_keys = list(filter(lambda key: (request.headers.get(key) is not None), vars.email_keys))
+
+        user = {
+            "username": (request.headers.get(username_keys[0]) if len(username_keys) > 0 else None),
+            "fullname": (request.headers.get(fullname_keys[0]) if len(fullname_keys) > 0 else None),
+            "email": (request.headers.get(email_keys[0]) if len(email_keys) > 0 else None),
+        }
+
+        return user
+
+    @app.route('/', methods=['GET', 'POST'])  # initial route to display the reg page
     def index():
 
         if 'uid' not in session:
-            session['uid']=str(uuid.uuid4())
+            session['uid'] = str(uuid.uuid4())
 
-        if "redir" in request.args and 'return_url' not in session: # check for redir arg in url
+        if 'user' not in session:
+            session["user"] = get_authorized_user()
+
+        if "redir" in request.args:  # check for redir arg in url
             session['return_url'] = request.args.get("redir")
+
         elif "redir" not in request.args and 'return_url' not in session:
             session['return_url'] = vars.default_referrer
+
         else:
             session['return_url'] = request.referrer
 
-        return render_template('auth/SignUp.html', room_id=session['uid'], referrer=session['return_url'])
+        return render_template('auth/SignUp.html', room_id=session['uid'],
+                               username=session['user'].get('username'),
+                               fullname=session['user'].get('fullname'), email=session['user'].get('email'),
+                               referrer=session['return_url'], cancel_url=vars.default_referrer)
 
     # misc page error catching
     @app.errorhandler(403)
diff --git a/app/static/img/Supercomputer-logo-final-01.jpg b/app/static/img/Supercomputer-logo-final-01.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2a9803927f3b2edde6895e94768ea3c572d256c4
Binary files /dev/null and b/app/static/img/Supercomputer-logo-final-01.jpg differ
diff --git a/app/static/scripts/function.js b/app/static/scripts/function.js
index 694ff191aaa2e9a4221412f1489f31ee84878ac1..45f9def541f9367b1cf71e5207af96dfdb894bc9 100644
--- a/app/static/scripts/function.js
+++ b/app/static/scripts/function.js
@@ -3,13 +3,41 @@ function displayloading() {
 }
 
 function request_account() {
-    socket.emit('request account', {
-        fullname: document.getElementById("fullname").value,
-        reason: document.getElementById("reason").value,
-        username: document.getElementById("bid").value
-    })
+    if (document.getElementById("username").checkValidity() &&
+        document.getElementById("fullname").checkValidity() &&
+        document.getElementById("email").checkValidity() &&
+        document.getElementById("reason").checkValidity()){
+
+        socket.emit('request account', {
+            username: document.getElementById("username").value,
+            fullname: document.getElementById("fullname").value,
+            email: document.getElementById("email").value,
+            reason: document.getElementById("reason").value
+        });
+    }
 }
 
+function autofill_form(username, fullname, email) {
+        let username_input = document.getElementById("username");
+        let fullname_input = document.getElementById("fullname");
+        let email_input = document.getElementById("email");
+
+        if ((username.localeCompare("None")) !== 0) {
+            username_input.value = username;
+            username_input.disabled = "true";
+        }
+
+        if ((fullname.localeCompare("None")) !== 0) {
+            fullname_input.value = fullname;
+            fullname_input.disabled = "true";
+        }
+
+        if ((email.localeCompare("None")) !== 0) {
+            email_input.value = email;
+            email_input.disabled = "true";
+        }
+    }
+
 function refresh() {
     document.location.reload(true);
 }
diff --git a/app/templates/auth/SignUp.html b/app/templates/auth/SignUp.html
index 891a09a663e1b0ed49f4d0bd2a13840cd8371f2c..4d08425c8fe74e8a98469fbd45c45eb6cd2831ae 100644
--- a/app/templates/auth/SignUp.html
+++ b/app/templates/auth/SignUp.html
@@ -11,6 +11,9 @@
     var socket = io.connect('http://' + document.domain + ':' + location.port);
 
     socket.on( 'connect', function() {
+
+        autofill_form("{{ username }}", "{{ fullname }}", "{{ email }}");
+
         socket.emit( 'join_room', {
             referrer: '{{ referrer }}'
         });
@@ -56,7 +59,7 @@
     <div class="container-fluid">
       <div class="navbar-header">
 	<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-9" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
-	<a class="navbar-brand" href="/">Research Computing</a>
+	<a class="navbar-brand" href="/">UAB Research Computing</a>
       </div>
       <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-9">
 	<ul class="nav navbar-nav">
@@ -75,34 +78,58 @@
     </div>
   </nav>
 </header>
-<div class="container content" role="main" style="width: 625px">
-
+<div class="container content" role="main">
     <div style="position:relative;">
-  <img alt="logo" height="auto" width="100%" style="margin-bottom: 20px" src="{{ url_for('static', filename='img/cheaha-logo-a605de0aecd3006b82a5ee30a6d0cb8cd9bf8b7e836296cc293eac746a4c2b11.png') }}">
-  <a href="https://tinyurl.com/cheahaAL" target="_blank">
-    <div style="float:left;position:absolute;display:block;left:310px;top:-6px;padding:10px 20px;"> </div>
-  </a>
-</div>
+        <img alt="logo" height="auto" width="300" style="margin-bottom: 20px" src="{{ url_for('static', filename='img/logo.svg') }}">
+        <a href="https://tinyurl.com/cheahaAL" target="_blank">
+        <div style="float:left;position:absolute;display:block;left:310px;top:-6px;padding:10px 20px;"> </div>
+        </a>
+    </div>
+
+    <div class="alert alert-warning announcement" role="alert">
+        <p>
+            (Welcome message placeholder)
+        </p>
+    </div>
 
 <!--   <h2>Hello, <span id="username">{{ user }}</span>!</h2> -->
 
-    <h2>Hi, </h2>
+
     <div id="test">
-    <form action="." method="post" onsubmit="">
-      <div class="signUpContainer">
-          <label><b><label for="username">Blazer Id: </label><br></b></label>
-            <input class="form-control" id="bid" name="bid" placeholder="Enter BlazerId" required="" type="text">
-          <label><b><label for="fullname">Full Name: </label><br></b></label>
-            <input class="form-control" id="fullname" name="fullname" placeholder="Enter Full Name" required="" type="text">
-          <label><b><label for="reason">Reason for Requesting Account: </label><br></b></label>
-            <textarea class="form-control" id="reason" name="reason" placeholder="Enter Reason for Account Request" required=""></textarea>
-          <input class="btn btn-primary btn-block" id="submit" name="submit" type="button" value="Submit" onclick="request_account()">
-
-        <div>
-            <strong id="error" style="color: #be051b; text-align: center;"></strong>
+    <form id="signup" data-toggle="validator" role="form">
+      <div class="form-group">
+          <label for="username" class="control-label">Blazer Id:</label>&#9;<input id="username" class="form-control"
+                                                             placeholder="Enter Username" required><br>
+      </div>
+        <div class="form-group">
+          <label for="fullname" class="control-label">Full Name:</label>&#9;<input id="fullname" class="form-control"
+                                                             placeholder="Enter Full Name" required><br>
+        </div>
+        <div class="form-group">
+          <label for="email" class="control-label">Email:</label>&#9;<input id="email" class="form-control"
+                                                      placeholder="Enter Email" required><br>
+        </div>
+        <div class="form-group">
+          <label for="reason" class="control-label">Reason for Requesting Account:</label><br>
+            <textarea class="form-control" id="reason" name="reason" placeholder="Enter Reason for Account Request" required></textarea>
         </div>
 
-      </div>
+          <div class="row-no-gutters">
+              <div class="col-lg-6">
+                  <div class="form-group">
+                      <button class="btn btn-danger btn-block" id="cancel"  type="button" onclick="window.location.replace('{{ cancel_url }}');">Cancel</button>
+                  </div>
+              </div>
+              <div class="col-lg-6">
+                  <div class="form-group">
+                      <button class="btn btn-primary btn-block" id="submit"  type="submit" onclick="request_account()">Submit</button>
+                  </div>
+              </div>
+          </div>
+
+          <div>
+            <strong id="error" style="color: #be051b; text-align: center;"></strong>
+        </div>
     </form>
     </div>
     </div>
diff --git a/requirements.txt b/requirements.txt
index 482a9fe0ddfc26bcf7cf63c749938f4c36f18f73..1ceecd0c59b972f99d90ad5b43226a69f0824106 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,11 +1,13 @@
 amqp==2.5.2
 billiard==3.6.2.0
+blinker==1.4
 celery==4.4.0
 Click==7.0
 dominate==2.4.0
 Flask==1.1.1
 Flask-Bootstrap==3.3.7.1
 Flask-SocketIO==4.2.1
+Flask-SSO==0.4.0
 Flask-Testing==0.7.1
 gevent==1.4.0
 greenlet==0.4.15
diff --git a/run.py b/run.py
index ff6b02509478326d87d84364bab4c9601b0025b2..bf4504124432a17abbb890f84905dd8b7653c442 100644
--- a/run.py
+++ b/run.py
@@ -19,7 +19,6 @@ app.config['SECRET_KEY'] = vars.key
 socketio = SocketIO(app, message_queue= vars.message_queue)
 
 
-
 @socketio.on('join_room')
 def on_room(json):
 
diff --git a/tasks.py b/tasks.py
index 7deec3a983efced1851970ae9359b17d211862ae..bec4dc82249c7069cbbc2b874459989522bee6e2 100644
--- a/tasks.py
+++ b/tasks.py
@@ -14,7 +14,7 @@ socketio = SocketIO(message_queue=vars.message_queue)
 
 
 def send_msg(event, room):
-   print("Post '{}' to room '{}'".format(event,room))
+   print("Post '{}' to room '{}'".format(event, room))
    socketio.emit(event, room=room)
 
 
diff --git a/vars.py b/vars.py
index 8314f9d955c4c3029bf374de2dee84fd74298817..b0df3908ffe3ee0c0e2f65fe06fb54723c7eb0a9 100644
--- a/vars.py
+++ b/vars.py
@@ -1,6 +1,14 @@
+# RabbitMQ vars (Fill in values to run)
 id = ''
-password = '' 
+password = ''
 key = ''
 broker_url =  'amqp://' + id + ':' + password + '@ohpc:5672/'
 message_queue =  broker_url + 'socketio'
+
+# App vars
 default_referrer = "https://docs.uabgrid.uab.edu/wiki/Cheaha_Quick_Start"
+
+# Form vars (Add keys for multiple configurations)
+username_keys = ["HTTP_UID"]
+fullname_keys = ["HTTP_DISPLAYNAME"]
+email_keys = ["HTTP_MAIL"]