creation

« Previous section Next section »

UCloud Developer Guide / Core / Users / User Creation

User Creation

Users form the basis of all authentication in UCloud.

Rationale

Users in UCloud are authenticated in one of several:

  1. WAYF: The user is created on first login by using their login credentials from WAYF (Where Are You From) which is a identity federation allowing the reuse of logins from most danish and north atlantic research and education centers on external sites.

  2. PASSWORD: The users is created by an ADMIN of the system. This is mainly used to give access to people outside WAYF. When a user is a PASSWORD user then there is also a requirement of 2FA. The 2FA is setup after first login.

  3. Alternatively, users can also be authenticated using one of the configured OpenIdConnect providers. None are currently configured for the production system.

Each user has a role defining their privileges on the UCloud system. See Role for more details.


⚠️ WARNING: The API listed on this page will likely change to conform with our API conventions. Be careful when building integrations. The following changes are expected:

  • RPC names will change to conform with the conventions

  • RPC request and response types will change to conform with the conventions

  • RPCs which return a page will be collapsed into a single browse endpoint

  • Some property names will change to be consistent with Resources


Table of Contents

1. Remote Procedure Calls

2. Data Models

Remote Procedure Calls

getUserInfo

Request information about the current user.

lookupEmail

Request the email of a user.

lookupUserWithEmail

lookupUsers

retrieveOptionalUserInfo

verifyUserInfo

Verifies a change in user info (typically accessed through an email)

changePassword

Request change of the password of the current user (if PASSWORD user).

changePasswordWithReset

Request reset of password of a PASSWORD user.

This request can only be called by other services, and is used by the PasswordResetService to reset a user's password in case they are unable to log in. Read more in Password Reset.

createNewUser

Request creation of a new PASSWORD user.

updateOptionalUserInfo

updateUserInfo

Request update of information about the current user.

Data Models

AuthenticationTokens

data class AuthenticationTokens(
    val accessToken: String,
    val refreshToken: String,
    val csrfToken: String,
)
Properties


OptionalUserInformation

data class OptionalUserInformation(
    val organizationFullName: String?,
    val department: String?,
    val researchField: String?,
    val position: String?,
)
Properties


UserLookup

data class UserLookup(
    val subject: String,
    val role: Role,
)
Properties


ChangePasswordRequest

data class ChangePasswordRequest(
    val currentPassword: String,
    val newPassword: String,
)
Properties


ChangePasswordWithResetRequest

data class ChangePasswordWithResetRequest(
    val userId: String,
    val newPassword: String,
)
Properties


CreateSingleUserRequest

data class CreateSingleUserRequest(
    val username: String,
    val password: String?,
    val email: String?,
    val role: Role?,
    val firstnames: String?,
    val lastname: String?,
    val orgId: String?,
)
Properties


LookupEmailRequest

data class LookupEmailRequest(
    val userId: String,
)
Properties


LookupUserWithEmailRequest

data class LookupUserWithEmailRequest(
    val email: String,
)
Properties


LookupUsersRequest

data class LookupUsersRequest(
    val users: List<String>,
)
Properties


UpdateUserInfoRequest

data class UpdateUserInfoRequest(
    val email: String?,
    val firstNames: String?,
    val lastName: String?,
)
Properties


GetUserInfoResponse

data class GetUserInfoResponse(
    val email: String?,
    val firstNames: String?,
    val lastName: String?,
    val organization: String?,
)
Properties


LookupEmailResponse

data class LookupEmailResponse(
    val email: String,
)
Properties


LookupUserWithEmailResponse

data class LookupUserWithEmailResponse(
    val userId: String,
    val firstNames: String,
    val lastName: String,
)
Properties


LookupUsersResponse

data class LookupUsersResponse(
    val results: JsonObject,
)
Properties


Last updated