You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/sentinel/create-codeless-connector.md
+88-2Lines changed: 88 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -127,10 +127,91 @@ To learn from an example, see the [Data connector connection rules reference exa
127
127
128
128
Use Postman to call the data connector API to create the data connector which combines the connection rules and previous components. Verify the connector is now connected in the UI.
129
129
130
+
## Secure confidential input
131
+
132
+
Whatever authentication is used by your CCP data connector, take these steps to ensure confidential information is kept secure. The goal is to pass along credentials from the ARM template to the CCP without leaving readable confidential objects in your deployments history.
133
+
134
+
### Create label
135
+
136
+
The data connector definition creates a UI element to prompt for security credentials. For example, if your data connector authenticates to a log source with OAuth, your data connector definition section includes the `OAuthForm` type in the instructions. This sets up the ARM template to prompt for the credentials.
137
+
138
+
```json
139
+
"instructions": [
140
+
{
141
+
"type": "OAuthForm",
142
+
"parameters": {
143
+
"UsernameLabel": "Username",
144
+
"PasswordLabel": "Password",
145
+
"connectButtonLabel": "Connect",
146
+
"disconnectButtonLabel": "Disconnect"
147
+
}
148
+
}
149
+
],
150
+
```
151
+
152
+
### Store confidential input
153
+
154
+
A section of the ARM deployment template provides a place for the administrator deploying the data connector to enter the password. Use `securestring` to keep the confidential information secured in an object that isn't readable after deployment. For more information, see [Security recommendations for parameters](../azure-resource-manager/templates/best-practices.md#security-recommendations-for-parameters).
> The strange syntax for the credential object, `"ClientSecret": "[[parameters('Password')]",` isn't a typo!
201
+
> In order to create the deployment template which also uses parameters, you need to escape the parameters in that section with an extra starting`[`. This allows the parameters to assign a value based on the user interaction with the connector.
202
+
>
203
+
> For more information, see [Template expressions escape characters](../azure-resource-manager/templates/template-expressions.md#escape-characters).
204
+
205
+
130
206
## Create the deployment template
131
207
132
208
Manually package an Azure Resource Management (ARM) template using the [example template](#example-arm-template) as your guide.
133
209
210
+
In addition to the example template, published solutions available in the Microsoft Sentinel content hub use the CCP for their data connector. Review the following solutions as more examples of how to stitch the components together into an ARM template.
Deploy your codeless connector as a custom template.
@@ -363,7 +444,12 @@ Consider using the ARM template test toolkit (arm-ttk) to validate the template
363
444
364
445
#### Example ARM template - parameters
365
446
366
-
For more information, see [Parameters in ARM templates](../azure-resource-manager/templates/parameters.md) and [Security recommendations for parameters](../azure-resource-manager/templates/best-practices.md#security-recommendations-for-parameters).
447
+
For more information, see [Parameters in ARM templates](../azure-resource-manager/templates/parameters.md).
448
+
449
+
>[!Warning]
450
+
> Use `securestring` for all passwords and secrets in objects readable after resource deployment.
451
+
> For more information, see [Secure confidential input](#secure-confidential-input) and [Security recommendations for parameters](../azure-resource-manager/templates/best-practices.md#security-recommendations-for-parameters).
452
+
367
453
368
454
```json
369
455
{
@@ -644,7 +730,7 @@ There are 5 ARM deployment resources in this template guide which house the 4 CC
For more information, see [Data Connectors - Create or Update URI Parameters](/rest/api/securityinsights/data-connectors/create-or-update#uri-parameters)
38
+
For more information about the latest API version, see [Data Connectors - Create or Update URI Parameters](/rest/api/securityinsights/data-connectors/create-or-update#uri-parameters).
39
39
40
40
|Name | Description |
41
41
|---------|---------|
@@ -54,7 +54,6 @@ The request body for the CCP data connector has the following structure:
54
54
"name": "{{dataConnectorId}}",
55
55
"kind": "RestApiPoller",
56
56
"etag": "",
57
-
"DataType": ""
58
57
"properties": {
59
58
"connectorDefinitionName": "",
60
59
"auth": {},
@@ -91,14 +90,11 @@ The CCP supports the following authentication types:
91
90
> [!NOTE]
92
91
> CCP OAuth2 implementation does not support certificate credentials.
93
92
94
-
As a best practice, use parameters in the auth section instead of hard-coding credentials.
95
-
- For more information, see [Best practice recommendations for parameters](../azure-resource-manager/templates/best-practices.md#security-recommendations-for-parameters).
93
+
As a best practice, use parameters in the auth section instead of hard-coding credentials. For more information, see [Secure confidential input](create-codeless-connector.md#secure-confidential-input).
96
94
97
-
In order to create the deployment template which also uses parameters, you need to escape the parameters in this section with an extra starting `[`. This allows the parameters to assign a value based on the user interaction with the connector.
98
-
- For more information, see [Template expressions escape characters](../azure-resource-manager/templates/template-expressions.md#escape-characters).
95
+
In order to create the deployment template which also uses parameters, you need to escape the parameters in this section with an extra starting `[`. This allows the parameters to assign a value based on the user interaction with the connector. For more information, see [Template expressions escape characters](../azure-resource-manager/templates/template-expressions.md#escape-characters).
99
96
100
-
To enable the credentials to be entered from the UI, the `connectorUIConfig` section requires `instructions` with the desired parameters.
101
-
- For more information, see [Data connector definitions reference for the Codeless Connector Platform](data-connector-ui-definitions-reference.md#instructions).
97
+
To enable the credentials to be entered from the UI, the `connectorUIConfig` section requires `instructions` with the desired parameters. For more information, see [Data connector definitions reference for the Codeless Connector Platform](data-connector-ui-definitions-reference.md#instructions).
102
98
103
99
#### Basic auth
104
100
@@ -120,7 +116,7 @@ Example Basic auth using parameters defined in `connectorUIconfig`:
120
116
121
117
| Field | Required | Type | Description | Default value |
122
118
| ---- | ---- | ---- | ---- | ---- |
123
-
|**ApiKey**|Mandatory| string | user secret key ||
119
+
|**ApiKey**|True| string | user secret key ||
124
120
|**ApiKeyName**|| string | name of the Uri header containing the ApiKey value |`Authorization`|
125
121
|**ApiKeyIdentifier**|| string | string value to prepend the token |`token`|
126
122
|**IsApiKeyInPostPayload**|| boolean | send secret in POST body instead of header |`false`|
@@ -162,9 +158,9 @@ After the user returns to the client via the redirect URL, the application will
162
158
| ---- | ---- | ---- | ---- |
163
159
|**ClientId**| True | String | The client id |
164
160
|**ClientSecret**| True | String | The client secret |
165
-
|**AuthorizationCode**|Mandatory when grantType = `authorization_code`| String | If grant type is `authorization_code` this field value will be the authorization code returned from the auth serve. |
161
+
|**AuthorizationCode**|True when grantType = `authorization_code`| String | If grant type is `authorization_code` this field value will be the authorization code returned from the auth serve. |
166
162
|**Scope**| True for `authorization_code` grant type<br> optional for `client_credentials` grant type| String | A space-separated list of scopes for user consent. For more information, see [OAuth2 scopes and permissions](/entra/identity-platform/scopes-oidc). |
167
-
|**RedirectUri**|Mandatory when grantType = `authorization_code`| String | URL for redirect, must be `https://portal.azure.com/TokenAuthorize`|
163
+
|**RedirectUri**|True when grantType = `authorization_code`| String | URL for redirect, must be `https://portal.azure.com/TokenAuthorize`|
168
164
|**GrantType**| True | String |`authorization_code` or `client_credentials`|
169
165
|**TokenEndpoint**| True | String | URL to exchange code with valid token in `authorization_code` grant or client id and secret with valid token in `client_credentials` grant. |
170
166
|**TokenEndpointHeaders**|| Object | An optional key value object to send custom headers to token server |
0 commit comments