|
5 | 5 | "tag": [ |
6 | 6 | "SMB1001 (2.8)" |
7 | 7 | ], |
8 | | - "impact": "Medium Impact", |
9 | | - "helpText": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled. Accounts an administrator re-enabled in the last 7 days are left alone.", |
10 | | - "executiveText": "Automatically disables external guest accounts that haven't been used for a number of days, reducing security risks from dormant accounts while maintaining access for active external collaborators. This helps maintain a clean user directory and reduces potential attack vectors.", |
11 | | - "docsDescription": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled.", |
12 | | - "impactColour": "warning", |
| 8 | + "impact": "High Impact", |
| 9 | + "helpText": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Optionally soft-deletes already-disabled guests after a configurable grace period past that threshold (0 = never delete). Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled. Accounts an administrator re-enabled in the last 7 days are left alone. Deleted guests remain recoverable from Deleted Items for about 30 days.", |
| 10 | + "executiveText": "Automatically disables external guest accounts that haven't been used for a number of days, and can optionally remove already-disabled dormant guests after an additional grace period. This reduces security risks from abandoned external access, keeps the directory clean, and avoids errors when previously disabled guests need to be invited back.", |
| 11 | + "docsDescription": "Blocks login for guest users whose most recent sign-in attempt, interactive or non-interactive, is older than the number of days. Remediation first disables stale enabled guests, and later soft-deletes guests that are already disabled once they have been inactive for the disable threshold plus the configured grace delta (deletion age = days + deleteGraceDays). The disable-before-delete grace is further guaranteed by never deleting a guest in the same pass it was disabled. Guests that have never signed in are only included when 'Disable accounts that have not yet signed in' is enabled. Accounts an administrator re-enabled in the last 7 days are left alone. Graph user DELETE is a soft-delete (recoverable from Deleted Items for about 30 days).", |
| 12 | + "impactColour": "danger", |
13 | 13 | "addedDate": "2022-10-20", |
14 | 14 | "powershellEquivalent": "Graph API", |
15 | 15 | "appliesToTest": [ |
|
33 | 33 | "required": true, |
34 | 34 | "default": 90 |
35 | 35 | }, |
| 36 | + "deleteGraceDays": { |
| 37 | + "type": "number", |
| 38 | + "label": "Grace days after disable before deletion (0 = never delete). Guests are deleted once inactive for the disable threshold plus this many additional days.", |
| 39 | + "default": 0, |
| 40 | + "validators": { |
| 41 | + "min": { |
| 42 | + "value": 0, |
| 43 | + "message": "Minimum value is 0" |
| 44 | + } |
| 45 | + } |
| 46 | + }, |
36 | 47 | "IncludeNeverSignedIn": { |
37 | 48 | "type": "switch", |
38 | 49 | "label": "Disable accounts that have not yet signed in", |
|
54 | 65 | ], |
55 | 66 | "writes": [ |
56 | 67 | { |
| 68 | + "from": "guestsToDisable", |
57 | 69 | "method": "PATCH", |
58 | 70 | "uri": "users/%id%", |
59 | 71 | "body": { |
60 | 72 | "accountEnabled": false |
61 | 73 | } |
| 74 | + }, |
| 75 | + { |
| 76 | + "from": "guestsToDelete", |
| 77 | + "method": "DELETE", |
| 78 | + "uri": "users/%id%" |
62 | 79 | } |
63 | 80 | ] |
64 | 81 | } |
|
0 commit comments