The support I described there for encrypted JWT is available in OPDK, Edge as well as X & hybrid.
But, please note - it applies to Encrypted JWT, which are a particular kind of JWE.
If the distinction is not clear to you, then you’ll want to double-check what you have inside the signed JWT.
I’ll try to summarize the difference here.
There is a “family” of IETF specifications called JSON Object Signing and Encryption, under the acronym “JOSE”.
JOSE includes these specs:
| Specification |
Quick summary |
Apigee support? |
| RFC 7515 - JWS |
JSON Web Signature Describes how to use JSON to encode a signature of any data stream. |
Built-in policies |
| RFC 7516 - JWE |
JSON Web Encryption Describes how to use JSON to encrypt and wrap any data stream. (XML or PNG or whatever) |
via a Java callout. Support only for RSA-based encryption algorithms. |
| RFC 7519 - JWT |
JSON Web Token Describes how to use either JWS or JWE to sign or encrypt a JSON payload, and also prescribes the semantics of some “well known” claims or properties within that JSON payload, like iss for “issuer” or “issuing party”, “aud” for “audience”, “sub” for Subject, “exp” for expiry, and so on. |
Built-in policies. Works for either signed or encrypted tokens. Supports all the encryption algorithms in RFC 7518. |
| RFC 7518 - JWA |
JSON Web Algorithms Specifies algorithms for signing or encrypting. |
Built in support for all of these, via the JWS and JWT policies. |
The “JSON” in the name does not imply that the signing or encrypting can be done only on JSON objects. Instead, it implies that the JSON is used to encode the signature. For example you could use JWS to sign a JSON, or a PDF, or a .PNG, or even an XML document. The result is “wrapped in” a JSON wrapper that encodes the signed thing (maybe the XML document) as well as a JSON header that describes how the signature was computed, and the signature bytestream itself. Similarly you can use JWE to encrypt anything, any document or bytestream. One option is to encrypt a JSON payload. The result of that operation we would call an encrypted JWT. Whether using signing or encryption, only if the signed or encrypted payload itself is a JSON object, can we call the result a JWT.
So you see, Apigee has builtin support for “encrypted JWT”, which is to say, for JWT that are encrypted according to the JWE spec. Another way to say it is, Apigee has support for JWE, only if the encrypted thing is a JSON object. But Apigee does not have builtin support for JWE in general. For that you need to use the external callout, which as I have said, is limited in that it supports only RSA-based crypto algorithms.
I hope this is all clear.
You gave me the algorithms that are used on the inner thing - which you have called a JWE. And you’ve also called it a token.
Yes we do have same inner token is JWE
The algorithms you cited are valid algorithms for the JWE, according to RFC 7516. But I’m still not clear on whether the encrypted thing is a JSON or not. If it is a JSON payload, then Apigee supports it. If it is not a JSON payload, then Apigee does not have support for that thing.
I cannot tell, from the information you’ve given here, what that JWE is. Is it an encrypted JWT, or a general JWE? You need to find out.