Skip to content

Conversation

@tylerwarner33
Copy link
Contributor

@tylerwarner33 tylerwarner33 commented Sep 25, 2025

About

Add support for the Secure Service Account API recently released for 'General Availability' (GA).

References

Changes

  • New API / Nuget Package added to support the Secure Service Account API.
  • Added as a subset of the Authentication API based on endpoint routes (adjust as needed).

Testing

  • A tests.runsettings file can be created with this format to populate the environment variables in the test suite.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
	<RunConfiguration>
		<EnvironmentVariables>
			<clientId></clientId>
			<clientSecret></clientSecret>
			<twoLeggedToken></twoLeggedToken>
			<serviceAccountName></serviceAccountName>
			<serviceAccountFirstName></serviceAccountFirstName>
			<serviceAccountLastName></serviceAccountLastName>
			<serviceAccountId></serviceAccountId>
			<pathToPrivateKeyFile></pathToPrivateKeyFile>
			<keyId></keyId>
		</EnvironmentVariables>
	</RunConfiguration>
</RunSettings>

Copilot AI review requested due to automatic review settings December 3, 2025 11:30
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive support for the Autodesk Platform Services (APS) Secure Service Account API, which recently reached General Availability (GA). The implementation provides OAuth2 server-to-server authentication capabilities through secure service accounts with asymmetric key pairs.

Key Changes:

  • New Autodesk.Authentication.SecureServiceAccount NuGet package with three main API groups: Account Management, Key Management, and Token Exchange
  • JWT assertion generation using RSA 2048-bit keys for secure token exchange
  • Complete model definitions for service accounts, keys, tokens, and related entities

Reviewed changes

Copilot reviewed 29 out of 29 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
authentication/secureserviceaccount/source/custom-code/SecureServiceAccountClient.cs Main client implementation with wrapper methods for all API operations and JWT assertion generation
authentication/secureserviceaccount/source/Http/AccountManagementApi.gen.cs HTTP API implementation for CRUD operations on service accounts
authentication/secureserviceaccount/source/Http/KeyManagementApi.gen.cs HTTP API implementation for managing RSA key pairs associated with service accounts
authentication/secureserviceaccount/source/Http/ExchangeTokenApi.gen.cs HTTP API implementation for exchanging JWT assertions for access tokens
authentication/secureserviceaccount/source/LocalMarshalling.cs Utility class for serialization, deserialization, and parameter marshalling
authentication/secureserviceaccount/source/Model/*.gen.cs Model classes for service accounts, keys, tokens, scopes, and related DTOs
authentication/secureserviceaccount/test/TestSecureServiceAccount.cs Comprehensive test suite covering all API operations
Aps.Sdk.sln Updated solution file to include new secure service account project
README.md Added NuGet package badges for the new Secure Service Account package
Directory.Packages.props Added System.IdentityModel.Tokens.Jwt dependency for JWT generation
Comments suppressed due to low confidence (1)

authentication/secureserviceaccount/source/Http/AccountManagementApi.gen.cs:498

  • This assignment to json is useless, since its value is never read.
      string json = await response.Content.ReadAsStringAsync();

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Ran 'dotnet format' on project to use settings from new .editorconfig.
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.

1 participant