-
Notifications
You must be signed in to change notification settings - Fork 700
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into fix/2234-bug-unstable-test-test_incidentspyt…
…est_incident_status_change
- Loading branch information
Showing
178 changed files
with
5,290 additions
and
2,436 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,202 @@ | ||
--- | ||
title: "Azure AD Authentication" | ||
--- | ||
|
||
<Tip> | ||
This feature is a part of Keep Enterprise. | ||
|
||
Talk to us to get access: https://www.keephq.dev/meet-keep | ||
</Tip> | ||
|
||
Keep supports enterprise authentication through Azure Active Directory (Azure AD), enabling organizations to use their existing Microsoft identity platform for secure access management. | ||
|
||
## When to Use | ||
|
||
- **Microsoft Environment:** If your organization uses Microsoft 365 or Azure services, Azure AD integration provides seamless authentication. | ||
- **Enterprise SSO:** Leverage Azure AD's Single Sign-On capabilities for unified access management. | ||
|
||
## Setup Instructions (on Azure AD) | ||
|
||
### Creating an Azure AD Application | ||
|
||
1. Sign in to the [Azure Portal](https://portal.azure.com) | ||
2. Navigate to **Microsoft Entra ID** > **App registrations** > **New registration** | ||
|
||
<Frame> | ||
<img src="/images/azuread_1.png" width="1000" alt="Azure AD App Registration"/> | ||
</Frame> | ||
|
||
3. Configure the application: | ||
- Name: "Keep" | ||
|
||
<Info>Note that we are using "Register an application to integrate with Microsoft Entra ID (App you're developing)" since you're self-hosting Keep and need direct control over the authentication flow and permissions for your specific instance - unlike the cloud/managed version where Keep's team has already configured a centralized application registration.</Info> | ||
|
||
<Frame> | ||
<img src="/images/azuread_2.png" width="1000" alt="Azure AD App Registration"/> | ||
</Frame> | ||
|
||
4. Configure the application (continue) | ||
- Supported account types: "Single tenant" | ||
|
||
<Info> | ||
We recommend using "Single tenant" for enhanced security as it restricts access to users within your organization only. While multi-tenant configuration is possible, it would allow users from any Azure AD directory to access your Keep instance, which could pose security risks unless you have specific cross-organization requirements. | ||
</Info> | ||
|
||
- Redirect URI: "Web" + your redirect URI | ||
|
||
<Info> | ||
We use "Web" platform instead of "Single Page Application (SPA)" because Keep's backend handles the authentication flow using client credentials/secrets, which is more secure than the implicit flow used in SPAs. This prevents exposure of tokens in the browser and provides stronger security through server-side token validation and refresh token handling. | ||
</Info> | ||
|
||
<Tip> | ||
For localhost, the redirect would be http://localhost:3000/api/auth/callback/azure-ad | ||
|
||
For production, it should be something like http://your_keep_frontend_domain/api/auth/callback/azure-ad | ||
|
||
</Tip> | ||
|
||
<Frame> | ||
<img src="/images/azuread_3.png" width="1000" alt="Azure AD App Registration"/> | ||
</Frame> | ||
|
||
5. Finally, click "register" | ||
|
||
### Configure Authentication | ||
After we created the application, let's configure the authentication. | ||
|
||
1. Go to "App Registrations" -> "All applications" | ||
|
||
<Frame> | ||
<img src="/images/azuread_4.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
|
||
2. Click on your application -> "Add a certificate or secret" | ||
|
||
<Frame> | ||
<img src="/images/azuread_5.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
|
||
3. Click on "New client secret" and give it a name | ||
|
||
<Frame> | ||
<img src="/images/azuread_6.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
4. Keep the "Value", we will use it soon as `KEEP_AZUREAD_CLIENT_SECRET` | ||
|
||
<Frame> | ||
<img src="/images/azuread_7.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
### Configure Groups | ||
|
||
Keep maps Azure AD groups to roles with two default groups: | ||
1. Admin Group (read + write) | ||
2. NOC Group (read only) | ||
|
||
To create those groups, go to Groups -> All groups and create two groups: | ||
|
||
<Frame> | ||
<img src="/images/azuread_16.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
Keep the Object id of these groups and use it as `KEEP_AZUREAD_ADMIN_GROUP_ID` and `KEEP_AZUREAD_NOC_GROUP_ID`. | ||
|
||
### Configure Group Claims | ||
|
||
1. Navigate to **Token configuration** | ||
|
||
<Frame> | ||
<img src="/images/azuread_8.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
|
||
2. Add groups claim: | ||
- Select "Security groups" and "Groups assigned to the application" | ||
- Choose "Group ID" as the claim value | ||
|
||
<Frame> | ||
<img src="/images/azuread_9.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
|
||
<Frame> | ||
<img src="/images/azuread_10.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
### Configure Application Scopes | ||
|
||
1. Go to "Expose an API" and click on "Add a scope" | ||
|
||
<Frame> | ||
<img src="/images/azuread_11.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
2. Keep the default Application ID and click "Save and continue" | ||
|
||
<Frame> | ||
<img src="/images/azuread_12.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
3. Add "default" as scope name, also give a display name and description | ||
|
||
<Frame> | ||
<img src="/images/azuread_13.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
3. Finally, click "Add scope" | ||
|
||
<Frame> | ||
<img src="/images/azuread_14.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
## Setup Instructions (on Keep) | ||
|
||
After you configured Azure AD you should have the following: | ||
1. Azure AD Tenant ID | ||
2. Azure AD Client ID | ||
|
||
How to get: | ||
|
||
<Frame> | ||
<img src="/images/azuread_15.png" width="1000" alt="Azure AD Authentication Configuration"/> | ||
</Frame> | ||
|
||
3. Azure AD Client Secret [See Configure Authentication](#configure-authentication). | ||
4. Azure AD Group ID's for Admins and NOC (read only) [See Configure Groups](#configure-groups). | ||
|
||
|
||
### Configuration | ||
|
||
#### Frontend | ||
|
||
| Environment Variable | Description | Required | Default Value | | ||
|--------------------|-------------|:---------:|:-------------:| | ||
| AUTH_TYPE | Set to 'AZUREAD' for Azure AD authentication | Yes | - | | ||
| KEEP_AZUREAD_CLIENT_ID | Your Azure AD application (client) ID | Yes | - | | ||
| KEEP_AZUREAD_CLIENT_SECRET | Your client secret | Yes | - | | ||
| KEEP_AZUREAD_TENANT_ID | Your Azure AD tenant ID | Yes | - | | ||
| NEXTAUTH_URL | Your Keep application URL | Yes | - | | ||
| NEXTAUTH_SECRET | Random string for NextAuth.js | Yes | - | | ||
|
||
#### Backend | ||
|
||
| Environment Variable | Description | Required | Default Value | | ||
|--------------------|-------------|:---------:|:-------------:| | ||
| AUTH_TYPE | Set to 'AZUREAD' for Azure AD authentication | Yes | - | | ||
| KEEP_AZUREAD_TENANT_ID | Your Azure AD tenant ID | Yes | - | | ||
| KEEP_AZUREAD_CLIENT_ID | Your Azure AD application (client) ID | Yes | - | | ||
| KEEP_AZUREAD_ADMIN_GROUP_ID | The group ID of Keep Admins (read write) | Yes | - | | ||
| KEEP_AZUREAD_NOC_GROUP_ID | The group ID of Keep NOC (read only) | Yes | - | | ||
|
||
## Features and Limitations | ||
|
||
#### Supported Features | ||
- Single Sign-On (SSO) | ||
- Role-based access control through Azure AD groups | ||
- Multi-factor authentication (when configured in Azure AD) | ||
|
||
#### Limitations | ||
See [Overview](/deployment/authentication/overview) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,63 @@ | ||
--- | ||
title: "Introduction" | ||
description: "Keep is an open-source alert management and automation tool that provides everything you need to collect, enrich and manage alerts effectively." | ||
description: "Keep is an open-source alert management and AIOps platform that is a swiss-knife for alerting, automation, and noise reduction." | ||
--- | ||
<Note> You can start using Keep by logging in to the [platform](https://platform.keephq.dev).</Note> | ||
|
||
<Note> | ||
{" "} | ||
You can start exploring Keep by simply logging in to the [platform](https://platform.keephq.dev). | ||
Make sure to also join our [Slack community](https://slack.keephq.dev) to get help | ||
and share your feedback. | ||
</Note> | ||
|
||
## What's an alert? | ||
|
||
An alert is an event that is triggered when something undesirable occurs or is about to occur. | ||
It is usually triggered by monitoring tools such as Prometheus, Grafana, or CloudWatch, and some proprietary tools. | ||
It is usually triggered by monitoring tools. Example could include: Prometheus, Grafana, Datadog or CloudWatch, and your own proprietary tools. | ||
|
||
Alerts are usually categorized into three different groups: | ||
|
||
- Infrastructure-related alerts - e.g., a virtual machine consumes more than 99% CPU. | ||
- Application-related alerts - e.g., an endpoint starts returning 5XX status codes. | ||
- Business-related alerts - e.g., a drop in the number of sign-ins or purchases. | ||
|
||
## What problem does Keep solve? | ||
|
||
Keep helps with every step of the alert lifecycle: | ||
1. Maintenance - Keep integrates with all of your monitoring tools, allowing you to manage all of your alerts within a single interface. | ||
2. Noise reduction - By integrating with monitoring tools, Keep can deduplicate and correlate alerts to reduce noise in your organization. There are 2 types of deduplication: Rule-based (all distributions), and AI-based (Keep Enterprise only). | ||
3. Automation - [Keep Workflows](/workflows) enables automated alert enrichment and response. | ||
4. Incident Correlation - Automatically assigns alerts to incidents, performs triage, and conducts root cause analysis (Keep Enterprise only). | ||
5. Summarization - Keep summarizes incidents based on past incidents and a knowledge base (Keep Enterprise only). | ||
|
||
## How does Keep integrate with alerts? | ||
Alerts can either be [pulled](/platform/alerts#pulled-alerts) by Keep or [pushed](/platform/alerts#pushed-alerts) into it. Keep also offers zero-click alert instrumentation through [webhook installation](/providers/overview). | ||
|
||
1. Maintenance - Keep integrates with all of your monitoring tools, allowing you to manage all of your alerts within a single pane of glass. | ||
2. Noise reduction - By integrating with monitoring tools, Keep can deduplicate and correlate alerts to reduce noise in your organization. There are 2 types of deduplication: Rule-based (semi-manual) and AI-based (fully automated). | ||
3. Automation - [Keep Workflows](/workflows) is a GitHub Actions-like experience for automating anything that is triggered by things in Keep: alerts, events, incidents, manually and based on time intervals. It can help with: alert enrichment, ticket creation, self-healing, root cause analysis, and more. | ||
4. Incident Correlation - Correlate alerts to incidents, performs triage, and conducts root cause analysis. | ||
|
||
## How does Keep get my alerts? | ||
|
||
There are primarily two ways to get alerts into Keep: | ||
|
||
### Push | ||
|
||
When you connect a [Provider](/providers), Keep automatically instruments the tools to send alerts to Keep via webhook. | ||
As an example, when you connect Grafana, Keep will automatically create a new Webhook contact point in Grafana, and a new Notification Policy to send all alerts to Keep. | ||
|
||
You can configure which providers you want to push from by checking the `Install Webhook` checkbox in the provider settings. | ||
|
||
<Frame> | ||
<img src="/images/pushing-enabled.png" /> | ||
</Frame> | ||
|
||
### Pull | ||
|
||
When you connect a [Provider](/providers), Keep will start pulling alerts from the tool automatically. | ||
Pulling interval is defined by the `KEEP_PULL_INTERVAL` environment variable and defaults to 7 days and can be completely turned off by using the `KEEP_PULL_DATA_ENABLED` environment variable. | ||
|
||
You can also configure which providers you want to pull from by checking the `Pulling Enabled` checkbox in the provider settings. | ||
|
||
<Frame> | ||
<img src="/images/pulling-enabled.png" /> | ||
</Frame> | ||
|
||
<Tip> | ||
We strongly recommend using the push method for alerting, as pulling does not | ||
include a lot of the features, like workflow automation. It is mainly used for | ||
a quick way to get alerts into Keep and start exploring the value. | ||
</Tip> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Empty file.
Oops, something went wrong.