# Access Manager Service

## Prerequisites

In order to install the Access Manager Service, the following prerequisites must be met;

1. Windows Server 2012 R2 or later
2. [.NET Core Desktop Runtime](https://dotnet.microsoft.com/download/dotnet-core/current/runtime) 3.1.4 or later installed
3. [ASP.NET Core Hosting Bundle](https://dotnet.microsoft.com/download/dotnet-core/current/runtime) 3.1.4 or later installed
4. An SSL certificate for the AMS web site

## Step 1: Create a service account

The Access Manger Service needs to run under the context of a domain user account. We strongly recommend using a group-managed service account for this purpose. [We've created a guide for setting up a GMSA](https://docs.lithnet.io/ams/v1.0/installation/creating-a-service-account-for-the-access-manager-service) which includes a script to get you up and running quickly.

Do not grant any specific permissions to this account and most certainly don't add it to super-privileged groups like Domain Administrators. As you go through the setup process, you'll be given scripts to delegate permissions specific to the functionality you want to enable.

## Step 2: Prepare an SSL certificate

Determine the host name you will use to access AMS and request an SSL certificate from your certificate provider. Install the certificate in the 'personal' store of the local computer.

## Step 3: Download and install the AMS service

1. Download the latest version from the [releases](https://github.com/lithnet/access-manager/releases/latest) page.
2. Download and install the [.NET Core Desktop runtime and the ASP.NET Core hosting bundle](https://dotnet.microsoft.com/download/dotnet-core/current/runtime), or if your server has internet access you can let the installer download and install these for you
3. Run the AMS installation package. Follow the prompts to install the application and provide the service account created in step 1 when prompted.

## Step 4: Configure the web host

Run the Access Manager Service configuration tool. You'll be prompted to set up the web host.

![](https://1984618955-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAsBzwJDeLC2ny10RHLdI%2Fuploads%2Fgit-blob-1416a28f902209701482b3fe8b663d2ec8053797%2Fui-page-webhosting-notconfigured.png?alt=media)

Click the `Select from store...` button and select the certificate you installed in step 2.

Validate that the ports are correct, and click `File`, then `Save`.

[More information on configuring the web host](https://docs.lithnet.io/ams/v1.0/advanced-help/app_pages/web-hosting-page)

## Step 5: Configure your authentication provider

AMS supports several different authentication providers. Read the guide on configuring authentication and choose an authentication provider. We strongly recommend using a modern authentication provider that supports strong authentication and can enforce multi-factor authentication. While integrated windows authentication is provided, we recommend you only use this for testing purposes.

The following pages will guide you through the process of configuring the relevant authentication provider for use with Access Manager.

* [Setting up authentication with Azure AD](https://docs.lithnet.io/ams/v1.0/configuration/setting_up_authentication/setting-up-authentication-with-azure-ad)
* [Setting up authentication with Okta](https://docs.lithnet.io/ams/v1.0/configuration/setting_up_authentication/setting-up-authentication-with-okta)
* [Setting up authentication with ADFS](https://docs.lithnet.io/ams/v1.0/configuration/setting_up_authentication/setting-up-authentication-with-adfs)

## Step 6: Configure the Web User Interface

![](https://1984618955-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAsBzwJDeLC2ny10RHLdI%2Fuploads%2Fgit-blob-1fd1548f13d82223972d3a1cf22bde885f1ed839%2Fui-page-userinterface.png?alt=media)

Configure the user interface as per your organization's requirements. You can customize the name of the application, provide your own logo and even provide some custom policy text for the access request page.

[More information on user interface settings](https://docs.lithnet.io/ams/v1.0/advanced-help/app_pages/user-interface-page)

## Step 7: Configure Email server

![](https://1984618955-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAsBzwJDeLC2ny10RHLdI%2Fuploads%2Fgit-blob-a7f952a8c315604ed7c8bb8f79e002eb63053150%2Fui-page-email.png?alt=media)

You'll need to configure an outbound mail server in order to receive audit alerts via email.

[More information on email settings](https://docs.lithnet.io/ams/v1.0/advanced-help/app_pages/email-page)

## Step 8: Configure Rate Limits

\
In order to ensure that your service is not used inappropriately, you can place limits of the number of requests a user can make in a given time. You should set these high enough that your users are not going to encounter rate limit issues under normal usage, but low enough to limit the impact of inappropriate or malicious usage of the service.

![](https://1984618955-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAsBzwJDeLC2ny10RHLdI%2Fuploads%2Fgit-blob-3fd5c5e9f6e8d436091c671f6b67b7d6b8b18119%2Fui-page-ratelimits.png?alt=media)

[More information on rate limiting](https://docs.lithnet.io/ams/v1.0/advanced-help/app_pages/rate-limits-page)

## Step 9: Configure IP Detection

![](https://1984618955-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAsBzwJDeLC2ny10RHLdI%2Fuploads%2Fgit-blob-de5b22ccc7e3061dc3ac9a73168c28a6b8ebd85d%2Fui-page-ipaddressdetection.png?alt=media)

If you put AMS behind a reverse proxy or load balancer, you'll need to configure IP address detection. This is to ensure that AMS logs the correct IP address in audit logs, and applies rate limiting correctly.

[More information on IP address detection](https://docs.lithnet.io/ams/v1.0/advanced-help/app_pages/ip-address-detection-page)

## Step 10: Configure Active Directory permissions

![!](https://1984618955-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAsBzwJDeLC2ny10RHLdI%2Fuploads%2Fgit-blob-65f1183bf9f868147084071d3fdd390e7b0997df%2Fui-page-activedirectory.png?alt=media)

From the `Active Directory` tab, check that the AMS service account is a member of the `Windows Authorization Access Group` and `Access Control Assistance Operators` built-in groups within each domain. This is required for the AMS service account to be able to calculate access permissions for users and computers within these domains.

You will need to restart the service to pick up the new group membership in the local domain.

Don't worry about the schema section at this stage, if you need to deploy any schema changes the appropriate feature guide will direct you to do so.

[More information on configuring Active Directory](https://docs.lithnet.io/ams/v1.0/advanced-help/app_pages/active-directory-page)

## Step 11: Configure Auditing

\
AMS has a powerful auditing engine that allows you to receive notifications when access is granted or denied to a user. AMS logs audit events to the Windows event log all the time, but you can also send audit events via email, through a custom PowerShell script, or even to Slack or Microsoft Teams using a web hook.

![](https://1984618955-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAsBzwJDeLC2ny10RHLdI%2Fuploads%2Fgit-blob-00347d0ef381ad4f8a3be7d1a042df47f52c94ff%2Fui-page-auditing-smtp.png?alt=media)

[More information on Auditing](https://docs.lithnet.io/ams/v1.0/advanced-help/app_pages/auditing-page)

## Step 12: Configure support for local admin password, just in time access, and Bitlocker

Now that you have the core application set up, you can configure the Access Manager features you are interested in;

* [Setting up Microsoft LAPS](https://docs.lithnet.io/ams/v1.0/configuration/deploying_features/setting-up-microsoft-laps)
* [Setting up password encryption and history](https://docs.lithnet.io/ams/v1.0/configuration/deploying_features/setting-up-password-encryption-and-history)
* [Setting up JIT access](https://docs.lithnet.io/ams/v1.0/configuration/deploying_features/setting-up-jit-access)
* [Setting up BitLocker access](https://docs.lithnet.io/ams/v1.0/configuration/deploying_features/setting-up-bitlocker-access)
