Skip to content

Add Extension Service Accounts #2584

@stephen-crawford

Description

@stephen-crawford

Problem Statement

Based on the discussions on decision document review and comment discussions, I am moving forward with implementing service accounts for Extensions.

As part of implementing service accounts, there are several individual items that will need to be addressed.

Specifically the Security Plugin:

  • Needs to know what extensions exist
  • Needs to know how to make a service account
  • Needs to be able to give the service account to an extension

After addressing these items, the a mock up of a service account can be provided. The mock up will include details on how the Security Plugin can authenticate a service account and how a service account is treated differently than a user account.

$\textcolor{cyan}{\textsf{Needs to know what extensions exist}}$

For the Security Plugin to know what extensions exist, we can just implement a new API similar to the existing _cat/plugins API. this will allow the Security Plugin to know which extensions are installed.

The other alternative would be to parse the service accounts to find the extensions associated with each but this would be a costly process taking O(n) to resolve a single extension.

You could alternatively inject the Extensions Manager into the Guice Holder for the Security Plugin.

Until proven otherwise, it appears to make much more sense to choose the first option.

$\textcolor{cyan}{\textsf{Needs to know how to make a service account}}$

When an extension is installed, we will want core to share information about the extension with the Security Plugin. The Security Plugin can then use that information to create a service account for the extension along the lines of the comments on this issue and this write up.

$\textcolor{cyan}{\textsf{Needs to be able to give the service account to the extension}}$

After a service account is created for an extension, the Security Plugin will need to give that account to the extension. The most straightforward way of doing this is by sending the service account credentials back to core and then having core provide those details to the extension as part of the installation process. There is not a clear alternative to this solution since the extension will not actually be speaking directly with the Security Plugin at any point of installation.

Metadata

Metadata

Labels

triagedIssues labeled as 'Triaged' have been reviewed and are deemed actionable.

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions