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

Implement on behalf of token passing for extensions #8679

Merged

Conversation

stephen-crawford
Copy link
Contributor

@stephen-crawford stephen-crawford commented Jul 13, 2023

Description

This PR introduces basic token passing within the RestSendToExtensionAction. These tokens provide authc/z capabilities when supported by a complete Identity Plugin.

Completes: opensearch-project/security#2764

Check List

  • New functionality includes testing.
    • All tests pass
  • New functionality has been documented.
    • New functionality has javadoc added
  • Commits are signed per the DCO using --signoff
  • Commit changes are listed out in CHANGELOG.md file (See: Changelog)

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

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

Signed-off-by: Stephen Crawford <[email protected]>
@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@opensearch-trigger-bot
Copy link
Contributor

Compatibility status:



> Task :checkCompatibility
Incompatible components: [https:/opensearch-project/geospatial.git, https:/opensearch-project/notifications.git, https:/opensearch-project/neural-search.git, https:/opensearch-project/index-management.git, https:/opensearch-project/security-analytics.git, https:/opensearch-project/job-scheduler.git, https:/opensearch-project/sql.git, https:/opensearch-project/k-nn.git, https:/opensearch-project/observability.git, https:/opensearch-project/alerting.git, https:/opensearch-project/cross-cluster-replication.git, https:/opensearch-project/anomaly-detection.git, https:/opensearch-project/asynchronous-search.git, https:/opensearch-project/performance-analyzer.git, https:/opensearch-project/common-utils.git, https:/opensearch-project/reporting.git]
Compatible components: [https:/opensearch-project/security.git, https:/opensearch-project/opensearch-oci-object-storage.git, https:/opensearch-project/ml-commons.git, https:/opensearch-project/performance-analyzer-rca.git]

BUILD SUCCESSFUL in 23m 58s

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@opensearch-trigger-bot
Copy link
Contributor

Compatibility status:



> Task :checkCompatibility
Incompatible components: [https:/opensearch-project/alerting.git, https:/opensearch-project/anomaly-detection.git, https:/opensearch-project/asynchronous-search.git, https:/opensearch-project/index-management.git, https:/opensearch-project/sql.git, https:/opensearch-project/job-scheduler.git, https:/opensearch-project/common-utils.git, https:/opensearch-project/observability.git, https:/opensearch-project/k-nn.git, https:/opensearch-project/reporting.git, https:/opensearch-project/geospatial.git, https:/opensearch-project/cross-cluster-replication.git, https:/opensearch-project/notifications.git, https:/opensearch-project/neural-search.git, https:/opensearch-project/performance-analyzer.git, https:/opensearch-project/security-analytics.git]
Compatible components: [https:/opensearch-project/security.git, https:/opensearch-project/ml-commons.git, https:/opensearch-project/performance-analyzer-rca.git, https:/opensearch-project/opensearch-oci-object-storage.git]

BUILD SUCCESSFUL in 29m 10s

@opensearch-trigger-bot
Copy link
Contributor

Compatibility status:



> Task :checkCompatibility
Incompatible components: [https:/opensearch-project/alerting.git, https:/opensearch-project/anomaly-detection.git, https:/opensearch-project/asynchronous-search.git, https:/opensearch-project/index-management.git, https:/opensearch-project/job-scheduler.git, https:/opensearch-project/sql.git, https:/opensearch-project/common-utils.git, https:/opensearch-project/observability.git, https:/opensearch-project/reporting.git, https:/opensearch-project/k-nn.git, https:/opensearch-project/geospatial.git, https:/opensearch-project/cross-cluster-replication.git, https:/opensearch-project/notifications.git, https:/opensearch-project/neural-search.git, https:/opensearch-project/security-analytics.git, https:/opensearch-project/performance-analyzer.git]
Compatible components: [https:/opensearch-project/security.git, https:/opensearch-project/ml-commons.git, https:/opensearch-project/performance-analyzer-rca.git, https:/opensearch-project/opensearch-oci-object-storage.git]

BUILD SUCCESSFUL in 31m 50s

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

@github-actions
Copy link
Contributor

Gradle Check (Jenkins) Run Completed with:

  • RESULT: UNSTABLE ❕
  • TEST FAILURES:
      1 org.opensearch.client.PitIT.testDeleteAllAndListAllPits

Copy link
Member

@peternied peternied left a comment

Choose a reason for hiding this comment

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

Thanks for driving this @scrawfor99

@peternied peternied merged commit 487e3e3 into opensearch-project:main Aug 11, 2023
10 of 11 checks passed
@reta reta added the backport 2.x Backport to 2.x branch label Aug 11, 2023
@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/OpenSearch/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/OpenSearch/backport-2.x
# Create a new branch
git switch --create backport/backport-8679-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 487e3e34460cb16abab7597fe4ed7d00a11c595d
# Push it to GitHub
git push --set-upstream origin backport/backport-8679-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/OpenSearch/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport/backport-8679-to-2.x.

@reta
Copy link
Collaborator

reta commented Aug 11, 2023

@scrawfor99 please send manual backport to 2.x when you have time, thank you

@peternied
Copy link
Member

After the security review has been completed lets revisit backporting, how does that sound @reta @scrawfor99 ?

linuxpi pushed a commit to linuxpi/OpenSearch that referenced this pull request Aug 14, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
linuxpi pushed a commit to linuxpi/OpenSearch that referenced this pull request Aug 16, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
kaushalmahi12 pushed a commit to kaushalmahi12/OpenSearch that referenced this pull request Sep 12, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
Signed-off-by: Kaushal Kumar <[email protected]>
stephen-crawford added a commit to stephen-crawford/OpenSearch that referenced this pull request Sep 14, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
brusic pushed a commit to brusic/OpenSearch that referenced this pull request Sep 25, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
Signed-off-by: Ivan Brusic <[email protected]>
DarshitChanpura pushed a commit to DarshitChanpura/OpenSearch that referenced this pull request Sep 27, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
DarshitChanpura pushed a commit to DarshitChanpura/OpenSearch that referenced this pull request Sep 28, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
RyanL1997 added a commit to RyanL1997/OpenSearch that referenced this pull request Nov 1, 2023
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
peternied added a commit that referenced this pull request Nov 2, 2023
#11052)

* Implement on behalf of token passing for extensions (#8679)

* Provide service accounts tokens to extensions (#9618)

This change adds a new transport action which passes the extension a string representation of its service account auth token. This token is created by the TokenManager interface implementation. The token is expected to be an encoded basic auth credential string which can be used by the extension to interact with its own system index.

* Cherry pick #10614 and #10664

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Signed-off-by: Peter Nied <[email protected]>
Co-authored-by: Stephen Crawford <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
Co-authored-by: Owais Kazi <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
shiv0408 pushed a commit to Gaurav614/OpenSearch that referenced this pull request Apr 25, 2024
…ct#8679)

Implement on behalf of token passing for extensions

Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Stephen Crawford <[email protected]>
Signed-off-by: Ryan Liang <[email protected]>
Co-authored-by: Ryan Liang <[email protected]>
Co-authored-by: Peter Nied <[email protected]>
Signed-off-by: Shivansh Arora <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 2.x Backport to 2.x branch backport-failed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants