-
Notifications
You must be signed in to change notification settings - Fork 280
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
[Security/Extension] JWT Vendor for extensions #2567
[Security/Extension] JWT Vendor for extensions #2567
Conversation
Signed-off-by: Ryan Liang <jiallian@amazon.com>
While we are having the discussion in this PR, I will create a META issue for Generate an auth token for an Extension Request and add a unit test. |
Signed-off-by: Ryan Liang <jiallian@amazon.com>
d001a6f
to
d5bfef3
Compare
Codecov Report
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more @@ Coverage Diff @@
## main #2567 +/- ##
============================================
- Coverage 61.29% 61.23% -0.07%
Complexity 3334 3334
============================================
Files 260 261 +1
Lines 18509 18577 +68
Branches 3269 3275 +6
============================================
+ Hits 11346 11375 +29
- Misses 5571 5601 +30
- Partials 1592 1601 +9
... and 6 files with indirect coverage changes Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for sending this out @RyanL1997
JsonWebKey jwk = new JsonWebKey(); | ||
|
||
jwk.setKeyType(KeyType.OCTET); | ||
jwk.setAlgorithm("HS512"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it would be worthwhile to document why we picked some of the defaults in the code next to them, HMAC was picked because ...
(BTW think HMAC is a good choice for our scenario)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is a simple T-chart of HMAC vs RSA based on the research I did:
Name/Features | Pros | Cons |
---|---|---|
HMAC (Hash-based Message Authentication Code) | - Performance: HMAC is generally faster than RSA, as it uses symmetric key cryptography, which is computationally less expensive. - Flexibility: HMAC can work with various hash functions, such as SHA-256, SHA-384, or SHA-512, depending on the desired security level and performance. |
- Shared secret key: HMAC relies on a shared secret key between the sender and receiver. - Not suitable for non-repudiation, as anyone with the secret key can create a valid signature. |
RSA (Rivest-Shamir-Adleman) | - Widely adopted: RSA is a widely-used and well-established public key cryptography algorithm, with extensive support in various libraries and systems. - Public key cryptography: RSA uses a public and private key pair, allowing for easier key management and distribution. The public key can be shared openly, while the private key remains secret. |
- Performance: RSA is generally slower than HMAC, as it involves more complex mathematical operations and requires larger key sizes to achieve the same level of security. - Key size: RSA requires larger keys for equivalent security levels compared to symmetric algorithms like HMAC. For example, a 3072-bit RSA key provides roughly the same level of security as a 256-bit symmetric key. |
Another algorithm, ECDSA (Elliptic Curve Digital Signature Algorithm), is pretty similar to RSA, but a little bit faster (the performance ranking from most efficiency to less efficiency should be: HMAC > ECDSA > RSA). However, back to our case, I agree that HMAC is good for our scenario, due to its performance and simplicity. More importantly, it meets our requirement of supporting both data integrity and authenticity, so that the payload of our token cannot be tampered.
jwk.setProperty("k", signingKey); | ||
|
||
return jwk; | ||
} else { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove this else {...}
section. There should be a single code path for the way these tokens are generated, and this is a case where customization shouldn't be allowed.
Note; if we have a user-facing usage of token generated, we could allow other options / customizations, but we should expose it via a seperate API.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peternied This else
clause is what makes this flexible to support creating JWKs with any properties that are not the default HMAC SHA512 symmetric signing key.
This would allow user's to configure asymmetric encryption for the JWT signing if desired.
i.e.
config:
signing_key: base64.encode(<secret here>)
vs
config:
key:
kid: Gps4Ea8bRzBNXMrzE8ciJZKNrlTKPP2MPEBPDSUXPpo
kty: RSA
alg: RS256
use: sig
n: pGGGyC01Krfq4kR6ebiFm8L3OLdAIL7KCA4gw9iVCdo-12aAftxwTIfv59bhlktOlOhsTQ883wDn4XnquMUBW5DffZUXyf81wLP6aWR-iySANF7_bEnu-HFyl40X8QmpJImXADHjDL3D4C5ckhRqUnIqET3eQ6TWcWGnoEG6wpmE5UlZinB7koAFcLnucPcHBvLLvpMDKxN6GW6jjwn5PKQqfim5TF_xQCXlACfe-dd5x2ZVSzKmErfim-ZhLDr4D83kKSJjch7iROhs7sbh6bj_6OvIeiTDUHDN7dMZZJr-LCXyvRpJZVEZXXRlxgj9WV6UEq7UbKwmkc5653RBRw
e: AQAB
x5c:
[
"MIICmzCCAYMCBgGHCWjKXDANBgkqhkiG9w0BAQsFADARMQ8wDQYDVQQDDAZtYXN0ZXIwHhcNMjMwMzIyMTI1OTM1WhcNMzMwMzIyMTMwMTE1WjARMQ8wDQYDVQQDDAZtYXN0ZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCkYYbILTUqt+riRHp5uIWbwvc4t0AgvsoIDiDD2JUJ2j7XZoB+3HBMh+/n1uGWS06U6GxNDzzfAOfheeq4xQFbkN99lRfJ/zXAs/ppZH6LJIA0Xv9sSe74cXKXjRfxCakkiZcAMeMMvcPgLlySFGpScioRPd5DpNZxYaegQbrCmYTlSVmKcHuSgAVwue5w9wcG8su+kwMrE3oZbqOPCfk8pCp+KblMX/FAJeUAJ97513nHZlVLMqYSt+Kb5mEsOvgPzeQpImNyHuJE6GzuxuHpuP/o68h6JMNQcM3t0xlkmv4sJfK9GkllURlddGXGCP1ZXpQSrtRsrCaRznrndEFHAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAFuycpje7FnIGBwurU/RwylGO1yx5NX/7LORv1q1fzaQoz4ti3BZTSwTM/K2NsWv3xJAYNm5sqL5CwcJ9PlSOVWRpUt0ce/zBQmAylYUWnfyym7p+JXV9317eT3BeKV04LfGTvVPSmFQRigOuyrihOQ7AQg8zFRJUWvfGFrt3Jl8XRQ0qZAFLCoi9177onEVtdCXSiyIdjIEFE8GTyeRyqm0ed7l8HyLRWIjXCud17qGxZyaL1VqiCHfJGgJBES2LqCau8vKqnN8sLO+gnj/jE8QsJQ6mF+kWKK1/JMUwWscrnsB+rxktttzqo/WfKQiB1CjmoGkYIBlMljLpdaUdQo="
]
x5t: 3nw2MTcS2gwFcGdnlGaB0RPOYG8
x5t#S256: 2VUpjQgUQW1TyPGP6PSt0wLUDkTINRqmJxLBr2F-Ps0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I recommend we start exposing as little surface area as possible around these new features.
As this is part of flow where generating the sensitive tokens e.g. on-behalf-of user tokens for extensions. I would advocate that we minimize the risk of misconfiguration by locking down these values in code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peternied and @cwperks what was the verdict here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the experimental release we are aiming for sensible defaults. In this case HMAC SHA512 is chosen as the sensible defaults. Customizability will be added, but less of a priority then making sure all key functionality works first.
} | ||
|
||
//TODO:Getting roles from User | ||
public Map<String, String> prepareClaimsForUser(User user, ThreadPool threadPool) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure we've fully locked down the design - but I am in the camp that we should not include any mapped roles/backend roles onto this claims. @RyanL1997 Could you find out where we are making this decision and reference it?
If we are not including any AuthZ information we should make sure we remove it from here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, we can continue our discussion over here: #2545. For this one, I was just write up the function we may need for implementing it. 100% we can change/remove it anytime. And also, this function should be locate in a separate class if we choose to go down this path.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've got another issue about user information parity, that might cover it, but I don't think it clearly calls out that we don't include this information inside the authentication token. Or is there another issue where we have this called out, if not want to make one so we can track?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, thanks for the information! I will create separate issue attach to this for the tracking.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@peternied @RyanL1997 I'm curious to get your thoughts on an idea of encrypting the value of the claim itself for sensitive claims. For cases with an external IdP, I think we will need to store the roles in a claim of the token because they cannot be looked up when the security plugin receives the token as part of a request. Since they cannot be looked up, they will need to be part of the claims of the token. The current JWT backend (and OIDC and SAML since they also use JWTs) already assumes that roles are included as a claim of the token.
Encryption of the sensitive claim can be done using a utility like (Reference SO post: https://stackoverflow.com/a/57902503):
import java.util.Arrays;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class EncryptionDecryptionUtil {
public static String encrypt(final String secret, final String data) {
byte[] decodedKey = Base64.getDecoder().decode(secret);
try {
Cipher cipher = Cipher.getInstance("AES");
// rebuild key using SecretKeySpec
SecretKey originalKey = new SecretKeySpec(Arrays.copyOf(decodedKey, 16), "AES");
cipher.init(Cipher.ENCRYPT_MODE, originalKey);
byte[] cipherText = cipher.doFinal(data.getBytes("UTF-8"));
return Base64.getEncoder().encodeToString(cipherText);
} catch (Exception e) {
throw new RuntimeException(
"Error occured while encrypting data", e);
}
}
public static String decrypt(final String secret,
final String encryptedString) {
byte[] decodedKey = Base64.getDecoder().decode(secret);
try {
Cipher cipher = Cipher.getInstance("AES");
// rebuild key using SecretKeySpec
SecretKey originalKey = new SecretKeySpec(Arrays.copyOf(decodedKey, 16), "AES");
cipher.init(Cipher.DECRYPT_MODE, originalKey);
byte[] cipherText = cipher.doFinal(Base64.getDecoder().decode(encryptedString));
return new String(cipherText);
} catch (Exception e) {
throw new RuntimeException(
"Error occured while decrypting data", e);
}
}
}
The secret
that this function takes is different than the signing_key
that this PR introduces and would be another setting on the same level. I wrote a test with this behavior here: RyanL1997/security@jwt-generator-for-extensions...cwperks:security:jwt-generator-for-extensions
Here's the output of the test. The first line is the encrypted claim that the extension would see and below is decrypted that the security plugin would be able to decrypt from the claim inside the token.
org.opensearch.security.authtoken.jwt.JwtVendorTest > testCreateJwtWithRoles STANDARD_OUT
rolesClaim: U5CjroB/LS95E5nrKl+WMw==
roles: IT,HR
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @cwperks, thanks for putting this together. This is making sense to me.
public Map<String, String> prepareClaimsForUser(User user, ThreadPool threadPool) { | ||
Map<String, String> claims = new HashMap<>(); | ||
this.threadContext = threadPool.getThreadContext(); | ||
final TransportAddress caller = threadContext.getTransient(ConfigConstants.OPENDISTRO_SECURITY_REMOTE_ADDRESS); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(Assuming we are keeping AuthZ info in the token, otherwise this should be deleted) We shouldn't be attributing any roles based on the remote address because the request will be performed from that address but via the extension - which is elsewhere. We might want to break this out into a separate issue to discuss.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RyanL1997, did this get split into the separate issue? It is the last area where I have a concern around merging. As long as there is an issue, I am fine with following-up in this case but could you share the link please? Thank you.
src/main/java/org/opensearch/security/authtoken/jwt/JwtVendor.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/security/authtoken/jwt/JwtVendor.java
Outdated
Show resolved
Hide resolved
src/main/java/org/opensearch/security/authtoken/jwt/JwtVendor.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi Ryan, thank you for putting this together. Overall, I don't think there was much that seemed like it needed re-visiting. The obvious questions will be around the claims we include in the tokens but I did not leave comments for those. Great job.
src/main/java/org/opensearch/security/authtoken/jwt/JwtVendor.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Ryan Liang <jiallian@amazon.com>
Signed-off-by: Ryan Liang <jiallian@amazon.com>
7e73c87
to
6bd8d40
Compare
throw new RuntimeException(e); | ||
} | ||
this.jwtProducer = jwtProducer; | ||
timeProvider = System::currentTimeMillis; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have a good alternative since we need to have a fixed reference point and this is the most common way to get time relative to the Epoch. However, it is worth noting that this is not monotonic so you could get subsequent calls with the same value returned even if the time difference is more than 1 ms. It should not matter if we have some clock skew tolerance but just worth mentioning.
Hey, @RyanL1997, I noticed that this code is generating a JWT, but it doesn't seem to be connected with any user scenarios. Can you provide some insight into what you had in mind for the evolution of this pull request so it would be merged? To enhance the functionality of this pull request, I recommend that we add the ability to generate a token for an authenticated user and accept that generated token and validate it. Let me know your thoughts on this. |
Hi @peternied, thanks for the advice! I just had a conversation with @cwperks about the JIT concept related to authentication backend, and I'm looking forward into some details for the authentication backend next week after our meetups. After that, I will post our findings here/a new issue. |
Hi, @peternied. I had a conversation with @cwperks today about the authentication backend. For answering your questions:
I think the purpose of this PR is to setup a basic structure of this JIT token, such as, some of the components we discussed above for token claims: subject, audience ..etc. I guess the only tricky part for now is about the how are we gonna deal with the roles, encrypted/not-encrypted/include/not-included. For these parts, we can discuss it in another review session with a documentations and modify them later, but I think we can use this basic structure for future development. For now, I just started to write a draft PR for authentication backend, and I do need some of the basic concepts from this PR for token verification. |
Hi @peternied , since this a component of a larger feature (Security for Extensions), should we merge this into a feature branch until the feature is ready to merge to main? |
Signed-off-by: Ryan Liang <jiallian@amazon.com>
Let's merge changes into the main branch when they benefit security plugin customers. I recommend moving this pull request to a |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for putting this together Ryan. It looks like all my previous comments were addressed. I am happy to merge this PR and then follow up as needed for velocity.
public Map<String, String> prepareClaimsForUser(User user, ThreadPool threadPool) { | ||
Map<String, String> claims = new HashMap<>(); | ||
this.threadContext = threadPool.getThreadContext(); | ||
final TransportAddress caller = threadContext.getTransient(ConfigConstants.OPENDISTRO_SECURITY_REMOTE_ADDRESS); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@RyanL1997, did this get split into the separate issue? It is the last area where I have a concern around merging. As long as there is an issue, I am fine with following-up in this case but could you share the link please? Thank you.
|
||
jwtVendor.createJwt(issuer, subject, audience, expirySeconds); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may want to add further negative test cases down the road. Since you are only looking at the vending this seems fine for now, but once we have verification as well, we will want to test expiration compliance and signature mismatches.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
100% We need an authc backend to do the verification, so that we can test them. I''m working on that.
Hi @scrawfor99, here is a link for place holder (#2619). Me and Craig are working on a documentation, and I will transfer that into this issue. Btw I just change the base branch into the feature branch I created. As Peter said before we can go through the entire functionality before we merge into main. |
* JWT Vendor for extensions Signed-off-by: Ryan Liang <jiallian@amazon.com>
* JWT Vendor for extensions Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Maciej Mierzwa <dev.maciej.mierzwa@gmail.com>
* JWT Vendor for extensions Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Maciej Mierzwa <dev.maciej.mierzwa@gmail.com>
commit 1e24bbb Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 25 12:06:53 2023 -0700 Fixed the exception in keyutils Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 4b406c5 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 25 11:41:14 2023 -0700 Change the null check right after the jwtparserbuilder Signed-off-by: Ryan Liang <jiallian@amazon.com> commit a805843 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 25 11:11:13 2023 -0700 Change to use copyof in getSecurityRoles in AuthCredentials class Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 308f269 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 25 11:02:04 2023 -0700 Add the null or empty check for signingkey in keyUtils Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 40eed32 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 25 09:55:19 2023 -0700 Fix V6 and V7 and lint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 3c76151 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 25 09:29:17 2023 -0700 Fix comment - Craig Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 7f2fc19 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 24 23:01:24 2023 -0700 Fix some comments 08/24 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 4841b25 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 24 10:50:24 2023 -0700 Add the constant for defaut service in create obo endpoint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 477b505 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 20:18:05 2023 -0700 Remove the unrelated line in AccountApiTest l77 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit f42d2f5 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 19:40:33 2023 -0700 Re-edit the error msg for createoboendpoint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit a272ccb Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 19:34:56 2023 -0700 Rename the obo endpoint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit c021473 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 19:30:45 2023 -0700 Correct the getClusterName() Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 8b5158d Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 19:11:07 2023 -0700 Use ClusterInfoHolder to pass clusterName Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 336aa57 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 18:18:42 2023 -0700 Change the error msg in jwtvendorTests too Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 682379d Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 17:21:11 2023 -0700 Switch to assertThat in obo authenticator test Signed-off-by: Ryan Liang <jiallian@amazon.com> commit cb3406a Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 16:59:30 2023 -0700 Add comment in DynamicConfigModelV7 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 15c8530 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 16:47:13 2023 -0700 Change to assertThrows for obo authenticator tests Signed-off-by: Ryan Liang <jiallian@amazon.com> commit e56bf01 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 16:39:24 2023 -0700 Rename to OnBehalfOfSettings in ConfigV6 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 62cfb4f Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 16:29:31 2023 -0700 Add comment for authentication failure in obo authenticator Signed-off-by: Ryan Liang <jiallian@amazon.com> commit d0ebe91 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 16:22:08 2023 -0700 Specify the error msg of missing signing key in jwtvendor Signed-off-by: Ryan Liang <jiallian@amazon.com> commit ca95380 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 16:12:46 2023 -0700 Refactor the jwtvendor expiry and set up upper limit Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 884f7a1 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 13:51:11 2023 -0700 Flip the boolean logic of roleSecurityMode Signed-off-by: Ryan Liang <jiallian@amazon.com> commit e1021c2 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 13:36:05 2023 -0700 Refactor the bwc mode into roleSecurityMode Signed-off-by: Ryan Liang <jiallian@amazon.com> commit c1a825b Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 12:03:17 2023 -0700 Refactor in jwtVendor 1 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 8eac5cd Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 23 09:53:24 2023 -0700 Change the comment in backend registry Signed-off-by: Ryan Liang <jiallian@amazon.com> commit b0ac41a Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 17:58:15 2023 -0700 Revert the unrelated change in SecurityRestFilter Signed-off-by: Ryan Liang <jiallian@amazon.com> commit b64460d Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 17:53:32 2023 -0700 Remove stale function Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 54bca2a Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 17:36:05 2023 -0700 Refactor the obo endpoint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit e429d7b Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 17:16:47 2023 -0700 Refactor the KeyUtils OBOAuthenticator and JwtAuthenticator with jwtParserBuilder Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 72dcec1 Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 16:22:42 2023 -0700 Some minor refactoring in obo authenticator Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 6f0e79b Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 15:46:19 2023 -0700 Remove the malformed token warning for backendroles extraction Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 1ba378e Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 15:42:38 2023 -0700 Refactor the EncryptionDecryptionUtil Signed-off-by: Ryan Liang <jiallian@amazon.com> commit b315559 Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 12:02:06 2023 -0700 Fix the exception type in JwtVendorTests Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 6f49801 Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 11:35:10 2023 -0700 Remove the if condition in oboconfig for integ testing Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 034aa34 Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 11:22:45 2023 -0700 Set up creatJwkException in exceptionUtils and apply that in JwtVendor constructor Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 0f0478d Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 10:14:55 2023 -0700 Rename the KeyUtils Signed-off-by: Ryan Liang <jiallian@amazon.com> commit a4e7aff Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 09:46:27 2023 -0700 Refactor the backendroles claim into br Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 2ff746e Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 09:31:50 2023 -0700 Fix lint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 9ce36dc Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 01:11:24 2023 -0700 Refactor the OBO Authenticator part2 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit e52c5ce Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 00:55:33 2023 -0700 Refactor the backendrole extraction in oboauthenticator Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 9c9e060 Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 00:41:51 2023 -0700 Refactor the role extraction in oboauthenticator Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 387027b Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 00:18:31 2023 -0700 Refactor the logic in JwtVendor Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 267255c Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 22 00:01:15 2023 -0700 Add integration test case for obo permission Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 93bc8c6 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 21 19:18:49 2023 -0700 Remove unused constants variable in OBO authenticator Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 878a107 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 21 19:10:27 2023 -0700 Refactor the encryptiondecryptionutilstests Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 1c1bae6 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 21 14:53:45 2023 -0700 Remove the null check in oboconfig Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 7e3824e Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 21 14:44:07 2023 -0700 Remove the wording of seconds in obo endpoint and make the expiry into configconstants Signed-off-by: Ryan Liang <jiallian@amazon.com> commit a126512 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 21 12:48:33 2023 -0700 Use constant util in Obo integration test Signed-off-by: Ryan Liang <jiallian@amazon.com> commit e5a32c6 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 21 12:13:50 2023 -0700 Rename the obo endpoint path to generateobotoekn Signed-off-by: Ryan Liang <jiallian@amazon.com> commit e09a902 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 21 09:15:53 2023 -0700 Remove the unused instance in configV6 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit af8aaa7 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 18 13:05:04 2023 -0700 Fix the lint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 9103b23 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 18 13:01:56 2023 -0700 Add permission obo/create for accessing create obo endpoint Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 2349213 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 15:54:38 2023 -0700 Change the name into keyUtils with the s Signed-off-by: Ryan Liang <jiallian@amazon.com> commit dae0ac7 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 15:48:12 2023 -0700 Switch to try/catch + assertEquals for JwtVendorTest Signed-off-by: Ryan Liang <jiallian@amazon.com> commit d918d7a Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 15:39:46 2023 -0700 Change the JwtVendorTest with manually built-up assertThrow Signed-off-by: Ryan Liang <jiallian@amazon.com> commit f47026b Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 14:35:13 2023 -0700 Fix the typo in exceptionUtils Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 43b8d5d Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 14:33:22 2023 -0700 Remove stacktrace debug statement in OBOAutehnticator Signed-off-by: Ryan Liang <jiallian@amazon.com> commit a2c6db1 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 13:04:30 2023 -0700 Change some of the methods name into camle case instead of snake case Signed-off-by: Ryan Liang <jiallian@amazon.com> commit ee79b49 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 11:55:11 2023 -0700 Add unit tests for EncryptionDecryptionUtil Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 3ebff2b Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 17 09:43:43 2023 -0700 Work around for not set static cluster service Signed-off-by: Ryan Liang <jiallian@amazon.com> commit a4efad6 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 16 13:31:57 2023 -0700 Modify the getDynamicOnBehalfOfSettings() to return settings.Empty if there is no changes Signed-off-by: Ryan Liang <jiallian@amazon.com> commit e23d757 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 16 12:26:39 2023 -0700 Encapsulate the logic for endpoints access checking into a method Signed-off-by: Ryan Liang <jiallian@amazon.com> commit be26148 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 16 12:09:25 2023 -0700 Remove useless comments Signed-off-by: Ryan Liang <jiallian@amazon.com> commit bef85da Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 16 11:57:39 2023 -0700 Remove the enforcing of token type for OBO auth Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 1f79431 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 16 11:45:45 2023 -0700 Change the field name reason in obo endpoint to description Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 1f12e5e Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 16 11:15:56 2023 -0700 Change the backendrole check's claim name into br Signed-off-by: Ryan Liang <jiallian@amazon.com> commit b2c7d75 Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 15 23:30:25 2023 -0700 Address some comment 2 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit d79973c Author: Ryan Liang <jiallian@amazon.com> Date: Tue Aug 15 23:24:16 2023 -0700 Address some comment 1 Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 8a96cab Author: Sam <128482925+samuelcostae@users.noreply.github.com> Date: Fri Aug 18 14:43:07 2023 +0100 Feature/extensions bwc setting (opensearch-project#3180) ### Description This Draft PR includes the new setting bwcPluginMode (backward compatible plugin mode for extensions ) ### Issues Resolved opensearch-project#2616 Is this a backport? If so, please add backport PR # and/or commits # ### Testing [Please provide details of testing done: unit testing, integration testing and manual testing] ### Check List - [ ] New functionality includes testing - [ ] New functionality has been documented - [x] Commits are signed per the DCO using --signoff 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](https://github.com/opensearch-project/OpenSearch/blob/main/CONTRIBUTING.md#developer-certificate-of-origin). --------- Signed-off-by: Sam <samuel.costa@eliatra.com> commit 91f4478 Merge: e42e4d3 88b6d23 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 14 23:30:37 2023 -0700 Merge branch 'main' into feature/extensions commit e42e4d3 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Mon Aug 14 10:12:58 2023 -0700 [Feature/Extension] Remove hostmapping from create OBO endpoint. (opensearch-project#3161) Signed-off-by: Ryan Liang <jiallian@amazon.com> commit ade34b4 Merge: 6d8e0e2 05f12d8 Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 11 11:37:21 2023 -0700 Merge branch 'main' into feature/extensions commit 6d8e0e2 Merge: 493b53f 3139c18 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Aug 10 21:11:43 2023 -0700 Merge branch 'main' into feature/extensions commit 493b53f Merge: 30cf5b1 46989b5 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 9 12:00:14 2023 -0700 Merge branch 'main' into feature/extensions commit 30cf5b1 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Wed Aug 9 10:10:24 2023 -0700 [Feature/Extension] Add cluster id check for OBO Authenticator (opensearch-project#3117) --------- Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 058f8ec Merge: d643fb2 6cc90e6 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Aug 7 12:33:57 2023 -0700 Merge branch 'main' into feature/extensions commit d643fb2 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Fri Aug 4 22:57:18 2023 -0700 [Feature/Extension] Restrict OBO token's usage for certain endpoints (opensearch-project#3008) Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 2319059 Merge: d634d60 527495d Author: Ryan Liang <jiallian@amazon.com> Date: Fri Aug 4 08:50:34 2023 -0700 Merge branch 'main' into feature/extensions commit d634d60 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Wed Aug 2 13:09:03 2023 -0700 [Feature/Extension] Add configuration of disable OBO (opensearch-project#3047) Signed-off-by: Ryan Liang <jiallian@amazon.com> commit df3dba3 Merge: 1268dee 5384272 Author: Ryan Liang <jiallian@amazon.com> Date: Wed Aug 2 09:42:04 2023 -0700 Merge branch 'main' into feature/extensions commit 1268dee Merge: a9451dd 8063e1b Author: Ryan Liang <jiallian@amazon.com> Date: Tue Jul 25 11:23:05 2023 -0700 Merge branch 'main' into feature/extensions commit a9451dd Merge: 671c772 59e2657 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Jul 24 13:30:37 2023 -0700 Merge branch 'main' into feature/extensions commit 671c772 Merge: 67515bc f1be2d7 Author: Ryan Liang <jiallian@amazon.com> Date: Tue Jul 18 09:04:25 2023 -0700 Merge branch 'main' into feature/extensions commit 67515bc Merge: 88f32e9 0e6608d Author: Ryan Liang <jiallian@amazon.com> Date: Thu Jul 13 11:18:07 2023 -0700 Merge branch 'main' into feature/extensions commit 88f32e9 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Fri Jul 7 11:42:21 2023 -0700 [Feature/Extension] Add oboauthcbackend registry and set up e2e endpoint testing flow (opensearch-project#2857) * Add OBO Authbackend Signed-off-by: Peter Nied <petern@amazon.com> Signed-off-by: Ryan Liang <jiallian@amazon.com> Co-authored-by: Peter Nied <petern@amazon.com> commit 8c3c639 Merge: 21891d7 4eef662 Author: Ryan Liang <jiallian@amazon.com> Date: Mon Jul 3 10:34:27 2023 -0700 Merge branch 'main' into feature/extensions commit 21891d7 Merge: 8ad24ad 7546c05 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Jun 29 13:28:12 2023 -0700 Merge branch 'feature-branch-sync-629' into feature/extensions commit 8ad24ad Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Thu Jun 29 13:23:04 2023 -0700 Revert "Feature branch sync 06/29/2023 (opensearch-project#2918)" (opensearch-project#2920) This reverts commit 748a711. commit 748a711 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Thu Jun 29 12:37:08 2023 -0700 Feature branch sync 06/29/2023 (opensearch-project#2918) * add search model group permission to ml_read_access role (opensearch-project#2855) * add search model group permission to ml_read_access role Signed-off-by: Bhavana Ramaram <rbhavna@amazon.com> * IntegrationTest spotless (opensearch-project#2863) Signed-off-by: Stephen Crawford <steecraw@amazon.com> * Format everything (opensearch-project#2866) * Use boucycastle PEM reader instead of reg expression (opensearch-project#2864) Use BouncyCastle PEMReader instead of regular expression to read and parse private key pem files. Signed-off-by: Andrey Pleskach <ples@aiven.io> * Adding field level security test cases for FlatFields (opensearch-project#2876) Signed-off-by: Peter Nied <petern@amazon.com> * Update snappy to 1.1.10.1 and guava to 32.0.1-jre (opensearch-project#2886) * Update snappy to 1.1.10.1 and guava to 32.0.1-jre Signed-off-by: Craig Perkins <cwperx@amazon.com> * Upgrade kafka to 3.5.0 Signed-off-by: Craig Perkins <cwperx@amazon.com> * Force snappy Signed-off-by: Craig Perkins <cwperx@amazon.com> * Add runtime dependency on org.scala-lang.modules:scala-java8-compat_3:1.0.2 to fix issue with KafkaSinkTest Signed-off-by: Craig Perkins <cwperx@amazon.com> --------- Signed-off-by: Craig Perkins <cwperx@amazon.com> * Role permissions order tool and workflow (opensearch-project#2733) * Check Permissions Order tool and workflow Adds a NodeJS tool that can inspect yaml role definitions, check if they are in alphabetical order, correct them if required. Signed-off-by: Peter Nied <peternied@hotmail.com> * Apply fixes to roles.yml files Signed-off-by: Peter Nied <peternied@hotmail.com> * Fixing busted test, adding findArrayInJson for response bodies Signed-off-by: Peter Nied <petern@amazon.com> --------- Signed-off-by: Peter Nied <peternied@hotmail.com> Signed-off-by: Peter Nied <petern@amazon.com> * Misc changes (opensearch-project#2902) Moved isStatic and isReserved methods to the SecurityDynamicConfiguration class Signed-off-by: Andrey Pleskach <ples@aiven.io> * Update triaging guidelines (opensearch-project#2899) * Update triaging guidelines Signed-off-by: Stephen Crawford <steecraw@amazon.com> Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> * fix cluster perm classification for msearch template (opensearch-project#2892) * fix cluster perm classification for msearch template Signed-off-by: Derek Ho <dxho@amazon.com> * move test to unit test file Signed-off-by: Derek Ho <dxho@amazon.com> * fully revert integration test file Signed-off-by: Derek Ho <dxho@amazon.com> * Update src/test/java/org/opensearch/security/privileges/PrivilegesEvaluatorUnitTest.java Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> * spotless Signed-off-by: Derek Ho <dxho@amazon.com> --------- Signed-off-by: Derek Ho <dxho@amazon.com> Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> * [Doc] Add architecture document (opensearch-project#2869) * Add initial architecture document Signed-off-by: Peter Nied <petern@amazon.com> * [Enhancement] Parallel test jobs for CI (opensearch-project#2861) * Split multiple tests into separate gradle tasks. * Tasks are configured in "splitTestConfig" map in build.gradle file. Map allows to use all patterns from TestFilter like: includeTestsMatching, excludeTestsMatching, includeTest etc. * Tasks are automatically generated from "splitTestConfig" map. * Two new Gradle tasks: listTasksAsJSON and listTasksAsParam to output task names to console. First one outputs them as a JSON and second - in gradlew "-x <TASK>" format to use in CLI. * Patterns included in tasks are automatically excluded from main "test" task but at the same time generated tasks are dependencies for "test". Running "gradlew test" will run whole suite at once. * CI pipeline has been configured to accomodate all changes. * New 'master' task to generate list of jobs to run in parallel. * Updated matrix strategy to include task name to start. Signed-off-by: Pawel Gudel <pawel.gudel@eliatra.com> * Bump BouncyCastle from jdk15on to jdk15to18 (opensearch-project#2901) jdk15to18 contains fix for - CVE-2023-33201 - Medium Severity Vulnerability Signed-off-by: Andrey Pleskach <ples@aiven.io> * Spotless Apply Signed-off-by: Ryan Liang <jiallian@amazon.com> --------- Signed-off-by: Bhavana Ramaram <rbhavna@amazon.com> Signed-off-by: Stephen Crawford <steecraw@amazon.com> Signed-off-by: Andrey Pleskach <ples@aiven.io> Signed-off-by: Peter Nied <petern@amazon.com> Signed-off-by: Craig Perkins <cwperx@amazon.com> Signed-off-by: Peter Nied <peternied@hotmail.com> Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Signed-off-by: Derek Ho <dxho@amazon.com> Signed-off-by: Pawel Gudel <pawel.gudel@eliatra.com> Signed-off-by: Ryan Liang <jiallian@amazon.com> Co-authored-by: Bhavana Ramaram <rbhavna@amazon.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Co-authored-by: Andrey Pleskach <ples@aiven.io> Co-authored-by: Peter Nied <petern@amazon.com> Co-authored-by: Craig Perkins <cwperx@amazon.com> Co-authored-by: Derek Ho <derek01778@gmail.com> Co-authored-by: pawel-gudel-eliatra <136344230+pawel-gudel-eliatra@users.noreply.github.com> commit 7546c05 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Jun 29 11:50:58 2023 -0700 Spotless Apply Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 81b7818 Author: Andrey Pleskach <ples@aiven.io> Date: Thu Jun 29 15:54:21 2023 +0200 Bump BouncyCastle from jdk15on to jdk15to18 (opensearch-project#2901) jdk15to18 contains fix for - CVE-2023-33201 - Medium Severity Vulnerability Signed-off-by: Andrey Pleskach <ples@aiven.io> commit 95efddd Author: pawel-gudel-eliatra <136344230+pawel-gudel-eliatra@users.noreply.github.com> Date: Wed Jun 28 22:41:46 2023 +0200 [Enhancement] Parallel test jobs for CI (opensearch-project#2861) * Split multiple tests into separate gradle tasks. * Tasks are configured in "splitTestConfig" map in build.gradle file. Map allows to use all patterns from TestFilter like: includeTestsMatching, excludeTestsMatching, includeTest etc. * Tasks are automatically generated from "splitTestConfig" map. * Two new Gradle tasks: listTasksAsJSON and listTasksAsParam to output task names to console. First one outputs them as a JSON and second - in gradlew "-x <TASK>" format to use in CLI. * Patterns included in tasks are automatically excluded from main "test" task but at the same time generated tasks are dependencies for "test". Running "gradlew test" will run whole suite at once. * CI pipeline has been configured to accomodate all changes. * New 'master' task to generate list of jobs to run in parallel. * Updated matrix strategy to include task name to start. Signed-off-by: Pawel Gudel <pawel.gudel@eliatra.com> commit 766389b Author: Peter Nied <petern@amazon.com> Date: Wed Jun 28 15:28:11 2023 -0500 [Doc] Add architecture document (opensearch-project#2869) * Add initial architecture document Signed-off-by: Peter Nied <petern@amazon.com> commit c1d2127 Author: Derek Ho <derek01778@gmail.com> Date: Wed Jun 28 15:21:04 2023 -0400 fix cluster perm classification for msearch template (opensearch-project#2892) * fix cluster perm classification for msearch template Signed-off-by: Derek Ho <dxho@amazon.com> * move test to unit test file Signed-off-by: Derek Ho <dxho@amazon.com> * fully revert integration test file Signed-off-by: Derek Ho <dxho@amazon.com> * Update src/test/java/org/opensearch/security/privileges/PrivilegesEvaluatorUnitTest.java Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> * spotless Signed-off-by: Derek Ho <dxho@amazon.com> --------- Signed-off-by: Derek Ho <dxho@amazon.com> Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Co-authored-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> commit 37f277e Author: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Date: Mon Jun 26 15:28:13 2023 -0400 Update triaging guidelines (opensearch-project#2899) * Update triaging guidelines Signed-off-by: Stephen Crawford <steecraw@amazon.com> Signed-off-by: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> commit 926bdda Author: Andrey Pleskach <ples@aiven.io> Date: Mon Jun 26 20:09:39 2023 +0200 Misc changes (opensearch-project#2902) Moved isStatic and isReserved methods to the SecurityDynamicConfiguration class Signed-off-by: Andrey Pleskach <ples@aiven.io> commit 9cd0198 Author: Peter Nied <petern@amazon.com> Date: Mon Jun 26 10:04:39 2023 -0500 Role permissions order tool and workflow (opensearch-project#2733) * Check Permissions Order tool and workflow Adds a NodeJS tool that can inspect yaml role definitions, check if they are in alphabetical order, correct them if required. Signed-off-by: Peter Nied <peternied@hotmail.com> * Apply fixes to roles.yml files Signed-off-by: Peter Nied <peternied@hotmail.com> * Fixing busted test, adding findArrayInJson for response bodies Signed-off-by: Peter Nied <petern@amazon.com> --------- Signed-off-by: Peter Nied <peternied@hotmail.com> Signed-off-by: Peter Nied <petern@amazon.com> commit 4bb144f Author: Craig Perkins <cwperx@amazon.com> Date: Wed Jun 21 09:31:47 2023 -0400 Update snappy to 1.1.10.1 and guava to 32.0.1-jre (opensearch-project#2886) * Update snappy to 1.1.10.1 and guava to 32.0.1-jre Signed-off-by: Craig Perkins <cwperx@amazon.com> * Upgrade kafka to 3.5.0 Signed-off-by: Craig Perkins <cwperx@amazon.com> * Force snappy Signed-off-by: Craig Perkins <cwperx@amazon.com> * Add runtime dependency on org.scala-lang.modules:scala-java8-compat_3:1.0.2 to fix issue with KafkaSinkTest Signed-off-by: Craig Perkins <cwperx@amazon.com> --------- Signed-off-by: Craig Perkins <cwperx@amazon.com> commit c71d9b3 Author: Peter Nied <petern@amazon.com> Date: Tue Jun 20 13:36:01 2023 -0500 Adding field level security test cases for FlatFields (opensearch-project#2876) Signed-off-by: Peter Nied <petern@amazon.com> commit e3b4f8f Author: Andrey Pleskach <ples@aiven.io> Date: Mon Jun 19 16:18:28 2023 +0200 Use boucycastle PEM reader instead of reg expression (opensearch-project#2864) Use BouncyCastle PEMReader instead of regular expression to read and parse private key pem files. Signed-off-by: Andrey Pleskach <ples@aiven.io> commit ef6224c Author: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Date: Thu Jun 15 23:32:10 2023 -0400 Format everything (opensearch-project#2866) commit ef048a2 Author: Stephen Crawford <65832608+scrawfor99@users.noreply.github.com> Date: Thu Jun 15 11:57:25 2023 -0400 IntegrationTest spotless (opensearch-project#2863) Signed-off-by: Stephen Crawford <steecraw@amazon.com> commit b6bfb11 Author: Bhavana Ramaram <rbhavna@amazon.com> Date: Tue Jun 13 17:00:34 2023 -0700 add search model group permission to ml_read_access role (opensearch-project#2855) * add search model group permission to ml_read_access role Signed-off-by: Bhavana Ramaram <rbhavna@amazon.com> commit 26244e9 Merge: 56e77fe 1691ca7 Author: Craig Perkins <cwperx@amazon.com> Date: Tue Jun 13 16:14:33 2023 -0400 Merge branch 'format-feature-extensions-apply' into feature/extensions commit 1691ca7 Merge: efcadd4 2e263b8 Author: Craig Perkins <cwperx@amazon.com> Date: Tue Jun 13 16:05:59 2023 -0400 Merge branch 'main' into format-feature-extensions-apply commit efcadd4 Merge: 1a09a87 ceb5ad2 Author: Craig Perkins <cwperx@amazon.com> Date: Fri Jun 9 10:16:02 2023 -0400 Merge branch 'main' into format-feature-extensions-apply commit 1a09a87 Author: Craig Perkins <cwperx@amazon.com> Date: Fri Jun 9 09:57:42 2023 -0400 Run spotlessApply Signed-off-by: Craig Perkins <cwperx@amazon.com> commit 01917ff Author: Craig Perkins <cwperx@amazon.com> Date: Fri Jun 9 09:55:09 2023 -0400 Remove other spotless section Signed-off-by: Craig Perkins <cwperx@amazon.com> commit c83ad28 Author: Craig Perkins <cwperx@amazon.com> Date: Fri Jun 9 09:53:35 2023 -0400 Add formatting changes in feature/extensions Signed-off-by: Craig Perkins <cwperx@amazon.com> commit 56e77fe Merge: fa0fcc3 33aebb9 Author: Ryan Liang <jiallian@amazon.com> Date: Wed May 24 11:31:54 2023 -0700 Merge branch 'main' into feature/extensions commit fa0fcc3 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Tue May 16 10:55:57 2023 -0700 [Feature/Extension] Rename the term 'extension' into 'on_behalf_of' (opensearch-project#2774) Signed-off-by: Ryan Liang <jiallian@amazon.com> commit f1cee3b Merge: 95f9c77 15860b6 Author: Ryan Liang <jiallian@amazon.com> Date: Tue May 16 09:33:59 2023 -0700 Merge branch 'main' into feature/extensions commit 95f9c77 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Thu May 11 11:50:12 2023 -0700 [Security/Extension] Extension Authentication Backend (opensearch-project#2672) * Extension Authentication-backend Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 8f02d8d Merge: 9515181 9d758f9 Author: Ryan Liang <jiallian@amazon.com> Date: Wed May 10 12:12:20 2023 -0700 Merge branch 'main' into feature/extensions commit 9515181 Author: Ryan Liang <jiallian@amazon.com> Date: Wed May 10 09:51:26 2023 -0700 Fix the conflicts Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 06055c3 Merge: df75a37 f4def32 Author: Ryan Liang <jiallian@amazon.com> Date: Wed May 10 09:34:05 2023 -0700 merge main into security extension feature branch commit df75a37 Author: MaciejMierzwa <dev.maciej.mierzwa@gmail.com> Date: Tue May 2 15:44:04 2023 +0200 Extensions config for JWT signing/encryption key (opensearch-project#2671) * Extensions config for JWT signing/encryption key Signed-off-by: Maciej Mierzwa <dev.maciej.mierzwa@gmail.com> commit d4e5f1f Merge: 4da62c3 6997f97 Author: Ryan Liang <jiallian@amazon.com> Date: Thu Apr 27 07:05:39 2023 -0700 Merge branch 'main' into feature/extensions commit 4da62c3 Merge: 73ab1fc 6ace852 Author: Craig Perkins <cwperx@amazon.com> Date: Tue Apr 25 09:38:52 2023 -0400 Merge branch 'main' into feature/extensions commit 73ab1fc Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Thu Apr 6 13:38:19 2023 -0700 [Security/Extension] Role encryption/decryption (opensearch-project#2620) * Encryption/Decryption of `roles` Signed-off-by: Ryan Liang <jiallian@amazon.com> commit 1681823 Author: Ryan Liang <109499885+RyanL1997@users.noreply.github.com> Date: Fri Mar 31 06:58:56 2023 -0700 [Security/Extension] JWT Vendor for extensions (opensearch-project#2567) * JWT Vendor for extensions Signed-off-by: Ryan Liang <jiallian@amazon.com> Signed-off-by: Peter Nied <petern@amazon.com>
Description
Initial commit of JWT token generator for extensions
Issues Resolved
Check List
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.