QR Code Registrations with TAK

QR Code Registrations with TAK

Enrolling clients into your TAK ecosystem can be troubling sometimes. Unless you have a very well established standard operating procedure (SOP) and trained operators you can find yourself walking the dog for an end user for a couple of hours.

"Download this .zip, using Import, select the .zip, you will be asked for your credentials enter them then, let me know if you have any issues...."

The back and forth until you finally get the client connected, then you're off to the next customer. With QR codes this simplifies the process which we'll cover below.

TL:DR

Using QRCode-Monkey we can create QR codes to quickly onboard end users to our TAK Server - as long as its public facing and all the ports-protocols are allowed through any firewalls in the path.

  • ATAK
tak://com.atakmap.com/enroll?host={takserver}&username={username}&token={token/password}
tak://com.atakmap.com/import?url={URL-encoded Link}
tak://com.atakmap.com/preference?key1={key}&type1={boolean/string/etc}&value1={value}
  • iTAK
TAK Server,my.takserver.us,8089,ssl

ATAK

ATAK 5.1 introduced the ability to handle URLS with the prefix tak:// to handle passing information such as in TEXT based QR Codes. Using a QR code for example, when scanned using the encoded tak:// string an intent is executed and processed by the ATAK internal processes. Currently this supports three (3) processes: enroll, import, and preference.

com.atakmap.app/enroll

This method allows the ability to create an enrollment QR code per client. The credentials are passed within the URL string as plaintext and the use case for this is very specific - you need to get people enrolled fast for safety and you are not using channels.

Variable Description Acceptable Values
host Target TAK Server [IPAddress | FQDN]
username TAK credential to be used string
token TAK token/password to be used string
tak://com.atakmap.app/enroll?host=takserver.com&username=john.doe&token=password

The above code block will open ATAK and connect to takserver.com with the credentials of john.doe and the password of password.

⚠️
Warning: I would use this method in a very controlled environment, and very well established SOPs that cover auditing and compliance for security reasons.

com.atakmap.app/import

This method can be used to have a client download a data package or other supported format using the url-encoded URL within the QR code. Examples of use cases can be a URL to an enrollment package, Map Sources, offline imagery, pre-mission planning, etc.

Variable Description Acceptable Values
url url pointing to the target file encoded with html character codes string
tak://com.atakmap.com/import?url=https%3A%2F%2Fdomain%2Fpath%2Fto%2Ffile%2Fdatapackage.zip

The above will attempt to download datapackage.zip from https://domain/path/to/file/datapackage.zip

📓
Note: More info on HTML URL encoding ASCII Encoding Reference` << Here. This is where https%3A%2F%2F is equal to https://

com.atakmap.app/preference

This method allows for some customization of the ATAK preferences that are not passed through enrollment. Maybe you want to have QR codes that are specific to certain ATAK preferences. Or instead of walking through the menu with a user have them scan a QR code post enrollment if you didn't want to modify the config.pref` of the enrollment data package too much.

Variable Description Acceptable Values
key[n] Preference key to reference string
type[n] The preference key type [string | boolean | long | int]
value[n] Value for the preference key string
tak://com.atakmap.com/preference?key1=locationTeam&type1=string&value1=Dark Blue&key2=atakRoleType&type2=string&value2=Team Member&key3=coord_display_pref&type3=string&value3=UTM&key4=alt_display_agl&type4=boolean&value4=true

The above will set the locationTeam to Dark Blue, atakRoleType` to Team Member, the coord_display_pref` to UTM, and the alt_display_agl` to true. The ATAK Preference Key can be found here.

iTAK

iTAK does not support the same features of ATAK; however, using a QR code we can pass the Connect with Credentials or Quick Connect capabilities. When using this method the iTAK user will be prompted for credentials to connect to the TAK Server. Again, similar to Connect with Credentials [iTAK] or Quick Connect [ATAK].

Variable Description
serverDescription TAK Server Description
serverURL Target TAK Server address
port 8089
protocol ssl
serverDescription,serverURL,port,protocol

Summary

QR codes can be useful in enrollment and customized setups. If you know the basic syntax you could script something out or provide a web frontend that when you enter the minimal values it generates the QR code for you. The options could be endless and is only limited to your imagination.