Skip to content

Commit f756069

Browse files
Document mixed-mode authentication and authorization (#1126) (#1165)
Information about mixed-mode authentication and/or authorization should be added to the `4.4` branch as well. --------- Co-authored-by: Reneta Popova <[email protected]>
1 parent ad71884 commit f756069

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

modules/ROOT/pages/authentication-authorization/index.adoc

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,17 @@ A plugin option for building custom integrations.
4545
It is recommended that this option is used as part of a custom delivery as negotiated with link:https://neo4j.com/professional-services/[Neo4j Professional Services].
4646
For more information, see link:{neo4j-docs-base-uri}/java-reference/{page-version}/extending-neo4j/security-plugins#extending-neo4j-security-plugins[Java Reference -> Authentication and authorization plugins].
4747

48-
4948
*Kerberos authentication and single sign-on*::
5049
In addition to LDAP, native, and custom providers, Neo4j supports Kerberos for authentication and single sign-on.
5150
Kerberos support is provided via the link:{neo4j-docs-base-uri}/kerberos-add-on/current/[Neo4j Kerberos Add-On].
5251

52+
*Mixed-mode authentication*::
53+
Neo4j also supports mixed-mode authentication that allows you to use multiple authentication providers in your database setup.
54+
For more information and examples, see xref:authentication-authorization/ldap-integration.adoc#auth-ldap-configure-provider[Set Neo4j to use LDAP] and xref:authentication-authorization/sso-integration.adoc#auth-sso-configure-sso[Configure Neo4j to use OpenID Connect].
55+
56+
57+
58+
5359
[[authorization-overview]]
5460
== Authorization
5561

@@ -64,11 +70,11 @@ Neo4j provides a set of xref:authentication-authorization/built-in-roles.adoc[bu
6470
You can also use the _sub-graph_ access control, through which read access to the graph can be limited to specific combinations of labels, relationship types, and properties.
6571

6672
[NOTE]
67-
--
73+
====
6874
The functionality described in these pages applies to Enterprise Edition.
6975
A limited set of user management functions are also available in Community Edition.
7076
xref:authentication-authorization/built-in-roles.adoc#auth-built-in-roles-overview[Built-in roles capabilities] gives a quick overview of these.
71-
--
77+
====
7278

7379
The Neo4j security model is stored in the system graph, which is maintained in the xref:database-administration/index.adoc#manage-databases-system[`system` database].
7480
All administrative commands need to be executed against it.

modules/ROOT/pages/authentication-authorization/ldap-integration.adoc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,19 @@ First, you configure Neo4j to use LDAP as an authentication and authorization pr
100100
. Uncomment the setting `dbms.security.auth_enabled=false` and change its value to `true` to turn on the security feature.
101101
. Uncomment the settings `dbms.security.authentication_providers` and `dbms.security.authorization_providers` and change their value to `ldap`.
102102
This way, the LDAP connector is used as a security provider for both authentication and authorization.
103+
+
104+
If you want, you can still use the `native` provider for mixed-mode authentication and authorization.
105+
The values are comma-separated and queried in the declared order.
106+
+
107+
.Configure Neo4j to use LDAP and the native authentication and authorization provider.
108+
======
109+
[source,configuration,role="noheader"]
110+
----
111+
dbms.security.authentication_providers=ldap,native
112+
dbms.security.authorization_providers=ldap,native
113+
----
114+
======
115+
103116

104117
[[auth-ldap-map-ldap-roles]]
105118
== Map the LDAP groups to the Neo4j roles

modules/ROOT/pages/authentication-authorization/sso-integration.adoc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -141,16 +141,16 @@ First, you configure Neo4j to use OpenID Connect as an authentication and author
141141
The default value for `dbms.security.auth_enabled` is `true`.
142142
. Uncomment the settings `dbms.security.authentication_providers` and `dbms.security.authorization_providers` and change their value to `oidc-<provider>`, where `<provider>` maps to the provider name used in the configuration settings.
143143
This way, the OIDC connector is used as a security provider for both authentication and authorization.
144-
These configuration values are comma-separated lists, so if you wish to continue to use native authentication and authorization alongside SSO, then these providers can be added to the existing `native` provider:
144+
If you want, you can still use the `native` provider for mixed-mode authentication and authorization.
145+
The values are comma-separated and queried in the declared order.
145146
+
146-
.Configuration
147+
.Configure Neo4j to use two OpenID Connect and the native authentication and authorization providers.
147148
======
148149
[source,configuration,role="noheader"]
149150
----
150151
dbms.security.authentication_providers=oidc-newsso,oidc-oldsso,native
151152
dbms.security.authorization_providers=oidc-newsso,oidc-oldsso,native
152153
----
153-
This example has two OpenID Connect providers configured, as well as Neo4j native authorization and authentication.
154154
======
155155

156156
[[auth-sso-map-idp-roles]]
@@ -304,4 +304,4 @@ To enable the logging of these claims at `DEBUG` level in the security log, set
304304
====
305305
Make sure to set xref:configuration/configuration-settings.adoc#config_dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled[dbms.security.logs.oidc.jwt_claims_at_debug_level_enabled] back to `false` for production environments to avoid unwanted logging of potentially sensitive information.
306306
Also, bear in mind that the set of claims provided by an identity provider in the JWT can change over time.
307-
====
307+
====

0 commit comments

Comments
 (0)