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

Issue and ferry Service Account Tokens and On-Behalf-Of Tokens to an Extension #94

Open
wants to merge 27 commits into
base: main
Choose a base branch
from

Conversation

cwperks
Copy link
Owner

@cwperks cwperks commented Jul 21, 2023

Companion Security PR: cwperks/security#6

This is an example PR for integration testing with the extension SDK.

This is the corresponding PR in core for introducing and utilizing the TokenManager interface of an IdentityPlugin which has methods that are called to issue service account tokens and on-behalf-of tokens. After issuance, these tokens are ferried over to an extension.

  • A Service Account Token is ferried over to an extension on an extension initialization request. This PR only covers ferrying a token on bootstrap and does not cover any flows on extensions requesting a new service account token. This PR treats service account tokens as indefinite (like how passwords are treated in OpenSearch today) and new ones would only be issued on initialization. In the event a token is compromised, its not possible to revoke it. Similar to losing an SSN, you would need to change your identity (extension_unique_id) to recover.

  • An on-behalf-of token is issued just-in-time, meaning just before the REST Request that is proxied through the OpenSearch node is forwarded to an extension. These are short-lived tokens that are not revokable.

stephen-crawford and others added 25 commits July 12, 2023 15:54
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Stephen Crawford <steecraw@amazon.com>
Signed-off-by: Craig Perkins <cwperx@amazon.com>
Signed-off-by: Craig Perkins <cwperx@amazon.com>
@github-actions
Copy link

Gradle Check (Jenkins) Run Completed with:

  • RESULT: null ❌
  • URL:
  • CommitID: 601a3d6
    Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green.
    Is the failure a flaky test unrelated to your change?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants