7 VNFM User Management

(Required) Enter introductory text here, including the definition and purpose of the concept. The initial build is delivered with two pre-installed users that are admin and reader. The user must login to VNFM first using the given credentials to generate an X-Token for the admin.

The password of the admin must be changed using the generated X-Token, and a new password must be stored using the Change Password API.

The new users is registered using the Register to VNFM API.

Once the registration request is sent by the user, the admin has the access to view the registration request instance with the help of the X-Token through the Query all user instances API.

The admin can provision the incoming requests and add the user request using the Provision and Add API.

Upon the successful registration, the user can simply login to VNFM using the credentials to generate an X-Token and use it for other LCM-Operations.

7.1 Access Control in VNFM

The admin user has access to use the available APIs. However, the user with reader privileges, is restricted to use the following:

  • Query All VNF Instances:
    https://<VNFM_HOST_IP>:8443/vnflcm/v1/vnf_instances/
  • Query Individual VNF Instance:
    https://<VNFM_HOST_IP>:8443/vnflcm/v1/vnf_instances/{ vnfInstanceId
          }
  • Query All LCM Operation:
    https://<VNFM_HOST_IP>:8443/vnflcm/v1/vnf_lcm_op_occs
  • Query Individual LCM Operation:
    https://<VNFM_HOST_IP>:8443/vnflcm/v1/vnf_lcm_op_occs/{ vnfLcmOpOccId
          }
  • Query Heal VNF requests:
    https://<VNFM_HOST_IP>:8443/vnflcm/v1/vips/{vip}/heal
  • Query VNFM State Information:
    https://<VNFM_HOST_IP>:8443/vnflcm/v1/vnfmState

7.2 Login to VNFM

The user must provide the username and the password to generate an authentication token ergo X-Token.

Sample Request: Login to VNFM request generated

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnfm_login

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Example for Login:

{

"username": "xxxx",

"password": "xxxx"

}

Sample Response: Login to VNFM Response

201 Created

Content-Type: application/json

X-Token: Token generated after login

Request URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnfm_login

{

"tokenId":"eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJJRCBvZiB0b2tlbiA6IHRva2VuX1ZORk0iLCJpYXQiOjE1NzMwMjEyMDYsInN1YiI6IlN1YmplY3Qgb2YgSldUIiwiaXNzIjoiSXNzdWVyIG9mIFRva2VuOiBPcmFjbGUtRFNSIiwiYXVkIjoiYXVkaWVuY2UgOiBhZG1pbiIsImV4cCI6MTU3MzAzOTIwNn0.Ep-lKGBZqaO9u_cpj1bSN8DBpWvZoRMQTOYNr18KY8w"

}

Where, username is the Username of the registered user and password is the Password of the registered user.

7.3 Register to VNFM

The new user must provide the username, the password & the access to send a successful registration request.

Note:

A valid password must be in range between 8 to 31 characters, with at least one digit, at least one lowercase letter, at least one uppercase letter, at least one special character, and should not contain white spaces.

Sample Request: Register to VNFM request generated

URL: https://<<VNFM HOST IP >>:8443/vnflcm/v1/vnfm_register

Accept: application/json

Content-Type: application/json

X-Token: Token generated after login

Example for Registration:

{

"username": "xxxx",

"password": "xxxx",

"access": "read/admin"

}

Sample Response: Register to VNFM Response

201 Created

Content-Type: application/json

X-Token: Token generated after login

Request URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnfm_register

{

"response": "Registration Request Sent"

}

Where, username is the Username of the new user, password is the Password of the new user and access is the scope of the new user.

7.4 Query All User Instances

The admin must provide the X-Token to view all the incoming registration requests.

Note:

Only the admin has the access to use this API.

Sample Request: Querying all user instances request generated

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/view_registration_requests
Accept: X-Token
Content-Type: Text
X-Token: Token generated after login
 
Example for querying all users:

eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJJRCBvZiB0b2tlbiA6IHRva2VuX1ZORk0iLCJpYXQiOjE1NzMwMjEyMDYsInN1YiI6IlN1YmplY3Qgb2YgSldUIiwiaXNzIjoiSXNzdWVyIG9mIFRva2VuOiBPcmFjbGUtRFNSIiwiYXVkIjoiYXVkaWVuY2UgOiBhZG1pbiIsIm4cCI6MTU3MzAzOTIwNn0.Ep-lKGBZqaO9u_cpj1bSN8DBpWvZoRMQTOYNr18KY8w

Sample Response: Querying all user instances Response

201 Created
Content-Type: application/json
X-Token: Token generated after login
Request URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/view_registration_requests
{
"user": [
{
"username": "xx",
"password": "xx",
"access": "read"
},
{
"username": "xx",
"password": "xx",
"access": "read"
},
{
"username": "xx",
"password": "xx",
"access": "admin"
}
]
}

Where, X-Token is the authentication token generated by the admin.

7.5 Change Password of the User

The user must provide the username, old password, new password & the X-Token to change the existing credentials in the system.

Note:

A valid password must be in range between 8 to 31 characters, with at least one digit, at least one lowercase letter, at least one uppercase letter, at least one special character, and should not contain white spaces.

Sample Request: Change Password request generated

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/change_password
Accept: application/json
Content-Type: application/json
X-Token: Token generated after login

Example for changing the password for a user:

X-Token:
eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJJRCBvZiB0b2tlbiA6IHRva2VuX1ZORk0iLCJpYXQiOjE1NzMwMjEyMDYsInN1YiI6IlN1YmplY3Qgb2YgSldUIiwiaXNzIjoiSXNzdWVyIG9mIFRva2VuOiBPcmFjbGUtRFNSIiwiYXVkIjoiYXVkaWVuY2UgOiBhZG1pbiIsIm4cCI6MTU3MzAzOTIwNn0.Ep-lKGBZqaO9u_cpj1bSN8DBpWvZoRMQTOYNr18KY8w
{
"username": "xxx",
"newPassword": "xxx",
"oldPassword": "xxx"
}

Sample Response: Change Password Response

201 Created
Content-Type: application/json
X-Token: Token generated after login
Request URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/vnf_register/change_password
{
"response":"Password successfully changed."
}

Where, username is the username of the existing user, newPassword is the new password to be set for the user and oldPassword is the existing password of the user.

7.6 Provision and Add User to VNFM

The admin must provide the Username, Login credentials and the X-Token to add the credentials in the system.

Sample Request: Provision and Adding the users request generated

URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/provision_and_add
Accept: application/json
Content-Type: application/json
X-Token: Token generated after login
 
Example for provisioning and adding a user:

X-Token :
eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJJRCBvZiB0b2tlbiA6IHRva2VuX1ZORk0iLCJpYXQiOjE1NzMwMjEyMDYsInN1YiI6IlN1YmplY3Qgb2YgSldUIiwiaXNzIjoiSXNzdWVyIG9mIFRva2VuOiBPcmFjbGUtRFNSIiwiYXVkIjoiYXVkaWVuY2UgOiBhZG1pbiIsIm4cCI6MTU3MzAzOTIwNn0.Ep-lKGBZqaO9u_cpj1bSN8DBpWvZoRMQTOYNr18KY8w
{
"username": "xxx",
"password": "xxx",
"access": "read/admin"
}

Sample Response: Provision and Adding Response

201 Created
Content-Type: application/json
X-Token: Token generated after login
Request URL: https://<<VNFM HOST IP>>:8443/vnflcm/v1/provision_and_add
{
"response":"Registered successfully."
}

Where, username is the Username of the user, password is the Password of the user and access is the scope of the user.