🔐 JWT Assertion Authentication Support
DynaFetch now supports JWT assertion generation for service account authentication workflows, enabling automated access to APIs like Autodesk Platform Services Secure Service Accounts (SSA).
New Features
ClientNodes.GenerateJwtAssertion
Generate RFC 7523-compliant JWT assertions for service account authentication:
- Autodesk SSA Integration: Full support for Autodesk Platform Services Secure Service Accounts
- RSA Key Support: PKCS#1 and PKCS#8 PEM format private keys
- Standards Compliant: RFC 7523 JWT Bearer Token profile
- Flexible Scopes: Configurable OAuth 2.0 scopes
- Secure Signing: RS256 algorithm with proper key management
Usage Example:
# Generate JWT assertion
jwt = ClientNodes.GenerateJwtAssertion(
privateKeyPem,
clientId,
"https://developer.api.autodesk.com/",
["data:read", "data:write"],
60
)
# Exchange for access token
tokenBody = "grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=" + jwt
response = ExecuteNodes.POST(client, tokenEndpoint, tokenBody)Use Cases
- ✅ Autodesk Platform Services (APS) Secure Service Accounts
- ✅ Google Service Accounts
- ✅ Custom OAuth 2.0 JWT Bearer flows
- ✅ CI/CD pipeline authentication
- ✅ Background automation without user interaction
Technical Details
New Dependencies:
System.IdentityModel.Tokens.Jwt8.2.1 - Microsoft's official JWT library
Security Features:
- Automatic token expiration validation (1-60 minutes)
- Unique JWT ID (jti) generation for replay attack prevention
- Proper claims structure (iss, sub, aud, iat, exp)
- Support for both PKCS#1 and PKCS#8 key formats
Documentation Updates
- README: Added JWT assertion workflow examples
- Node Library: Complete JWT assertion documentation
- Advanced Node Library: Updated node count and structure
Community Response
This feature was requested by the community (GitHub Issue) to enable Autodesk SSA integration and replace Python-based JWT generation workarounds. Thank you for the feedback! Thanks @andydandy74 for the issue that lead to this update!
Installation: Available via Dynamo Package Manager - search "DynaFetch"
Full Changelog: v1.0.9...v1.0.10