Multiple Authentication

Hello, I would like to have at least 3 AUTH passwords, however the routers only authenticate in the first one? How can I do this?

cwmp.auth AUTH(“test”, “12345678”) OR AUTH(“teste1”, “87654321”)
cwmp.connectionRequestAuth AUTH(serialNumber, “12345678”) OR AUTH(serialNumber, “87654321”)

That would work. For connection request auth, let GenieACS handle that. The default inform script sets a custom connection request un/pw for each CPE. If your CPEs already have a connection request un/pw programmed into them, then you could so something like this:

AUTH(username, password) OR AUTH(serialNumber, "12345678") OR AUTH(serialNumber, "87654321")

This is the default inform script incase your install is missing it:

// Device ID as username
const username = declare("DeviceID.ID", {value: 1}).value[0]

// Password will be fixed for a given device because Math.random() is seeded with device ID by default.
const password = Math.trunc(Math.random() * Number.MAX_SAFE_INTEGER).toString(36);

const informInterval = 300;

// Refresh values daily
const daily = Date.now(86400000);

// Unique inform offset per device for better load distribution
const informTime = daily % 86400000;

declare("InternetGatewayDevice.ManagementServer.ConnectionRequestUsername", {value: daily}, {value: username});
declare("InternetGatewayDevice.ManagementServer.ConnectionRequestPassword", {value: daily}, {value: password});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformEnable", {value: daily}, {value: true});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformInterval", {value: daily}, {value: informInterval});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformTime", {value: daily}, {value: informTime});

declare("Device.ManagementServer.ConnectionRequestUsername", {value: daily}, {value: username});
declare("Device.ManagementServer.ConnectionRequestPassword", {value: daily}, {value: password});
declare("Device.ManagementServer.PeriodicInformEnable", {value: daily}, {value: true});
declare("Device.ManagementServer.PeriodicInformInterval", {value: daily}, {value: informInterval});
declare("Device.ManagementServer.PeriodicInformTime", {value: daily}, {value: informTime});

Apparently the same thing is happening to me. I have 3 passwords, but, GenieACS is reading only the first auth values. If i set cwmp.ConnectionRequestAuth to:

AUTH("admin", "admin") OR AUTH("@dm1n", "@dm1n") OR AUTH(username, password)

I get the error “< DevicID >: Device is offline” for those that ConnectionRequestAuth.Password/Username are different than the first argument, and, if i set change the order the same happens and only the CPE that has the first un/pw got to authenticate.

It is a bit confused, i know. Sorry.

set cwmp.auth to true and try again. If that does not work then you have a problem somewhere else.

Isn’t cwmp.auth that one to authenticate CPE → ACS?

cwmp.auth CPE → ACS:

AUTH("username1", “password2”) OR AUTH(“username1”, “password2”)

cwmp.connectionRequestAuth ACS → CPE:

AUTH(username, password) OR AUTH(serialNumber, "12345678") OR AUTH(serialNumber, "87654321")

I thought the only cwmp config that receives a boolean value was cwmp.connectionRequestAllowBasicAuth. Correct me if i’m mistaken.