-
Notifications
You must be signed in to change notification settings - Fork 340
Description
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.
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.
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.
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
Assignees
Labels
Type
Projects
Status