User Creation¶
Users form the basis of all authentication in UCloud.
Rationale¶
Users in UCloud are authenticated in one of several:
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.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.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
endpointSome property names will change to be consistent with
Resource
s
Table of Contents¶
1. Remote Procedure Calls
Name | Description |
---|---|
getUserInfo |
Request information about the current user. |
lookupEmail |
Request the email of a user. |
lookupUserWithEmail |
No description |
lookupUsers |
No description |
retrieveOptionalUserInfo |
No description |
verifyUserInfo |
Verifies a change in user info (typically accessed through an email) |
changePassword |
Request change of the password of the current user (if [`PASSWORD`](/docs/reference/dk.sdu.cloud.auth.api.PASSWORD.md) user). |
changePasswordWithReset |
Request reset of password of a [`PASSWORD`](/docs/reference/dk.sdu.cloud.auth.api.PASSWORD.md) user. |
createNewUser |
Request creation of a new [`PASSWORD`](/docs/reference/dk.sdu.cloud.auth.api.PASSWORD.md) user. |
updateOptionalUserInfo |
No description |
updateUserInfo |
Request update of information about the current user. |
2. Data Models
Name | Description |
---|---|
AuthenticationTokens |
No description |
OptionalUserInformation |
No description |
UserLookup |
No description |
ChangePasswordRequest |
No description |
ChangePasswordWithResetRequest |
No description |
CreateSingleUserRequest |
No description |
LookupEmailRequest |
No description |
LookupUserWithEmailRequest |
No description |
LookupUsersRequest |
No description |
UpdateUserInfoRequest |
No description |
GetUserInfoResponse |
No description |
LookupEmailResponse |
No description |
LookupUserWithEmailResponse |
No description |
LookupUsersResponse |
No description |
Remote Procedure Calls¶
getUserInfo
¶
Request information about the current user.
Request | Response | Error |
---|---|---|
Unit |
GetUserInfoResponse |
CommonErrorMessage |
lookupEmail
¶
Request the email of a user.
Request | Response | Error |
---|---|---|
LookupEmailRequest |
LookupEmailResponse |
CommonErrorMessage |
lookupUserWithEmail
¶
Request | Response | Error |
---|---|---|
LookupUserWithEmailRequest |
LookupUserWithEmailResponse |
CommonErrorMessage |
lookupUsers
¶
Request | Response | Error |
---|---|---|
LookupUsersRequest |
LookupUsersResponse |
CommonErrorMessage |
retrieveOptionalUserInfo
¶
Request | Response | Error |
---|---|---|
Unit |
OptionalUserInformation |
CommonErrorMessage |
verifyUserInfo
¶
Verifies a change in user info (typically accessed through an email)
Request | Response | Error |
---|---|---|
FindByStringId |
Unit |
CommonErrorMessage |
changePassword
¶
Request change of the password of the current user (if PASSWORD
user).
Request | Response | Error |
---|---|---|
ChangePasswordRequest |
Unit |
CommonErrorMessage |
changePasswordWithReset
¶
Request reset of password of a PASSWORD
user.
Request | Response | Error |
---|---|---|
ChangePasswordWithResetRequest |
Unit |
CommonErrorMessage |
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.
Request | Response | Error |
---|---|---|
List<CreateSingleUserRequest> |
List<AuthenticationTokens> |
CommonErrorMessage |
updateOptionalUserInfo
¶
Request | Response | Error |
---|---|---|
OptionalUserInformation |
Unit |
CommonErrorMessage |
updateUserInfo
¶
Request update of information about the current user.
Request | Response | Error |
---|---|---|
UpdateUserInfoRequest |
Unit |
CommonErrorMessage |
Data Models¶
AuthenticationTokens
¶
data class AuthenticationTokens(
val accessToken: String,
val refreshToken: String,
val csrfToken: String,
)
OptionalUserInformation
¶
data class OptionalUserInformation(
val organizationFullName: String?,
val department: String?,
val researchField: String?,
val position: String?,
)
UserLookup
¶
data class UserLookup(
val subject: String,
val role: Role,
)
ChangePasswordRequest
¶
data class ChangePasswordRequest(
val currentPassword: String,
val newPassword: String,
)
ChangePasswordWithResetRequest
¶
data class ChangePasswordWithResetRequest(
val userId: String,
val newPassword: String,
)
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?,
)
LookupEmailRequest
¶
data class LookupEmailRequest(
val userId: String,
)
Properties
userId
: String
String
LookupUserWithEmailRequest
¶
data class LookupUserWithEmailRequest(
val email: String,
)
Properties
email
: String
String
LookupUsersRequest
¶
data class LookupUsersRequest(
val users: List<String>,
)
UpdateUserInfoRequest
¶
data class UpdateUserInfoRequest(
val email: String?,
val firstNames: String?,
val lastName: String?,
)
GetUserInfoResponse
¶
data class GetUserInfoResponse(
val email: String?,
val firstNames: String?,
val lastName: String?,
val organization: String?,
)
LookupEmailResponse
¶
data class LookupEmailResponse(
val email: String,
)
Properties
email
: String
String
LookupUserWithEmailResponse
¶
data class LookupUserWithEmailResponse(
val userId: String,
val firstNames: String,
val lastName: String,
)
LookupUsersResponse
¶
data class LookupUsersResponse(
val results: JsonObject,
)
Properties
results
: JsonObject
JsonObject