The extractor.yaml does not automatically apply those secrets to the environment, the APIOps tool does not load credentials from extractor.yaml directly for authentication.
Instead, it uses Azure SDK's DefaultAzureCredential, which pulls values from environment variables, not from extractor.yaml.
Add a step in your Azure DevOps pipeline before the extractor runs to export these variables:
variables:
AZURE_SUBSCRIPTION_ID: 'xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
AZURE_RESOURCE_GROUP_NAME: 'rg-dev'
API_MANAGEMENT_SERVICE_NAME: 'apim'
API_MANAGEMENT_SERVICE_OUTPUT_FOLDER_PATH: '$(Build.ArtifactsStagingDirectory)/extracted'
# Azure credentials - must be exact variable names for DefaultAzureCredential to work
AZURE_CLIENT_ID: $(AZURE_CLIENT_ID)
AZURE_CLIENT_SECRET: $(AZURE_CLIENT_SECRET)
AZURE_TENANT_ID: $(AZURE_TENANT_ID)
Then in Azure DevOps UI, Go to Pipelines -> Library -> Create a Variable Group -> Add variables -> AZURE_CLIENT_ID, AZURE_CLIENT_SECRET (mark as secret) and AZURE_TENANT_ID
then link this group in your pipeline with:
variables:
- group: <variable group name>
Hope this helps!
Please Let me know if you have any queries.