Account resource data model
The data model of the Soffid objects is mapped to JSON objects to enable the data transport between client and server.
/User
Dictionary table
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full JSON example
{
"lastName": "Smith",
"createdByUser": "admin",
"mailServer": "null",
"mailDomain": "soffid.com",
"nationalID": "",
"multiSession": false,
"modifiedByUser": "admin",
"id": 1188,
"homeServer": "null",
"primaryGroupDescription": "World",
"primaryGroup": "world",
"comments": "Sample user",
"profileServer": "null",
"secondaryGroups": [
{
"groupDescription": "Enterprise",
"id": 12353,
"group": "enterprise"
},
{
"groupDescription": "Engineering team",
"id": 12347,
"group": "engineering"
}
],
"active": true,
"fullName": "John Smith",
"userName": "jsmith",
"mailAlias": "jsmith@soffid.com, jsmith.dev@soffid.com",
"firstName": "John",
"createdDate": "2017-08-04T15:04:37+02:00",
"phoneNumber": "666777888",
"meta": {
"created": "2017-08-04T15:04:37+02:00",
"location": "http://<domain>/webservice/scim/User/1188",
"lastModified": "2017-08-18T16:52:38+02:00",
"resourceType": "User"
},
"modifiedDate": "2017-08-18T16:52:38+02:00",
"attributes": {
"employeeId": "1234",
"position": "Developer"
},
"middleName": "",
"accounts": [
{
"system": "soffid",
"name": "jsmith",
"id": 12453
}
],
"userType": "I",
"shortName": "jsmith"
}
/Group
Dictionary table
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full JSON example
{
"organizational": true,
"driveLetter": "G",
"obsolete": true,
"description": "Enterprise engineering team",
"section": null,
"type": null,
"meta": {
"location": "http://<domain>/webservice/scim/Group/11345",
"resourceType": "Group"
},
"quota": "0",
"name": "Engineering team",
"parentGroup": "enterprise",
"attributes": {},
"id": 11345
}
/Account
Dictionary table
Attribute | Type | Required | Updatable | Description | Additional comment |
id |
Long |
Yes |
- |
Primary key of the account |
|
name |
String |
Yes |
Yes |
Name used to identify the account |
|
description |
String |
- |
Yes |
Description of the account |
|
type |
AccountType |
Yes |
Yes |
Acount Type. Values [ U | S | P | I ] |
U=user, S=shared, P=privileged, I=Ignored To create a user type account, a single user must be specified in ownerUsers attribute |
system |
String |
- |
Yes |
System to assign access |
Systems are managed in the IAM Console (Administration > Resources > Information Systems) |
lastUpdated |
Calendar |
- |
No |
Last time the account has been updated |
|
lastPasswordSet |
Calendar |
- |
No |
Last time the password of the account has been setted |
|
passwordExpiration |
Calendar |
- |
No |
Expiration date of the password of the account |
|
disabled |
boolean |
- |
Yes |
Account active (false) or disabled (true) |
|
passwordPolicy |
String |
- |
No |
User type assigned to the account as a user. By default "I" |
New user types could be created in the IAM Console (Administration > Configure Soffid > Global Settings > User types) |
vaultFolderId |
Long |
- |
No |
|
|
vaultFolder |
String |
- |
No |
|
|
inheritNewPermissions |
boolean |
- |
No |
|
|
loginUrl |
String |
- |
No |
|
|
attributes |
Map<String, Object> |
- |
Yes |
List of values of the metadata attributes of the agente of the account |
|
grantedGroups |
Collection<Group> |
- |
Yes |
List of groups assigned to an account |
|
grantedUsers |
Collection<User> |
- |
Yes |
List of users assigned to an account |
|
grantedRoles |
Collection<Group> |
- |
Yes |
List of roles assigned to an account |
|
managerGroups |
Collection<Role> |
- |
Yes |
List of groups assigned to an account as managers |
|
managerUsers |
Collection<User> |
- |
Yes |
List of users assigned to an account as managers |
|
managerRoles |
Collection<Role> |
- |
Yes |
List of roles assigned to an account as a managers |
|
ownerGroups |
Collection<Group> |
- |
Yes |
List of groups assigned to an account as owners |
|
ownerUsers |
Collection<User> |
- |
Yes |
List of users assigned to an account as managers |
|
ownerRoles |
Collection<Role> |
- |
Yes |
List of roles assigned to an account as managers |
|
password |
String |
- |
Yes |
The password of the account |
|
roles |
List<Role>
|
- |
Yes |
List<Role> → list of the roles assigned to the account
|
|
meta |
ScimMeta
|
- |
- |
Additional information recommended in SCIM definition:
|
These attributes are returned in the response These attributes are not updatable |
Full JSON example
{
"description": "Admin Admin",
"type": "U",
"inheritNewPermissions": false,
"disabled": false,
"id": 69,
"roles": [
{
"role": 30
}
],
"grantedUsers": []
"grantedGroups": [],
"grantedRoles": [],
"managerGroups": [],
"managerRoles": [],
"managerUsers": [],
"ownerGroups": [],
"ownerRoles": [],
"ownerUsers": [],
"passwordPolicy": "I",
"system": "soffid",
"meta": {
"location": "http://<domain>/webservice/scim/scim2/v1/Account/69",
"resourceType": "Account"
},
"name": "admin",
"attributes": {},
}
/Application (addon version 1.2.0+)
Dictionary table
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full JSON example
{
"description": "Active Directory",
"singleRole": false,
"bpmEnforced": false,
"database": "ad",
"meta": {
"location": "http://bubu-thinkpad:8080/webservice/scim/Application/1573127",
"resourceType": "Application"
},
"name": "ad",
"attributes": {},
"id": 1573127
}
/Role (addon version 1.2.0+)
Dictionary table
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full JSON example
{
"approvalEnd": "2019-11-01T19:22:14+01:00",
"ownedRoles": [
{
"informationSystem": "TEST",
"ownerRole": 34,
"roleId": 5794,
"mandatory": true,
"enabled": true,
"ownerSystem": "soffid",
"system": "soffid",
"roleName": "TestRole",
"hasDomain": false,
"id": 1207155,
"ownerRoleName": "SOFFID_ADMIN",
"status": {
"value": "A"
}
},
{
"informationSystem": "SOFFID",
"ownerRole": 34,
"roleId": 50247,
"mandatory": true,
"enabled": true,
"ownerSystem": "soffid",
"system": "soffid",
"roleName": "test2",
"hasDomain": false,
"id": 2209016,
"ownerRoleName": "SOFFID_ADMIN",
"status": {
"value": "A"
}
}
],
"indirectAssignment": "",
"description": "SOFFID Administrator",
"granteeGroups": [],
"bpmEnforced": false,
"informationSystemName": "SOFFID",
"password": false,
"system": "soffid",
"ownerRoles": [],
"meta": {
"location": "http://bubu-thinkpad:8080/webservice/scim/Role/34",
"resourceType": "Role"
},
"domain": {
"name": "SENSE_DOMINI",
"description": ""
},
"name": "SOFFID_ADMIN",
"approvalStart": "2019-11-01T19:22:14+01:00",
"attributes": {},
"id": 34,
"enableByDefault": true
}
Notes about role domains
By default, roles have no security domain (sometimes referred to as scope). When a security domain is assigned to a role, each account-role object is tagged with the proper security domain value. It is allowed to assign one role multiple times to the same user, as long as each assignment is tagged with a different security domain value. For instance, one can create the SOFFID_OU_MANAGER role bound to the GROUPS security domain. Then, you can assign the role SOFFID_OU_MANAGER/Group1 to any user.
Four kinds of security domains are available:
SENSE_DOMAIN: No security domain applies.GROUP: A business unit is bound to each grant of this role.APPLICATION: A information system is bound to each grant of this role.Custom domain: Each application can have its own security domains with arbitrary meanings.
To set or modify the role domain for a role, one can use the "domain" attribute. This attribute is a complex object composed of a name and a description. Only the name is mandatory.
Notes about role inheritance
Role inheritance is driven by the ownedRoles, ownerRoles and ownedGroups. Each of these attributes is an array of grants. Each grant has the following attributes:
ownerRole: id of owner role.ownerSystem: name of owner role's system.ownerRoleName: name of owner role's name.ownerRolDomainValue: security domain of the owner role. If a user is granted with the owner role, and theownerRolDomainValue does not match the grant domain, the inheritance rule does not apply.roleId: id of owned role.system: name of owned role's systemroleName: name of owned role's namedomainValue: security domain of the owned role.
The role inheritance can vary slightly depending on whether the owned role and the owner role are in the same domain or not:
|
|
|
|
---|---|---|---|