GenieACS Serial Number Authentication

Hi everyone,

I have a genieacs server running v1.2.13.

I sell hundreds of routers on a weekly basis. My idea is to host a genieacs server for my customers but only support routers that was purchased from me. I have a list of all the serial numbers for all my routers as well as routers that are on the way, so I can prepare the acs even before the stock lands.

Is there a way to setup the server to use the serial as username and password? My current auth is cwmp.auth = AUTH(“myusername”, “mypassword”) and that works when setting up the router with these credentials. I just need the username and password to be the serial number.

UPDATE:

I have created an inform provision script:

// Device ID as user name
const username = declare(“DeviceID.SerialNumber”, {value: 1}).value[0]

// Device ID as password
const password = declare(“DeviceID.SerialNumber”, {value: 1}).value[0]

declare(“InternetGatewayDevice.ManagementServer.ConnectionRequestUsername”, {value: daily}, {value: username});
declare(“InternetGatewayDevice.ManagementServer.ConnectionRequestPassword”, {value: daily}, {value: password});
declare(“InternetGatewayDevice.ManagementServer.Username”, {value: daily}, {value: username});
declare(“InternetGatewayDevice.ManagementServer.Password”, {value: daily}, {value: password});
declare(“Device.ManagementServer.ConnectionRequestUsername”, {value: daily}, {value: username});
declare(“Device.ManagementServer.ConnectionRequestPassword”, {value: daily}, {value: password});
declare(“Device.ManagementServer.Username”, {value: daily}, {value: username});
declare(“Device.ManagementServer.Password”, {value: daily}, {value: password});

I also have a cwmp.auth.0 = AUTH(“myusername”, “mypassword”). The router connects with my username and password successfully. Once the connection happens, the inform script tells the router to use the serial number for both CPE > ACS and ACS > CPE to authenticate.

Then I have a cwmp.auth.1 = AUTH(“TheRouterSerialNumber”, “TheRouterSerialNumber”)

This works for me for now but I would prefer to use an EXT script to fetch the Serial from an external file rather than typing each router’s serial number for cwmp.auth.

I’m sure the above config is not even close to the way it should be. I consider myself well below a JavaScript noob. I’m just trying to figure it out as I go :slight_smile:

Any thoughts?

UPDATE:

My mistake. cwmp.auth.0 and cwmp.auth.1 was not working. I had to use:

cwmp.auth AUTH(“myusername”, “mypassword”) OR AUTH(“TheRouterSerialNumber”, “TheRouterSerialNumber”).