Skip to content

Commit 7e04aeb

Browse files
deadlypants1973Oxyjun
authored andcommitted
[CF1] add details on serial numbers in posture checks (cloudflare#22790)
* [CF1] add details on serial numbers in posture checks * edits * sentinelone edit * Update src/content/partials/cloudflare-one/posture/service-provider-intro.mdx Ranbel edit * Apply suggestions from code review PCX suggestion Co-authored-by: Jun Lee <[email protected]> --------- Co-authored-by: Jun Lee <[email protected]>
1 parent 3a2d0e5 commit 7e04aeb

File tree

3 files changed

+61
-40
lines changed

3 files changed

+61
-40
lines changed

src/content/docs/cloudflare-one/identity/devices/service-providers/custom.mdx

Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@ sidebar:
66
order: 1
77

88
description: Configure custom device posture checks in Cloudflare Zero Trust using a service-to-service integration.
9-
109
---
1110

12-
import { Render } from "~/components"
11+
import { Render } from "~/components";
1312

1413
Cloudflare Zero Trust allows you to enforce custom device posture checks on your applications. This involves configuring a WARP service-to-service integration that periodically calls the external API of your choice, whether it is a third-party endpoint provider or a home built solution. When called, the API will receive device identifying information from Cloudflare and be expected to return a value between `0` to `100`. You can then set up a device posture check that determines if the returned value counts as a pass or fail; for example, you could allow access to a user only if their device has a posture value greater than `60`.
1514

@@ -23,6 +22,7 @@ sequenceDiagram
2322
WARP->>External API: JSON with user and device identity
2423
External API-->>WARP: JSON with 0-100 result
2524
```
25+
2626
## External API requirements
2727

2828
The custom service provider integration works with any API service that meets the following specifications. For an example of a custom device posture integration API, refer to our [Cloudflare Workers sample code](https://github.com/cloudflare/custom-device-posture-integration-example-worker).
@@ -35,16 +35,23 @@ The WARP client authenticates to the external API through Cloudflare Access. The
3535

3636
Cloudflare will pass the following parameters to the configured API endpoint. You can use this data to identify the device and assign a posture score. For some devices, not all identifying information will apply, in which case the field will be blank. A maximum of 1,000 devices will be sent per a request.
3737

38-
| Field | Description |
39-
| ----- | ----------- |
40-
| `device_id` | Device UUID assigned by the WARP client |
41-
| `email` | Email address used to authenticate the WARP client |
42-
| `serial_number` | Device serial number |
43-
| `mac_address` | Device MAC address |
44-
| `virtual_ipv4` | Device virtual IPv4 address |
45-
| `hostname` | Device name |
38+
| Field | Description |
39+
| --------------- | -------------------------------------------------- |
40+
| `device_id` | Device UUID assigned by the WARP client |
41+
| `email` | Email address used to authenticate the WARP client |
42+
| `serial_number` | Device serial number |
43+
| `mac_address` | Device MAC address |
44+
| `virtual_ipv4` | Device virtual IPv4 address |
45+
| `hostname` | Device name |
46+
47+
:::note
48+
49+
Devices are identified by their serial numbers. You must ensure that each of your devices has a unique serial number. If multiple devices have the same serial number, Cloudflare and your external API will not be able to accurately match them.
50+
51+
:::
4652

4753
Example request body:
54+
4855
```json
4956
{
5057
"devices": {
@@ -68,12 +75,13 @@ Example request body:
6875

6976
For each Cloudflare `device_id`, the API service is expected to return a posture score and optionally a third-party device ID.
7077

71-
| Field | Description |
72-
| ----- | ----------- |
78+
| Field | Description |
79+
| -------- | --------------------------------------------------- |
7380
| `s2s_id` | Third party device ID (empty string if unavailable) |
74-
| `score` | Integer value between `0` - `100` |
81+
| `score` | Integer value between `0` - `100` |
7582

7683
Example response body:
84+
7785
```json
7886
{
7987
"result": {
@@ -100,15 +108,18 @@ Next, secure the external API behind Cloudflare Access so that WARP can authenti
100108
1. [Create a self-hosted application](/cloudflare-one/applications/configure-apps/self-hosted-public-app/) for your API endpoint.
101109
2. Add the following Access policy to the application. Make sure that **Action** is set to _Service Auth_ (not _Allow_).
102110

103-
| Action | Rule type | Selector | Value |
104-
| ------ | --------- | ----------------- | ------------------------------------- |
105-
| Service Auth | Include | Service Token | `<TOKEN-NAME>` |
111+
| Action | Rule type | Selector | Value |
112+
| ------------ | --------- | ------------- | -------------- |
113+
| Service Auth | Include | Service Token | `<TOKEN-NAME>` |
106114

107115
### 3. Add a service provider integration
108116

109117
To create a custom service-to-service integration:
110118

111-
<Render file="posture/add-service-provider" params={{ provider: "Custom service provider" }} />
119+
<Render
120+
file="posture/add-service-provider"
121+
params={{ provider: "Custom service provider" }}
122+
/>
112123
5. In **Access client ID** and **Access client secret**, enter the Access service token used to authenticate to your external API.
113124
6. In **Rest API URL**, enter the external API endpoint that Cloudflare will query for posture information (for example, `https://api.example.com`). For more information, refer to [External API requirements](#external-api-requirements).
114125
7. In **Polling frequency**, choose how often Cloudflare Zero Trust should query the external API for information.
@@ -118,10 +129,13 @@ Next, [configure a device posture check](#4-configure-the-posture-check) to dete
118129

119130
### 4. Configure the posture check
120131

121-
<Render file="posture/configure-posture-check" params={{ one: "Custom service provider" }} />
132+
<Render
133+
file="posture/configure-posture-check"
134+
params={{ one: "Custom service provider" }}
135+
/>
122136

123137
## Device posture attributes
124138

125-
| Selector | Description | Value |
126-
| ------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
127-
| Score | Posture score returned by external API | `0` to `100` |
139+
| Selector | Description | Value |
140+
| -------- | -------------------------------------- | ------------ |
141+
| Score | Posture score returned by external API | `0` to `100` |

src/content/docs/cloudflare-one/identity/devices/service-providers/sentinelone.mdx

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,39 @@ sidebar:
66
head:
77
- tag: title
88
content: SentinelOne - Posture checks
9-
109
---
1110

12-
import { Render } from "~/components"
11+
import { Render } from "~/components";
1312

14-
Cloudflare Zero Trust can integrate with SentinelOne to require that users connect to certain applications from managed devices. Our service-to-service posture check identifies devices based on their serial numbers.
13+
<Render file="posture/service-provider-intro" params={{ one: "SentinelOne" }} />
1514

1615
## Prerequisites
1716

18-
* SentinelOne agent is deployed on the device.
19-
* <Render file="posture/prereqs-warp-is-deployed" params={{ name: "Service providers", link: "/cloudflare-one/identity/devices/service-providers/" }} />
17+
- SentinelOne agent is deployed on the device.
18+
- <Render
19+
file="posture/prereqs-warp-is-deployed"
20+
params={{
21+
name: "Service providers",
22+
link: "/cloudflare-one/identity/devices/service-providers/",
23+
}}
24+
/>
2025

2126
## Set up SentinelOne as a service provider
2227

2328
### 1. Obtain SentinelOne settings
2429

2530
The following SentinelOne values are needed to set up the SentinelOne posture check:
2631

27-
* API Token
28-
* REST API URL
32+
- API Token
33+
- REST API URL
2934

3035
To retrieve those values:
3136

3237
1. Log in to your SentinelOne Dashboard.
3338
2. Go to **Settings** > **Users** > **Create new Service User**.
3439
3. Select **Create New Service User**.
3540
4. Enter a **Name** and **Expiration Date** and select **Next**.
36-
5. Set **Scope of Access** to *Viewer*.
41+
5. Set **Scope of Access** to _Viewer_.
3742
6. Select **Create User**. SentinelOne will generate an API Token for this user.
3843
7. Copy the **API Token** to a safe location.
3944
8. Select **Close**.
@@ -49,19 +54,22 @@ To retrieve those values:
4954

5055
### 3. Configure the posture check
5156

52-
<Render file="posture/configure-posture-check" params={{ one: "SentinelOne" }} />
57+
<Render
58+
file="posture/configure-posture-check"
59+
params={{ one: "SentinelOne" }}
60+
/>
5361

5462
## Device posture attributes
5563

5664
Device posture data is gathered from the SentinelOne Management APIs. For more information, refer to `https://<S1-DOMAIN>.sentinelone.net/api-doc/overview`.
5765

58-
| Selector | Description |
59-
| -------------- | --------------------------------------------------------------------- |
60-
| Infected | Whether the device is infected |
61-
| Active Threats | Number of active threats on the device |
62-
| Is Active | Whether the SentinelOne Agent is active |
63-
| Network status | Whether the SentinelOne Agent is connected to the SentinelOne service |
64-
| Operational State | The [operational state](https://community.sentinelone.com/s/login/?ec=302&startURL=%2Fs%2Farticle%2F000005285) of the SentinelOne Agent.|
66+
| Selector | Description |
67+
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
68+
| Infected | Whether the device is infected |
69+
| Active Threats | Number of active threats on the device |
70+
| Is Active | Whether the SentinelOne Agent is active |
71+
| Network status | Whether the SentinelOne Agent is connected to the SentinelOne service |
72+
| Operational State | The [operational state](https://community.sentinelone.com/s/login/?ec=302&startURL=%2Fs%2Farticle%2F000005285) of the SentinelOne Agent. |
6573

6674
### Detect user risk behavior
6775

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
---
22
inputParameters: param1
3-
43
---
54

6-
import { Markdown } from "~/components"
5+
import { Markdown } from "~/components";
76

8-
Cloudflare Zero Trust can integrate with {props.one} to require that users connect to certain applications from managed devices. This service-to-service posture check uses the WARP client to read endpoint data from {props.one}. Devices are identified by their serial numbers.
7+
Cloudflare Zero Trust can integrate with {props.one} to require that users connect to certain applications from managed devices. This service-to-service posture check uses the WARP client to read endpoint data from {props.one}. Devices are identified by their serial numbers. If multiple devices have the same serial number, Cloudflare cannot accurately match a WARP device with a third-party provider device. You must ensure that each of your devices has a unique serial number.

0 commit comments

Comments
 (0)