Currently, there is no standard for what keys should be used in the metadata to identify gNMI/gNOI username and password when doing authentication.
By convention, the username and password are provided in the metadata with keys "username" and "password".
(see examples below).
It would be good to formalise this into the gNMI authentication reference spec here so that gNMI clients and servers can both be designed with this consensus.
Some examples of current gNMI clients providing "username" and "password" as keys in metadata:
Currently, there is no standard for what keys should be used in the metadata to identify gNMI/gNOI username and password when doing authentication.
By convention, the username and password are provided in the metadata with keys "username" and "password". (see examples below). It would be good to formalise this into the gNMI authentication reference spec here so that gNMI clients and servers can both be designed with this consensus.
Some examples of current gNMI clients providing "username" and "password" as keys in metadata:
gnmi_cli client: https://github.com/openconfig/gnmi/blob/d5360e33fc3b22effeaaaf55f345c1f950765bed/client/gnmi/credentials.go#L35
goarista client: https://github.com/aristanetworks/goarista/blob/6112fea8c7e028c64ae52412952b0a2142b8c2e9/gnmi/client.go#L311
gnmic client: https://github.com/karimra/gnmic/blob/d1b198f67a99fe2f228d6119569310ebb1a50be3/target/target.go#L140 Also note the other usages of
metadata.AppendToOutgoingContext(ctx, "username", *t.Config.Username)
andmetadata.AppendToOutgoingContext(ctx, "password", *t.Config.Password)
pygnmi client https://github.com/akarneliuk/pygnmi/blob/3090d23ae32658026a244390a296f6ade01e9fb3/pygnmi/client.py#L54