Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: LDAP service account setup #8875

Merged
merged 18 commits into from
Nov 19, 2021
Merged

Conversation

ibeckermayer
Copy link
Contributor

Adds instructions for setting up an LDAP service account with the minimum required permissions for Teleport to work.

One thing to note is -- This could be somewhat simplified by applying the Group Policy Object and the fine-grained permissions in the PowerShell script to the service account User directly, rather than applying them to a Group and adding the User to the Group. Since this is my first time configuring anything in Active Directory, I elected to go with the standard chain of GPO -> Group -> User to avoid any potential mishap due to a non-standard configuration.

docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved
@zmb3 zmb3 changed the title LDAP service account setup docs: LDAP service account setup Nov 5, 2021
docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved
@zmb3 zmb3 mentioned this pull request Nov 9, 2021
6 tasks
docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved
docs/pages/desktop-access/getting-started.mdx Outdated Show resolved Hide resolved

Find your domain in the side menu, and right click the container you want the service account to live in (typically Users). From the context
menu, select `New > User` and fill out the fields for your Teleport LDAP Service Account. For the "User logon name" field, you can use `svc-teleport`
On the password screen, unselect “User must change password at next login” and select “Password never expires”. Make a note of what values you put
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Users will be concerned about old passwords that are insecure and unexpiring? Is there any way to make sure that these passwords are never used

Copy link
Collaborator

@zmb3 zmb3 Nov 10, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This password is used by teleport to talk to LDAP, but we disable interactive login and restrict the permissions so it can't be used to login to a host or do any actions outside of what teleport requires.

# This is usually the same password you use to login to the Domain Controller.
password_file: /var/lib/ldap-pass
```
Now right click the same container you did before, and select `New > Group`. Choose a Group name like `svc-teleport-group` and ensure that “Global”
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Observation: users will be making a lot of mistakes here. Can we implement something like #8896 for Desktop Access?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a separate issue filed to look into how much of this we can automate. It's looking like the answer is "not very much" but we'll see what we can do.

@ibeckermayer
Copy link
Contributor Author

This requires a further update once #8932 is merged, so I'm converting it to a draft until that happens.

@ibeckermayer ibeckermayer marked this pull request as draft November 11, 2021 19:28
@ibeckermayer ibeckermayer marked this pull request as ready for review November 12, 2021 20:18
@russjones
Copy link
Contributor

@quinqu Can you take a look at this PR. It looks like Sasha approved, but then Isaiah re-requested a review. I think in that case, the check workflow should fail, but here it's passing.


```text
Computer Configuration > Policies > Windows Settings > Security Settings > Windows Firewall and Advanced Security
## Step 5/6. Configure Teleport
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This order is much better.

Run the PowerShell script below, replacing variable values where appropriate.

```powershell
$DomainDN="DC=domain-controller,DC=example,DC=com" # replace this with your domain
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this case, the cluster name needs to be same as the FQDN of the Teleport proxy?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, that should say "Domain Controller domain"

@benarent
Copy link
Contributor

Good job improving the setup instructions @ibeckermayer, I've found a few small issue and had submitted suggestions.

Is this ready to be deployed? I'm waiting for these instrustions before recording my setup video.

@ibeckermayer
Copy link
Contributor Author

@benarent

Is this ready to be deployed? I'm waiting for these instrustions before recording my setup video.

It's ready in the sense that these instructions are complete. I believe I need at least one more code owner approval and it looks like there are some new CI checks that are failing, but I don't know why (@quinqu ?)

@ibeckermayer
Copy link
Contributor Author

FTR: The failing checks are under development and are optional, per https://gravitational.slack.com/archives/C0DF0TPMY/p1637295406278500

@ibeckermayer ibeckermayer merged commit f44561d into master Nov 19, 2021
@ibeckermayer ibeckermayer deleted the isaiah/ldap-service-account branch November 19, 2021 21:10
zmb3 added a commit that referenced this pull request Dec 2, 2021
* updating docs with service account tutorial

* minor corrections

* Apply suggestions from code review

Co-authored-by: Zac Bergquist <[email protected]>

* wording changes based on CR

* minor changes and fixes and adds updated photos with new naming convention

* Updating documentation

* updating gpo instructions to actually make sense

* nits

* adding instructions for exporting ca

* removing unhelpful screen shot

* Fixes quotes and updates to LDAPS

Co-authored-by: Ben Arent <[email protected]>

* clarifying comment

Co-authored-by: Zac Bergquist <[email protected]>
Co-authored-by: Ben Arent <[email protected]>
zmb3 added a commit that referenced this pull request Dec 3, 2021
* Expose endpoint for fetching single desktop (#9041)

* updates endpoints

* Exposes an endpoint for fetching a single desktop by name

* Apply suggestions from code review

Co-authored-by: Zac Bergquist <[email protected]>

* changes inaccurate desktopUUID to desktopName

Co-authored-by: Zac Bergquist <[email protected]>

* docs: LDAP service account setup (#8875)

* updating docs with service account tutorial

* minor corrections

* Apply suggestions from code review

Co-authored-by: Zac Bergquist <[email protected]>

* wording changes based on CR

* minor changes and fixes and adds updated photos with new naming convention

* Updating documentation

* updating gpo instructions to actually make sense

* nits

* adding instructions for exporting ca

* removing unhelpful screen shot

* Fixes quotes and updates to LDAPS

Co-authored-by: Ben Arent <[email protected]>

* clarifying comment

Co-authored-by: Zac Bergquist <[email protected]>
Co-authored-by: Ben Arent <[email protected]>

* Enhance LDAP desktop discovery (#9152)

* Refactor component heartbeat callbacks

Consolidate the OK/degraded broadcasts so the same logic isn't
duplicated for each component.

* Periodically update discovered desktops

Fixes #8644

* Allow customizing the desktop search

With this change, we support a discovery base DN other than '*',
and add support for further filtering the results with additional
LDAP filters.

Additionally, we filter out group managed service accounts, which
show up in LDAP searches for (objectClass=computer), despite not
being comptuers. (This is mostly harmless, as the service accounts
aren't present in DNS, so Teleport just ignores them. It does, however,
log a DNS error message that could be confusing, so we explicitly
filter these out just to be safe. This was discovered when testing
on AWS managed AD, which creates a gMSA for DNS.

* simplify connection establishment (#9098)

* Adds username and initial screen size to the websocket parameter string and sends over tdp during the connection process

* simplifications from CR

* fixes // //

* Update e ref

* Create separate builds for CentOS7 (+fips)

Add new buildboxes for centos7 and centos7-fips.

For now, we will continue to support both CentOS 6 and 7.
Eventually we will drop support for CentOS 6, and the only
supported CentOS builds will be these new CentOS 7 builds.

Fixes #9028

* [auto] Update webassets in zmb3/desktop-access-backports (#9210)

444cf33 simplify connection establishment (#480) gravitational/webapps@444cf33

[source: -w teleport-v8] [target: -t zmb3/desktop-access-backports]

Co-authored-by: Isaiah Becker-Mayer <[email protected]>
Co-authored-by: Ben Arent <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants