Skip to main content

Create a user

Contributors netapp-aoife dmp-netapp

You can create a user with specific credentials and a pre-defined role. You can also optionally restrict the user's access to specific namespaces.

Step 1: Select a user name

Perform the workflow List users and select an available name not currently in use.

Step 2: Create the user

Perform the following REST API call to create a user. After successful completion of the call, the new user will not yet be usable.

HTTP method and endpoint

This REST API call uses the following method and endpoint.

HTTP method Path

POST

/accounts/{account_id}/core/v1/users

Curl example
curl --request POST \
--location "https://astra.netapp.io/accounts/$ACCOUNT_ID/core/v1/users" \
--include \
--header "Accept: */*" \
--header "Authorization: Bearer $API_TOKEN" \
--data  @JSONinput
JSON input example
{
  "type" :  "application/astra-user",
  "version" : "1.1",
  "firstName" : "John",
  "lastName" : "West",
  "email" : "jwest@example.com"
}
JSON output example
{
    "metadata": {
        "creationTimestamp": "2022-11-20T17:23:15Z",
        "modificationTimestamp": "2022-11-20T17:23:15Z",
        "createdBy": "a20e91f3-2c49-443b-b240-615d940ec5f3",
        "labels": []
    },
    "type": "application/astra-user",
    "version": "1.2",
    "id": "d07dac0a-a328-4840-a216-12de16bbd484",
    "authProvider": "local",
    "authID": "jwest@example.com",
    "firstName": "John",
    "lastName": "West",
    "companyName": "",
    "email": "jwest@example.com",
    "postalAddress": {
        "addressCountry": "",
        "addressLocality": "",
        "addressRegion": "",
        "streetAddress1": "",
        "streetAddress2": "",
        "postalCode": ""
    },
    "state": "active",
    "sendWelcomeEmail": "false",
    "isEnabled": "true",
    "isInviteAccepted": "true",
    "enableTimestamp": "2022-11-20T17:23:15Z",
    "lastActTimestamp": ""
}

Step 3: Optionally select the allowed namespaces

Perform the workflow List the namespaces and select the namespaces you want to restrict access to.

Step 4: Bind the user to a role

Perform the following REST API call to bind the user to a role. The example below places no restrictions on the namespace access. See Enhanced RBAC with namespace granularity for more information.

HTTP method and endpoint

This REST API call uses the following method and endpoint.

HTTP method Path

POST

/accounts/{account_id}/core/v1/roleBindings

Curl example
curl --request POST \
--location "https://astra.netapp.io/accounts/$ACCOUNT_ID/core/v1/roleBindings" \
--include \
--header "Accept: */*" \
--header "Authorization: Bearer $API_TOKEN" \
--data  @JSONinput
JSON input example
{
  "type" :  "application/astra-roleBinding",
  "version" : "1.1",
  "userID" : "d07dac0a-a328-4840-a216-12de16bbd484",
  "accountID" : "29e1f39f-2bf4-44ba-a191-5b84ef414c95",
  "role" : "viewer",
  "roleConstraints": [ "*" ]
}

Step 5: Create a credential

Perform the following REST API call to create a credential and associate it with the user. This example uses a password which is provided as a base64 value. The name property should contain the ID of the user returned in the previous step. The input property change must also be encoded in base64 and determines if the user must change their password at first login (true or false).

Note This step is only required with Astra Control Center deployments using local authentication. It is not needed with Astra Control Center deployments using LDAP or with Astra Control Service deployments.
HTTP method and endpoint

This REST API call uses the following method and endpoint.

HTTP method Path

POST

/accounts/{account_id}/core/v1/credentials

Curl example
curl --request POST \
--location "https://astra.netapp.io/accounts/$ACCOUNT_ID/core/v1/credentials" \
--include \
--header "Accept: */*" \
--header "Authorization: Bearer $API_TOKEN" \
--data  @JSONinput
JSON input example
{
  "type" :  "application/astra-credential",
  "version" : "1.1",
  "name" : "d07dac0a-a328-4840-a216-12de16bbd484",
  "keyType" : "passwordHash",
  "keyStore" : {
      "cleartext" : "TmV0QXBwMTIz",
      "change" : "ZmFsc2U="
  },
  "valid" : "true"
}