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

Configuring Dashboards multi-authentication sign-in window #1549

Merged
merged 22 commits into from
Nov 2, 2022

Conversation

cwillum
Copy link
Contributor

@cwillum cwillum commented Oct 13, 2022

Signed-off-by: cwillum cwmmoore@amazon.com

Description

This documentation describes a new feature and steps for setting it up that will allow users to sign in to Dashboards using one of two or three authentication types presented as options in the sign-in window.

Issues Resolved

New documentation creates a section for describing steps for configuring Dashboards multi-authentication sign-in.

Checklist

  • By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
    For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Signed-off-by: cwillum <cwmmoore@amazon.com>
@cwillum cwillum added enhancement New feature or request dashboards 2 - In progress Issue/PR: The issue or PR is in progress. security v2.4.0 'Issues and PRs related to version v2.4.0' labels Oct 13, 2022
@cwillum cwillum requested a review from a team as a code owner October 13, 2022 04:23
@cwillum cwillum self-assigned this Oct 13, 2022
@cwillum cwillum marked this pull request as draft October 13, 2022 04:23
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
@cwillum cwillum added the 3 - Tech review PR: Tech review in progress label Oct 17, 2022
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
@cwillum cwillum marked this pull request as ready for review October 25, 2022 19:46
@cwillum cwillum removed the 2 - In progress Issue/PR: The issue or PR is in progress. label Oct 27, 2022
@@ -0,0 +1,131 @@
---
layout: default
title: Multi-option sign-in

Choose a reason for hiding this comment

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

Should we consider to use Multiple instead of Multi? Like Multiple Authentication Option for OpenSearch Dashboards


## Enabling multi-option sign-in

By default, Dashboards provides a single sign-in environment for basic authentication. To enable multiple options for authentication at sign-in, begin by adding `opensearch_security.auth.multiple_auth_enabled` to the `opensearch_dashboards.yml` file and setting it to `true`.

Choose a reason for hiding this comment

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

single sign-in environment can cause some confusion with 'single sign-on' using external IDP. We may consider to line up the wording with multiple options.


To specify the authentication types for multi-option sign-in, add the `opensearch_security.auth.type` setting to the `opensearch_dashboards.yml` file and enter multiple types as values. When more than one authentication type is added to the setting, the Dashboards sign-in window recognizes multiple types and adjusts to accommodate the sign-in options.

For single sign-in, the authentication type is specified by adding a single type to the setting.

Choose a reason for hiding this comment

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

Same issue for For single sign-in

Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Copy link

@aoguan1990 aoguan1990 left a comment

Choose a reason for hiding this comment

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

@cwillum Thank you so much for the great documentation! Reviewed all the changes, it looks good to me now!

nav_order: 3
---

# Multiple option authentication for Dashboards sign-in
Copy link
Contributor

Choose a reason for hiding this comment

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

just an optional suggestion. . .could it be more direct?

"Configure Dashboards sign-in options"


## Enabling multiple option authentication

By default, Dashboards provides basic authentication as a single option for signing in. To enable multiple options for authentication, begin by adding `opensearch_security.auth.multiple_auth_enabled` to the `opensearch_dashboards.yml` file and setting it to `true`.
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe keep parallel with all option descriptions in the section?
"begin by adding" --> "add opensearch_security.auth.multiple_auth_enabled to the opensearch_dashboards.yml file and set it to true."

Copy link
Contributor

@alicejw1 alicejw1 left a comment

Choose a reason for hiding this comment

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

Looks really good!

@cwillum cwillum removed the 3 - Tech review PR: Tech review in progress label Oct 31, 2022
Copy link
Collaborator

@natebower natebower left a comment

Choose a reason for hiding this comment

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

@cwillum Please see my comments and changes, and let me know if you have any questions. Thanks!


You can configure the sign-in window for OpenSearch Dashboards to provide either a single option for authenticating users at sign-in or multiple options. Currently, Dashboards supports basic authentication, OpenID Connect, and SAML as the multiple options.

## General steps for configuring multiple option authentication
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can we include a brief sentence between the heading and the list that introduces the list?

## General steps for configuring multiple option authentication

1. Decide which types of authentication to make available at sign-in.
1. Configure each authentication type, including an authentication domain for the identification provider (IdP) and the essential settings that give each type sign-in access to OpenSearch Dashboards. For OpenId Connect backend configuration, see [OpenID Connect]({{site.url}}{{site.baseurl}}/security-plugin/configuration/openid-connect/); For SAML backend configuration, see [SAML]({{site.url}}{{site.baseurl}}/security-plugin/configuration/saml/).
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
1. Configure each authentication type, including an authentication domain for the identification provider (IdP) and the essential settings that give each type sign-in access to OpenSearch Dashboards. For OpenId Connect backend configuration, see [OpenID Connect]({{site.url}}{{site.baseurl}}/security-plugin/configuration/openid-connect/); For SAML backend configuration, see [SAML]({{site.url}}{{site.baseurl}}/security-plugin/configuration/saml/).
1. Configure each authentication type, including an authentication domain for the identity provider (IdP) and the essential settings that give each type sign-in access to OpenSearch Dashboards. For OpenId Connect backend configuration, see [OpenID Connect]({{site.url}}{{site.baseurl}}/security-plugin/configuration/openid-connect/); For SAML backend configuration, see [SAML]({{site.url}}{{site.baseurl}}/security-plugin/configuration/saml/).

When setting up Dashboards to provide multiple authentication options, basic authentication is always required as one of the values for the setting.
{: .note }

For single option sign-in, the authentication type is specified by adding a single type to the setting.
Copy link
Collaborator

Choose a reason for hiding this comment

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

This should be "single-option sign-in". Or could we just say "For basic authentication, the..."?

opensearch_security.auth.multiple_auth_enabled: true
```

When the `opensearch_security.auth.type` setting contains `basicauth` and one other authentication type, the sign-in window appears as in the example below.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
When the `opensearch_security.auth.type` setting contains `basicauth` and one other authentication type, the sign-in window appears as in the example below.
When the `opensearch_security.auth.type` setting contains `basicauth` and one other authentication type, the sign-in window appears as in the following example.


<img src="{{site.url}}{{site.baseurl}}/images/Security/OneOptionWithoutLogo.png" alt="Basic authentication and one other type in the sign-in window" width="350">

With all three valid authentication types specified, the sign-in window appears as in the following example:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
With all three valid authentication types specified, the sign-in window appears as in the following example:
With all three valid authentication types specified, the sign-in window appears as in the following example.


## Customizing the sign-in environment

In addition to the essential sign-in settings for each authentication type, you can configure additional settings in the `opensearch_dashboards.yml` file to customize the sign-in window so that it clearly represents the options that are available. For example, you can replace the label on the sign-in button with the name and icon of the IdP. Use the settings below to change the look and feel of the different options.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's clarify the last sentence. "Use the settings described in the following sections"?


### Basic authentication settings

The settings below are used to customize the basic username and password sign-in button.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
The settings below are used to customize the basic username and password sign-in button.
The following settings are used to customize the basic username and password sign-in button.

`opensearch_security.ui.saml.login.showbrandimage` | Determines whether a logo for the login button is displayed or not. Default is `false`.

## Sample setup
The following example shows basic settings in the `opensearch_dashboards.yml` file when configured for two types of authentication at sign-in.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
The following example shows basic settings in the `opensearch_dashboards.yml` file when configured for two types of authentication at sign-in.
The following example shows basic settings in the `opensearch_dashboards.yml` file when it is configured for two types of authentication at sign-in.

@@ -0,0 +1,130 @@
---
layout: default
title: Multiple option authentication
Copy link
Collaborator

Choose a reason for hiding this comment

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

Re: your comment in the Asana task, this would need to be "Multiple-option authentication", but rather than naming the "feature" as such, could we just say something like "Multiple authentication options" or "Multiple options for authentication"? Apply the change in language globally.

Signed-off-by: cwillum <cwmmoore@amazon.com>
Signed-off-by: cwillum <cwmmoore@amazon.com>
Copy link
Collaborator

@vagimeli vagimeli left a comment

Choose a reason for hiding this comment

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

Minimal edits. Looks good.

_security-plugin/configuration/multi-auth.md Show resolved Hide resolved
_security-plugin/configuration/multi-auth.md Outdated Show resolved Hide resolved
_security-plugin/configuration/multi-auth.md Outdated Show resolved Hide resolved
Signed-off-by: cwillum <cwmmoore@amazon.com>
@cwillum cwillum merged commit 824e4a9 into main Nov 2, 2022
@cwillum cwillum deleted the fix#1488-multi-authentication-config branch November 2, 2022 19:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dashboards enhancement New feature or request security v2.4.0 'Issues and PRs related to version v2.4.0'
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants