From b029e14892c5ae3c4f0bdf11a51abd5058664244 Mon Sep 17 00:00:00 2001 From: Simran Spiller Date: Thu, 8 Feb 2024 11:19:49 +0100 Subject: [PATCH 1/4] Remove LDAP docs, release notes --- .../3.12/about-arangodb/features/_index.md | 3 +- .../features/enterprise-edition.md | 3 - .../3.12/components/arangodb-server/ldap.md | 564 ------------------ .../3.12/develop/http-api/monitoring/logs.md | 4 - .../get-started/set-up-a-cloud-instance.md | 1 - .../administration/user-management/_index.md | 26 - .../user-management/in-arangosh.md | 3 +- .../compiling/compile-on-debian.md | 1 - .../deprecated-and-removed-features.md | 5 + .../incompatible-changes-in-3-12.md | 12 + .../version-3.2/whats-new-in-3-2.md | 2 +- .../version-3.3/whats-new-in-3-3.md | 3 - 12 files changed, 20 insertions(+), 607 deletions(-) delete mode 100644 site/content/3.12/components/arangodb-server/ldap.md diff --git a/site/content/3.12/about-arangodb/features/_index.md b/site/content/3.12/about-arangodb/features/_index.md index 74ed48efaf..40b820fe9c 100644 --- a/site/content/3.12/about-arangodb/features/_index.md +++ b/site/content/3.12/about-arangodb/features/_index.md @@ -94,7 +94,7 @@ security, such as for scaling graphs and managing your data safely. - Multi-tenant deployment option for the transactional guarantees and performance of a single server - Enhanced data security with on-disk and backup encryption, key rotation, - audit logging, and LDAP authentication + and audit logging - Incremental backups without downtime and off-site replication See all [Enterprise Edition Features](enterprise-edition.md). @@ -121,7 +121,6 @@ See all [Enterprise Edition Features](enterprise-edition.md). | ACID transactions for multi-document / multi-collection queries on single servers, for single document operations in clusters, and for multi-document queries in clusters for collections with a single shard | In addition, ACID transactions for multi-collection queries using the OneShard feature | | Always read from leader shards in clusters | Optionally allow dirty reads to **read from followers** to scale reads | | TLS key and certificate rotation | In addition, **key rotation for JWT secrets** and **server name indication** (SNI) | -| Built-in user management and authentication | Additional **LDAP authentication** option | | Only server logs | **Audit log** of server interactions | | No on-disk encryption | **Encryption at Rest** with hardware-accelerated on-disk encryption and key rotation | | Only regular backups | **Datacenter-to-Datacenter Replication** for disaster recovery | diff --git a/site/content/3.12/about-arangodb/features/enterprise-edition.md b/site/content/3.12/about-arangodb/features/enterprise-edition.md index bfc2758c8f..65034d64f0 100644 --- a/site/content/3.12/about-arangodb/features/enterprise-edition.md +++ b/site/content/3.12/about-arangodb/features/enterprise-edition.md @@ -106,9 +106,6 @@ features outlined below. For additional information, see - [**Auditing**](../../operations/security/audit-logging.md): Audit logs of all server interactions. -- [**LDAP Authentication**](../../components/arangodb-server/ldap.md): - ArangoDB user authentication with an LDAP server. - - [**Encryption at Rest**](../../operations/security/encryption-at-rest.md): Hardware-accelerated on-disk encryption for your data. diff --git a/site/content/3.12/components/arangodb-server/ldap.md b/site/content/3.12/components/arangodb-server/ldap.md deleted file mode 100644 index a3200d52ac..0000000000 --- a/site/content/3.12/components/arangodb-server/ldap.md +++ /dev/null @@ -1,564 +0,0 @@ ---- -title: ArangoDB Server LDAP Options -menuTitle: LDAP -weight: 10 -description: >- - LDAP authentication options in the ArangoDB server -archetype: default ---- -{{< tag "ArangoDB Enterprise Edition" "ArangoGraph" >}} - -## Basics Concepts - -The basic idea is that one can keep the user authentication setup for -an ArangoDB instance (single or cluster) outside of ArangoDB in an LDAP -server. A crucial feature of this is that one can add and withdraw users -and permissions by only changing the LDAP server and in particular -without touching the ArangoDB instance. Changes are effective in -ArangoDB within a few minutes. - -Since there are many different possible LDAP setups, we must support a -variety of possibilities for authentication and authorization. Here is -a short overview: - -To map ArangoDB user names to LDAP users there are two authentication -methods called "simple" and "search". In the "simple" method the LDAP bind -user is derived from the ArangoDB user name by prepending a prefix and -appending a suffix. For example, a user "alice" could be mapped to the -distinguished name `uid=alice,dc=arangodb,dc=com` to perform the LDAP -bind and authentication. -See [Simple authentication method](#simple-authentication-method) -below for details and configuration options. - -In the "search" method there are two phases. In Phase 1 a generic -read-only admin LDAP user account is used to bind to the LDAP server -first and search for an LDAP user matching the ArangoDB user name. In -Phase 2, the actual authentication is then performed against the LDAP -user that was found in phase 1. Both methods are sensible and are -recommended to use in production. -See [Search authentication method](#search-authentication-method) -below for details and configuration options. - -Once the user is authenticated, there are now two methods for -authorization: (a) "roles attribute" and (b) "roles search". - -In method (a) ArangoDB acquires a list of roles the authenticated LDAP -user has from the LDAP server. The actual access rights to databases -and collections for these roles are configured in ArangoDB itself. -Users effectively have the union of all access rights of all roles -they have. This method is probably the most common one for production use -cases. It combines the advantages of managing users and roles outside of -ArangoDB in the LDAP server with the fine grained access control within -ArangoDB for the individual roles. See [Roles attribute](#roles-attribute) -below for details about method (a) and for the associated configuration -options. - -Method (b) is very similar and only differs from (a) in the way the -actual list of roles of a user is derived from the LDAP server. -See [Roles search](#roles-search) below for details about method (b) -and for the associated configuration options. - -## Fundamental options - -The fundamental options for specifying how to access the LDAP server are -the following: - - - `--ldap.enabled` this is a boolean option which must be set to - `true` to activate the LDAP feature - - `--ldap.server` is a string specifying the host name or IP address - of the LDAP server - - `--ldap.port` is an integer specifying the port the LDAP server is - running on, the default is `389` - - `--ldap.basedn` specifies the base distinguished name under which - the search takes place (can alternatively be set via `--ldap.url`) - - `--ldap.binddn` and `--ldap.bindpasswd` are distinguished name and - password for a read-only LDAP user to which ArangoDB can bind to - search the LDAP server. Note that it is necessary to configure these - for both the "simple" and "search" authentication methods, since - even in the "simple" method, ArangoDB occasionally has to refresh - the authorization information from the LDAP server - even if the user session persists and no new authentication is - needed! It is, however, allowed to leave both empty, but then the - LDAP server must be readable with anonymous access. - - `--ldap.refresh-rate` is a floating point value in seconds. The - default is 300, which means that ArangoDB refreshes the - authorization information for authenticated users after at most 5 - minutes. This means that changes in the LDAP server like removed - users or added or removed roles for a user are effective after - at most 5 minutes. - -Note that the `--ldap.server` and `--ldap.port` options can -alternatively be specified in the `--ldap.url` string together with -other configuration options. For details see Section "LDAP URLs" below. - -Here is an example on how to configure the connection to the LDAP server, -with anonymous bind: - -``` ---ldap.enabled=true \ ---ldap.server=ldap.arangodb.com \ ---ldap.basedn=dc=arangodb,dc=com -``` - -With this configuration ArangoDB binds anonymously to the LDAP server -on host `ldap.arangodb.com` on the default port 389 and executes all searches -under the base distinguished name `dc=arangodb,dc=com`. - -If we need a user to read in LDAP here is the example for it: - -``` ---ldap.enabled=true \ ---ldap.server=ldap.arangodb.com \ ---ldap.basedn=dc=arangodb,dc=com \ ---ldap.binddn=uid=arangoadmin,dc=arangodb,dc=com \ ---ldap.bindpasswd=supersecretpassword -``` - -The connection is identical but the searches are executed with the -given distinguished name in `binddn`. - -Note here: -The given user (or the anonymous one) needs at least read access on -all user objects to find them and in the case of Roles search -also read access on the objects storing the roles. - -Up to this point ArangoDB can now connect to a given LDAP server -but it is not yet able to authenticate users properly with it. -For this pick one of the following two authentication methods. - -### LDAP URLs - -As an alternative one can specify the values of multiple LDAP related configuration -options by specifying a single LDAP URL. Here is an example: - -``` ---ldap.url ldap://ldap.arangodb.com:1234/dc=arangodb,dc=com?uid?sub -``` - -This one option has the combined effect of setting the following: - -``` ---ldap.server=ldap.arangodb.com \ ---ldap.port=1234 \ ---ldap.basedn=dc=arangodb,dc=com \ ---ldap.searchAttribute=uid \ ---ldap.searchScope=sub -``` - -That is, the LDAP URL consists of the LDAP `server` and `port`, a `basedn`, a -`searchAttribute`, and a `searchScope` which can be one of `base`, `one`, or -`sub`. There is also the possibility to use the `ldaps` protocol as in: - -``` ---ldap.url ldaps://ldap.arangodb.com:636/dc=arangodb,dc=com?uid?sub -``` - -This does exactly the same as the one above, except that it uses the -LDAP over TLS protocol. This is a non-standard method which does not -involve using the STARTTLS protocol. Note that this does not work in the -Windows version! We suggest to use the `ldap` protocol and STARTTLS -as described in the next section. - -### TLS options - -{{< warning >}} -TLS is not supported in the Windows version of ArangoDB! -{{< /warning >}} - -To configure the usage of encrypted TLS to communicate with the LDAP server -the following options are available: - -- `--ldap.tls`: the main switch to active TLS. can either be - `true` (use TLS) or `false` (do not use TLS). It is switched - off by default. If you switch this on and do not use the `ldaps` - protocol via the [LDAP URL](#ldap-urls), then ArangoDB - uses the `STARTTLS` protocol to initiate TLS. This is the - recommended approach. -- `--ldap.tls-version`: the minimal TLS version that ArangoDB should accept. - Available versions are `1.0`, `1.1` and `1.2`. The default is `1.2`. If - your LDAP server does not support Version 1.2, you have to change - this setting. -- `--ldap.tls-cert-check-strategy`: strategy to validate the LDAP server - certificate. Available strategies are `never`, `hard`, - `demand`, `allow` and `try`. The default is `hard`. -- `--ldap.tls-cacert-file`: a file path to one or more (concatenated) - certificate authority certificates in PEM format. - As default no file path is configured. This certificate - is used to validate the server response. -- `--ldap.tls-cacert-dir`: a directory path to certificate authority certificates in - [c_rehash](https://www.openssl.org/docs/man3.0/man1/c_rehash.html) - format. As default no directory path is configured. - -Assuming you have the TLS CAcert file that is given to the server at -`/path/to/certificate.pem`, here is an example on how to configure TLS: - -``` ---ldap.tls true \ ---ldap.tls-cacert-file /path/to/certificate.pem -``` - -You can use TLS with any of the following authentication mechanisms. - -### Secondary server options (`ldap2`) - -The `ldap.*` options configure the primary LDAP server. It is possible to -configure a secondary server with the `ldap2.*` options to use it as a -fail-over for the case that the primary server is not reachable, but also to -let the primary servers handle some users and the secondary others. - -Instead of `--ldap.