Commit Graph

309 Commits

Author SHA1 Message Date
Ahson Khan
f80caf2fea
Remove support for customizing the IMDS endpoint within ManagedIdentityCredential using an env var (#5997)
* Remove support for customizing the IMDS endpoint within ManagedIdentityCredential using an env var

* Remove test after merge.

* Revert "Remove test after merge."

This reverts commit 0d1a4fb8ca5c34bc253e999a86d337bbcddea63e.

* Only remove the test, after merge.

* Move imds endpoint url to a named const string and add doc link
2024-10-03 13:49:34 -07:00
Ahson Khan
d22781c84a
Use static factory methods to create ManagedIdentityId rather than an enum (#6051)
* Use a static factory method

* Update tests and samples.

* Remove unnecessary std::move and update the samples in readme.

* Address PR feedback - use more real values for resourceIDs in tests.

* Update tests and samples to use resourceID strings with the expected prefix.

* Fix test assert.
2024-10-02 09:22:29 -07:00
Ahson Khan
1ce3178c42
In ClientCertificateCredential, add the x5c parameter of the JWT token as a JSON array rather than a JSON string. (#6052)
* In ClientCertificateCredential, add the x5c parameter of the JWT token as a JSON array rather than a JSON string.

* Update sdk/identity/azure-identity/src/client_certificate_credential.cpp

Co-authored-by: Ray Luo <rayluo.mba@gmail.com>

---------

Co-authored-by: Ray Luo <rayluo.mba@gmail.com>
2024-10-01 22:01:59 -07:00
Anton Kolesnyk
171386533a
Fix/unify links in CHANGELOG.md files (#6048)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2024-09-30 12:35:55 -07:00
Ahson Khan
aa728eed6d
Use code snippets from managed identity credential samples in identity readme doc and fix minor generation issues (#6020)
* Use code snippets from managed identity credential samples in identity readme doc.

* Generate readme from snippets.

* Update snippet generation script to remove unnecessary indentation and extra new line at eof.

* Update Snippet Generation doc to show a concrete example on how to run it.

* Update other repo READMEs with the generation fixes.

* Fix KeyVault Secrets sample and use the snippets in its README

* Use the added sample snippet.
2024-09-25 16:56:57 -07:00
Ahson Khan
023469bc18
Remove unused included header from core that isn't available in the GA'd version (#6042) 2024-09-25 16:09:22 -07:00
Ahson Khan
309a390947
Add a readme section for user and system assigned managed identity for ManagedIdentityCredential. (#5838)
* Add a readme section for user and system assigned managed identity for
MICredential.

* Update the README to reflect new API surface and add section about Object ID.

* Mention object ID in the intro.

* Reorder the list of IDs mentioned to match the section order.
2024-09-21 07:00:12 +00:00
Ahson Khan
b1f147e884
Updated the request header sent to the OIDC endpoint in so it doesn't result in a redirect response when an invalid system access token is provided. (#6019)
* Updated the request header sent to the OIDC endpoint in  so it doesn't result in a redirect response when an invalid system access token is provided.

* Add comment on what X-TFS-FedAuthRedirect does.
2024-09-20 17:42:57 -07:00
Ahson Khan
641dcc84f1
Allow x-vss-e2eid response header to be logged in AzurePipelinesCredential for diagnostics. (#6001)
* Allow x-vss-e2eid response header to be logged in AzurePipelinesCredential for diagnostics.

* Dont redact the x-msedge-ref header either.

* Add the necessary response headers to the exception message.

* Update cspell.

* Update CL

* Fix size_t comparison

* Use std::array to get the size() method.

* Add the <array> include directive to be explicit.
2024-09-20 17:26:30 -07:00
Ahson Khan
d1cd23f4c1
Address archboard review feedback for new Azure Identity features - renames (#6000) 2024-09-18 16:07:46 -07:00
Azure SDK Bot
eeaa711966
Increment package version after release of azure-identity (#5999) 2024-09-17 18:00:22 -07:00
Ahson Khan
d7b63eef12
Add const& to input std::string params in ClientCertificateCredential. (#5993) 2024-09-17 15:56:31 -07:00
Ahson Khan
102da820c6
Prepare for Azure Identity September Beta Release (#5977) 2024-09-17 10:10:08 -07:00
Ahson Khan
e7420dfd04
Accept base64 (PEM) encoded certificate as std::string instead of vector<uint8_t> (#5991)
* Accept base64 (PEM) encoded certificate as std::string instead of vector<uint8_t>

* Fix unix implementation and remove use of privacy enhance mail in comments, in favor of PEM
2024-09-16 12:10:39 -07:00
Ahson Khan
639fc9f594
Add support for passing in the x509 certificate and its corresponding private key directly to ClientCertificateCredential, rather than reading from a pem file. (#5989)
* Add support for passing in the x509 certificate and its corresponding private key directly to , rather than reading from a pem file.

* Move the x509 and pkey objects

* Add basic test.

* Fix doc comment due to merge.

* Fix merge, add back the bool

* Pass in bool in other locations

* Fix finding pem cert content from memory and add tests with send chain true.

* Use d2i_PrivateKey_bio instead of PEM_read_bio_PrivateKey since the private key isn't in pem format.

* Fix doc comments to match the type name rather than copy/paste typo from client secret cred.

* Make options optional and add invalid content tests.

* Disable cspell in some places within tests.

* Make exception message consistent between platforms when reading a file.
2024-09-14 11:12:53 -07:00
Ahson Khan
e1afe4d7ea
Add support for sending an x5c parameter in the JWT token header for ClientCertificateCredential. (#5988)
* Add public surface area to support sending a chain of certs.

* Add x5c param to the JWT token.

* Simplify test.

* Address PR feedback and fix typo.

* Fix typo.
2024-09-13 19:35:40 -07:00
Scott Addie
df6f5c910d
Create credential chains section in Azure Identity README (#5973) 2024-09-12 14:48:20 +00:00
Ahson Khan
ea3f1442b2
Move the ResourceIdentifier type from Azure::Identity to Azure::Core. (#5864)
* Move the ResourceIdentifier type from Identity to Azure::Core.

* Fix the namespace in the source cpp file.

* Fix managed identity credential tests.

* Fix clang format.
2024-09-05 15:22:18 -04:00
Ahson Khan
7a9c54d915
Remove the ResourceIdentifier accepting ctor overload for ManagedIdentityCredential. (#5928) 2024-08-19 15:07:55 -07:00
Ahson Khan
042d2ed734
Add more input validation for passing in an empty id, or an invalid enum value. (#5924)
* Add more input validation for passing in an empty id, or an invalid enum
value.

* Fix typo in exception message.
2024-08-19 10:35:07 -07:00
Ahson Khan
54a7bc363b
Add support for providing an object ID to ManagedIdentityCredential. (#5910)
* Add support for providing an object ID to ManagedIdentityCredential.

* Update cspell checks.

* Add support for creating a Uuid from a string, and use that as the
MICred overload for objectId.

* Add a remark comment to make it clear that object and client ids are not interchangeable.

* Remove the non-const ToString() as that isn't required.

* Update tests to use valid hex Uuid values.

* Use a discriminated union design approach with a ManagedIdentityType
object and ManagedIdentityIdType enum.

* Fix typo and remove Uuid CreateFromString.

* Address PR feedback.

* Update doc comment.

* Update comments and exception message to consistently use hyphens
between user/system and assigned.
2024-08-16 20:47:05 -07:00
Ahson Khan
cf562e0d12
Do not pass a client ID into the request body for MICredential within a Cloud Shell environment, but rather throw, as not supported. (#5837)
* Do not pass in a client ID into the request body in a Cloud Shell
environment, but rather throw, as not supported.

* Address PR feedback - reword exception to avoid mention of SAI.

* Address PR feedback - use param name in exception.
2024-08-13 16:26:03 -07:00
George Arama
f85dd16ab9
Identity perf pipeline run triggers (#5892)
* update changelog

* test 1
2024-08-12 15:37:14 -07:00
Ahson Khan
4f77d817b9
Revert "Pull beta-only changes out of identity for the August GA release (#5863)" (#5889)
This reverts commit 60dff1dac1.
2024-08-09 11:35:24 -07:00
Azure SDK Bot
28baef9b80
Increment package version after release of azure-identity (#5880) 2024-08-07 10:21:36 -07:00
Ahson Khan
bee901e0b0
Update the TSG for AzurePipelinesCredential. (#5736)
* Update the TSG for AzurePipelinesCredential.

* Add a section to APC TSG about invalid client id.

* Add more error cases.

* Revert test change.
2024-08-02 17:44:08 -07:00
Ahson Khan
1d9ccf4434
Prepare for the August Identity GA release. (#5862) 2024-08-02 16:07:13 -07:00
Ahson Khan
60dff1dac1
Pull beta-only changes out of identity for the August GA release (#5863)
* Revert "Add support for providing a Resource ID to ManagedIdentityCredential. (#5832)"

This reverts commit 193bbe6963.

* Revert "Add support for customizing the IMDS endpoint within ManagedIdentityCredential using an env var. (#5834)"

This reverts commit 00304a0556.
2024-08-02 16:06:04 -07:00
Ahson Khan
5fd26a6832
Use client assertion credential within AzurePipelinesCredential and WorkloadIdentityCredential (#5802)
* Use ClientAssertionCredential within AzurePipelinesCredential.

* Use ClientAssertionCredential in WorkloadIdentityCredential.

* Fix DefaultAzureCredentia.LogMessages test since an extra log got added.

* Disable tests that dont correctly simulate the token request and return
the test response.

* Address PR feedback and make sure base options are passed in to underlying
client assertion credential.

* Address PR feedback - move credential ctor into validation checks.

* Address PR feedback, add const.

* Add a ClientAssertionCredentialImpl to make sure logs use the calling
credential name.
2024-08-02 16:05:01 -07:00
George Arama
34c2441523
Enable UseFederatedAuth by default (#5852)
* enable use federated

* 401 unauthorized

* 401

* cleanup readmes

* DISABLE RUN

* Remove UseFederatedAuth overrides from ci.yml

* DISABLE RUN for admin samples,
2024-07-31 17:10:39 -07:00
Anton Kolesnyk
2c0a35dad4
Undo unnecessary Core vcpkg dependency version bump (#5860)
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2024-07-31 22:23:29 +00:00
Anton Kolesnyk
0f62b3aa63
Add consumption-time value of __cplusplus to User-Agent (#5662)
* Add consumption-time value of __cplusplus to User-Agent

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2024-07-29 18:31:51 -07:00
Azure SDK Bot
cce5fc98a6
Increment package version after release of azure-identity (#5835) 2024-07-22 20:26:28 -07:00
Ahson Khan
b1674473eb
Prepare for the July Identity beta release. (#5770)
* Prepare for the July Identity beta release.

* Update release date.

* Update CL - remove empty headings.
2024-07-22 19:06:04 -07:00
Ahson Khan
193bbe6963
Add support for providing a Resource ID to ManagedIdentityCredential. (#5832)
* Add support for providing a Resource ID to ManagedIdentityCredential.

* Fix typo in param name.

* Fix clang format and undo removing of private methods (that are unused).

* Address PR feedback.

* Add back Azure:: to fix doxygen docs issue.
2024-07-22 19:00:13 -07:00
Ahson Khan
00304a0556
Add support for customizing the IMDS endpoint within ManagedIdentityCredential using an env var. (#5834)
* Add support for customizing the IMDS endpoint within
ManagedIdentityCredential using an env var.

* Clean up the impl.

* Add imds as an opt-out for spell checl.

* Address PR feedback.
2024-07-22 18:27:16 -07:00
Scott Addie
4b8d7a05e0
Reformat DefaultAzureCredential flow chart (#5829) 2024-07-18 22:50:26 +00:00
Ahson Khan
9b9f76a737
Re-enable running previously disabled samples using AzureCliCredential. (#5818)
* Re-enable running KeyVault samples on Ubuntu using AzureCliCredential.

* Re-enable running Attestation samples using AzureCliCredential.

* Re-enable running EventHubs samples using AzureCliCredential.

* Re-enable running Identity samples.

* Disable client_secret_credential_sample since it depends on env vars
that don't exist.
2024-07-18 14:45:27 -07:00
Larry Osterman
90089ad326
Cleaned up Azure::Core::Context API surface (#5676)
* Deprecated Azure::Core::ApplicationContext because its use is confusing and inconsistent with the original design. 

---------

Co-authored-by: Rick Winter <rick.winter@microsoft.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
2024-07-17 12:38:30 -07:00
Larry Osterman
e19dc2371c
Use GetTestCredentials in eventhubs admin client; updated samples to allow sample execution to be disabled (#5799)
* Use GetTestCredentials in eventhubs admin client; updated samples to allow sample execution to be disabled

* Made sample execution optional

* re-enabled building keyvault samples

* Disabled RetrieveMultipleEvents test

* Disabled RetrieveMultipleEvents test

* Pull request feedback
2024-07-16 10:29:54 -07:00
Ahson Khan
7e9906f884
Added ClientAssertionCredential to enable applications to authenticate with custom client assertions. (#5789)
* Added `ClientAssertionCredential` to enable applications to authenticate with custom client assertions.

* Rename test file.

* Update client assertion credential tests.

* Fix typo.

* Address PR feedback - pass in function by value and some comment fixup.

* Update log messages to use credential name as a prefix.
2024-07-15 19:30:56 -07:00
George Arama
313fb0e58f
Move tests to use azure pipeline credentials (#5754)
* test1

* hgdfchg

* remove the remnants of azure client secret

* test KV with federated auth

* UseFederatedAuth

* fdsa

* kv template with managed

* try try again

* retry permissions

* add net acls

* blunt force replace the resource json

* put back stuff

* trey again with new method

* attempt

* missed something

* flip if else

* Temporarily use empty sub config file path for preview cloud

* remove client secret

* try to fix the identity tests

* live skip failing tests and return in samples

* samples for identity fix

* disable failing samples in identity

* fix winhttp failing test

* comment out code

* remove managed identity

* restore version from main

* revert readme changes

* PR comments

* test 2

* clang

* attempt default creds with pipeline chanined

* clangs

* identity test and clangs

* oops

* live

* cleanup

* reter

* test

* revert the DAC change

* missed one

* taking the samples to a farm upstate

* PR comments

* Fix bad merge

---------

Co-authored-by: Daniel Jurek <djurek@microsoft.com>
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
2024-07-11 17:38:19 -07:00
Ahson Khan
aadeca2c5c
Turn federated auth on for Identity tests. (#5785)
* Turn federated auth on for Identity tests.

* Update test resources json.
2024-07-12 00:00:15 +00:00
Ahson Khan
3e5b7064ec
Add live tests for AzurePipelinesCredential. (#5734)
* Add AzurePipelinesCredential for authenticating an Azure Pipelines service connection with workload identity federation.

* Add unit tests.

* Add comment about not throwing in the ctor, but rather deferring it.

* Order field in order of initialization and fix cspell.

* Fix ambiguous call to EnvironmentOverride in tests.

* Add a live test to AzurePipelinesCredential.

* Add invalid test cases and output response.

* Add access token env var in ci.yml.

* Add identity yml files and EnvVars.

* Fix merge conflicts and print out the oidc response.

* Remove duplicate definition of ServiceDirectory and remove env.

* Revert CI/infra changes.

* Include engsys changes to add federated auth support.

* Update environment variables used.

* Sync recent engsys changes.

* Add invalid tenant id test and re-order them.

* Fail the live test pipeline if a test fails.

* Update tests and revert source changes.

* Debug failing TokenCredentialTest in new live test environment.

* Dont fail test on missing env var.

* Disable federated auth in ci.yml and add back client secret env var.

* Remove test application secret.

* Revert other changes related to infra.
2024-06-26 11:44:01 -07:00
Azure SDK Bot
e488093c19
Increment package version after release of azure-identity (#5742) 2024-06-25 21:33:16 -07:00
Ahson Khan
dd83659802
Prepare for the June Identity beta release, oob. (#5735) 2024-06-21 14:15:48 -07:00
Ahson Khan
9b2c3b337e
Add AzurePipelinesCredential for authenticating an Azure Pipelines service connection with workload identity federation. (#5733)
* Add AzurePipelinesCredential for authenticating an Azure Pipelines service connection with workload identity federation.

* Add unit tests.

* Add comment about not throwing in the ctor, but rather deferring it.

* Order field in order of initialization and fix cspell.

* Fix ambiguous call to EnvironmentOverride in tests.

* Address PR feedback, suppress warning, move oidc fetch in token cache,
and update exception message.

* Address PR feedback, use ID and capitalize Azure Pipelines.

* Revert back to the workaround for the warning, rather than suppressing
it.

* Address PR feedback, move getting an assertion to a helper, and add
const.
2024-06-20 21:09:31 -07:00
Ahson Khan
ed933f5dfd
Add a trouble shooting guide for azure-identity, specific to C++. (#5730)
* Add a trouble shooting guide for azure-identity.

* Fix casing.

* Add cspell opt-outs.

* Update section level nesting to 3 instead of 4.
2024-06-19 15:41:08 -07:00
Ahson Khan
20efadde4c
Add back-ticks around the WWW-Authenticate header name in exception (#5717)
message.
2024-06-13 10:12:05 -07:00
Azure SDK Bot
5264ee4e28
Increment package version after release of azure-identity (#5714) 2024-06-12 08:33:45 -07:00