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
. Securely transmit the credentials to _Alice_, setting up the link to database `db1`.
106
-
It is recommended to create a custom role to track all users shared on a remote connection, so that they remain trackable.
107
105
108
106
[[remote-alias-config-DBMS_admin-A]]
109
107
=== Configure the local DBMS A and grant access to Carol (_Alice_)
@@ -116,7 +114,7 @@ In this example, you create a remote database alias, called `db1-remote-alias`,
116
114
==== Generate an encryption key
117
115
118
116
First, you need to generate an encryption key.
119
-
In this case, the credentials of a user of *DBMS B* are reversibly encrypted and stored in the `system` database of *DBMS A*.
117
+
In this case, the credentials of the user `alias_user` of *DBMS B* are reversibly encrypted and stored in the `system` database of *DBMS A*.
120
118
Since the algorithm used is AES/GCM, you must provide an AES encryption key of length 256 and store it in a password-protected keystore in the PKCS12 format.
121
119
122
120
The key can be generated by using the following keytool command in your terminal, which is included in link:https://docs.oracle.com/en/java/javase/11/tools/keytool.html[Java Platform, Standard Edition]:
@@ -197,13 +195,13 @@ However, if you want to disable the secure URL scheme, you can set the driver se
197
195
CREATE ALIAS `db1-remote-alias` FOR DATABASE `db1` AT "neo4j+s://location:7687" USER alias_user PASSWORD 'secretpassword'
198
196
----
199
197
200
-
. Grant access to the remote database alias to the `remote_access` role and assign it to _Carol_.
198
+
. Grant the `remote_access` role access to the remote database alias and assign it to _Carol_.
201
199
See xref:authentication-authorization/database-administration.adoc#access-control-database-administration-access[`ACCESS` privileges] for more information.
202
200
+
203
201
[source, Cypher]
204
202
----
205
203
GRANT ACCESS ON DATABASE `db1-remote-alias` TO remote_access
206
-
GRANT ROLE remote_access TO Carol
204
+
GRANT ROLE remote_access TO carol
207
205
----
208
206
209
207
[NOTE]
@@ -251,73 +249,13 @@ Crucially, if the OIDC configuration settings differ between the local DBMS and
251
249
This configuration independence can lead to privilege inconsistency (e.g., over-privileging or unexpected access denial).
252
250
====
253
251
254
-
=== Configure the remote DBMS B (_Bob_)
255
-
256
-
As _Bob_, you are responsible for setting up the remote *DBMS B*.
257
-
You can create and delete users and grant or deny privileges on the databases managed by *DBMS B*.
258
-
259
-
In this example, you need to ensure that _Carol_ can access `db1` on *DBMS B* using OIDC credential forwarding.
260
-
261
-
. Set up SSO for the identity provider _Carol_ uses and map the identity provider groups to the Neo4j roles as done on the local *DBMS A*.
262
-
For details, see the xref:tutorial/tutorial-sso-configuration.adoc[SSO configuration tutorial] and xref:authentication-authorization/sso-integration.adoc#auth-sso-map-idp-roles[Map the identity provider groups to the Neo4j roles].
263
-
//If you do not want specific users to access `db2`, here is where you set it.
264
-
+
265
-
[parameters]
266
-
----
267
-
# OIDC settings - these should be the same on both DBMSs
. Set up the link:https://neo4j.com/docs/operations-manual/current/security/ssl-framework/[SSL framework] and check whether the database accepts non-local connections if required.
=== Configure the local DBMS A and grant access to Carol (_Alice_)
295
253
296
254
As _Alice_, you are responsible for setting up the local *DBMS A*.
297
255
You can create and delete database aliases and grant or deny users' access to them.
298
256
299
257
In this case, you need to set up a remote database alias that connects to `db1` on *DBMS B* using OIDC credential forwarding and grant _Carol_ access to it.
300
258
301
-
==== Set up SSO on the local DBMS and map the identity provider groups to the Neo4j roles
302
-
303
-
In order for _Carol_ to get access to the remote database alias, she needs to be in an identity provider group that is mapped to a Neo4j role that is granted access to that alias.
304
-
305
-
You set up SSO on the local *DBMS A* and map the identity provider groups to the Neo4j roles that match those on the remote *DBMS B*.
306
-
For details on how to map identity provider groups to Neo4j roles, see xref:authentication-authorization/sso-integration.adoc#auth-sso-map-idp-roles[Map the identity provider groups to the Neo4j roles].
This is where the permission to use the remote database alias is set.
319
-
See the xref:tutorial/tutorial-sso-configuration.adoc[SSO configuration tutorial] for more details.
320
-
321
259
==== Create the remote database alias and grant access to Carol
322
260
323
261
You create the remote database alias using xref:database-administration/aliases/manage-aliases-standard-databases.adoc[alias administrative commands].
@@ -338,18 +276,17 @@ CREATE ALIAS `db1-remote-alias` FOR DATABASE `db1` AT "neo4j+s://location:7687"
338
276
----
339
277
340
278
. Create a custom role to track all users shared on a remote connection, so that they remain trackable:
341
-
See the xref:authentication-authorization/database-administration.adoc#access-control-database-administration-access[`ACCESS` privileges] for more information.
342
279
+
343
280
[source, Cypher]
344
281
----
345
282
CREATE ROLE remote_access
346
283
----
347
-
. Grant access to the remote database alias to the `remote_access` role and assign it to _Carol_.
284
+
. Grant the `remote_access` role access to the remote database alias and assign the role to _Carol_:
348
285
+
349
286
[source, Cypher]
350
287
----
351
288
GRANT ACCESS ON DATABASE `db1-remote-alias` TO remote_access
352
-
GRANT ROLE remote_access TO Carol
289
+
GRANT ROLE remote_access TO carol
353
290
----
354
291
+
355
292
[NOTE]
@@ -358,6 +295,62 @@ If a transaction modifies an alias (e.g. changing the database targeted on *DBMS
358
295
This prevents issues such as a transaction executing against multiple target databases for the same alias.
359
296
====
360
297
298
+
==== Set up SSO on the local DBMS and map the identity provider groups to the Neo4j roles
299
+
300
+
In order for _Carol_ to get access to the remote database alias, she needs to be in an identity provider group that is mapped to a Neo4j role that is granted access to that alias.
301
+
302
+
You set up SSO on the local *DBMS A* and map the identity provider groups to the Neo4j roles.
303
+
For details, see the xref:tutorial/tutorial-sso-configuration.adoc[SSO configuration tutorial] and xref:authentication-authorization/sso-integration.adoc#auth-sso-map-idp-roles[Map the identity provider groups to the Neo4j roles].
As _Bob_, you are responsible for setting up the remote *DBMS B*.
318
+
You can create and delete users and grant or deny privileges on the databases managed by *DBMS B*.
319
+
320
+
In this example, you need to ensure that _Carol_ can access `db1` on *DBMS B* using OIDC credential forwarding.
321
+
322
+
. Set up SSO on the remote *DBMS B* and map the identity provider groups to the Neo4j roles.
323
+
The configuration must match the one on the local *DBMS A*.
324
+
For details, see the xref:tutorial/tutorial-sso-configuration.adoc[SSO configuration tutorial] and xref:authentication-authorization/sso-integration.adoc#auth-sso-map-idp-roles[Map the identity provider groups to the Neo4j roles].
325
+
//If you do not want specific users to access `db2`, here is where you set it.
. Set up the link:https://neo4j.com/docs/operations-manual/current/security/ssl-framework/[SSL framework] and check whether the database accepts non-local connections if required.
0 commit comments