diff --git a/sdk/identity/identity-cache-persistence/package.json b/sdk/identity/identity-cache-persistence/package.json index a207993bd2f8..bf4ebb4988a2 100644 --- a/sdk/identity/identity-cache-persistence/package.json +++ b/sdk/identity/identity-cache-persistence/package.json @@ -61,7 +61,7 @@ "sideEffects": false, "dependencies": { "@azure/core-auth": "^1.3.0", - "@azure/identity": "^2.0.0-beta.7", + "@azure/identity": "^2.0.0", "@azure/msal-node": "^1.3.0", "@azure/msal-node-extensions": "1.0.0-alpha.9", "keytar": "^7.6.0", diff --git a/sdk/identity/identity-vscode/package.json b/sdk/identity/identity-vscode/package.json index 871f4ed82df8..8493173c0fd7 100644 --- a/sdk/identity/identity-vscode/package.json +++ b/sdk/identity/identity-vscode/package.json @@ -60,7 +60,7 @@ "homepage": "https://github.com/Azure/azure-sdk-for-js/tree/main/sdk/identity/identity-vscode/README.md", "sideEffects": false, "dependencies": { - "@azure/identity": "^2.0.0-beta.7", + "@azure/identity": "^2.0.0", "keytar": "^7.6.0", "tslib": "^2.2.0" }, diff --git a/sdk/identity/identity/CHANGELOG.md b/sdk/identity/identity/CHANGELOG.md index 137f0c5d28bd..5b19ea9cc580 100644 --- a/sdk/identity/identity/CHANGELOG.md +++ b/sdk/identity/identity/CHANGELOG.md @@ -1,24 +1,122 @@ # Release History -## 2.0.0-beta.7 (Unreleased) +## 2.0.0 (2021-10-12) + +After multiple beta releases over the past year, we're proud to announce the general availability of version 2 of the `@azure/identity` package. This version includes the best parts of v1, plus several improvements. + +This changelog entry showcases the changes that have been made from version 1 of this package. See the [v1-to-v2 migration guide](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/migration-v1-v2.md) for details on how to upgrade your application to use the version 2 of `@azure/identity`. ### Features Added -### Breaking Changes +#### Plugin API + +Identity v2 provides a top-level `useIdentityPlugin` function, which allows using two new plugin packages: + +- [@azure/identity-vscode](https://www.npmjs.com/package/@azure/identity-vscode), which provides the dependencies of `VisualStudioCodeCredential` and enables it. + - If the `@azure/identity-vscode` plugin isn't used through the `useIdentityPlugin` function, the `VisualStudioCodeCredential` exposed by Identity v2 will throw a `CredentialUnavailableError`. +- [@azure/identity-cache-persistence](https://www.npmjs.com/package/@azure/identity-cache-persistence), which provides persistent token caching. + +Most credentials on Identity v2 now support the persistent token caching feature. Such credentials include the property [tokenCachePersistenceOptions](https://docs.microsoft.com/javascript/api/@azure/identity/tokencachepersistenceoptions) in the constructor options which can be used to enable this feature. + +The following example showcases how to enable persistence caching by first enabling the `@azure/identity-cache-persistence` plugin with `useIdentityPlugin(cachePersistencePlugin)`, and then passing the `tokenCachePersistenceOptions` through the constructor of the `DeviceCodeCredential`: + +```ts +import { cachePersistencePlugin } from "@azure/identity-cache-persistence"; +import { useIdentityPlugin, DeviceCodeCredential } from "@azure/identity"; + +useIdentityPlugin(cachePersistencePlugin); + +async function main() { + const credential = new DeviceCodeCredential({ + tokenCachePersistenceOptions: { + enabled: true + } + }); +} +``` + +#### New credentials + +Identity v2 includes three new credential types: + +- `AzurePowerShellCredential`, which re-uses any account previously authenticated with the `Az.Account` PowerShell module. +- `ApplicationCredential`, which is a simplified `DefaultAzureCredential` that only includes `EnvironmentCredential` and `ManagedIdentityCredential`. +- `OnBehalfOfCredential`, which enables the [On-Behalf-Of authentication flow](https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow). + +#### New features in all credentials + +Identity v2 enables: + +- Support for claims challenges resulting from [Continuous Access Enforcement (CAE)](https://docs.microsoft.com/azure/active-directory/conditional-access/concept-continuous-access-evaluation) and [Conditional Access authentication context](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/granular-conditional-access-for-sensitive-data-and-actions/ba-p/1751775). + - By default, credentials of Identity v2 will produce tokens that can be used to trigger the challenge authentication flows. After these tokens expire, the next HTTP requests to Azure will fail, but the response will contain information to re-authenticate. + - To disable this behavior, set the environment variable `AZURE_IDENTITY_DISABLE_CP1` to any value. For more about claims challenges, see [Claims challenges, claims requests, and client capabilities](https://docs.microsoft.com/azure/active-directory/develop/claims-challenge). +- Support for multi-tenant authentication on all credentials except `ManagedIdentityCredential`. + - At the moment, applications needing multi-tenancy support will need to call to the credentials' `getToken` directly, sending the new `tenantId` property. + - A sample with more context will be provided in a future date. + - To disable it, set the environment variable `AZURE_IDENTITY_DISABLE_MULTITENANTAUTH`. For more about multitenancy, see [Identity management in multitenant apps](https://docs.microsoft.com/azure/architecture/multitenant-identity/). + +#### New features in InteractiveBrowserCredential and DeviceCodeCredential + +You can now control when the credential requests user input with the new `disableAutomaticAuthentication` option added to the options you pass to the credential constructors. + +- When enabled, this option stops the `getToken()` method from requesting user input in case the credential is unable to authenticate silently. +- If `getToken()` fails to authenticate without user interaction, and `disableAutomaticAuthentication` has been set to true, a new error will be thrown: `AuthenticationRequired`. You may use this error to identify scenarios when manual authentication needs to be triggered (with `authenticate()`, as described in the next point). + +A new method `authenticate()` is added to these credentials which is similar to `getToken()`, but it does not read the `disableAutomaticAuthentication` option described above. + +- Use this to get an `AuthenticationRecord` which you can then use to create new credentials that will re-use the token information. +- The `AuthenticationRecord` object has a `serialize()` method that allows an authenticated account to be stored as a string and re-used in another credential at any time. Use the new helper function `deserializeAuthenticationRecord` to de-serialize this string. +- `authenticate()` might succeed and still return `undefined` if we're unable to pick just one account record from the cache. This might happen if the cache is being used by more than one credential, or if multiple users have authenticated using the same Client ID and Tenant ID. To ensure consistency on a program with many users, please keep track of the `AuthenticationRecord` and provide them in the constructors of the credentials on initialization. + +Learn more via the below samples +- [Samples around controlling user interaction](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#control-user-interaction). +- [Samples around persisting user authentication data](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#persist-user-authentication-data). + +#### New features in ManagedIdentityCredential + +In Identity v2, the `ManagedIdentityCredential` retries with exponential back-off when a request for a token fails with a 404 status code. This change only applies to environments with available IMDS endpoints. + +Azure Service Fabric support hasn't been added on the initial version 2 of Identity. Subscribe to [issue #12420](https://github.com/Azure/azure-sdk-for-js/issues/12420) for updates on this feature. + +#### Other features + +- The Node.js version of `InteractiveBrowserCredential` has [Proof Key for Code Exchange (PKCE)](https://datatracker.ietf.org/doc/html/rfc7636) enabled by default. +- `InteractiveBrowserCredential` has a new `loginHint` constructor option, which allows a username to be pre-selected for interactive logins. +- In `AzureCliCredential`, we allow specifying a `tenantId` in the parameters through the `AzureCliCredentialOptions`. +- A new error, named `AuthenticationRequiredError`, has been added. This error shows up when a credential fails to authenticate silently. +- Errors and logged exceptions may point to the new [troubleshooting guidelines](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/Troubleshooting.md). +- On all of the credentials we're providing, the initial authentication attempt in the lifetime of your app will include an additional request to first discover relevant endpoint metadata information from Azure. + +### Breaking changes + +#### Breaking changes from v1 + +- For `ClientCertificateCredential` specifically, the validity of the PEM certificate is evaluated on `getToken` and not on the constructor. +- We have also renamed the error `CredentialUnavailable` to `CredentialUnavailableError`, to align with the naming convention used for error classes in the Azure SDKs in JavaScript. +- In v1 of Identity some `getToken` calls could resolve with `null` in the case the authentication request succeeded with a malformed output. In v2, issues with the `getToken` method will always throw errors. +- Breaking changes to InteractiveBrowserCredential + - The `InteractiveBrowserCredential` will use the [Auth Code Flow](https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-auth-code-flow) with [PKCE](https://tools.ietf.org/html/rfc7636) rather than [Implicit Grant Flow](https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-implicit-grant-flow) to better support browsers with enhanced security restrictions. Learn how to migrate in the [migration guide](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/migration-v1-v2.md). Read more about the latest `InteractiveBrowserCredential` [here](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/interactive-browser-credential.md). + - The default client ID used for `InteractiveBrowserCredential` was viable only in Node.js and not for the browser. Therefore, on v2 client ID is a required parameter when using this credential in browser apps. + - Identity v2 also removes the `postLogoutRedirectUri` from the options to the constructor for `InteractiveBrowserCredential`. This option wasn't being used. Instead of using this option, use MSAL directly. For more information, see [Authenticating with the @azure/msal-browser Public Client](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-with-the-azuremsal-browser-public-client). + - In Identity v2, `VisualStudioCodeCredential` throws a `CredentialUnavailableError` unless the new [@azure/identity-vscode](https://www.npmjs.com/package/@azure/identity-vscode) plugin is used. #### Breaking Changes from 2.0.0-beta.4 - Removed the `allowMultiTenantAuthentication` option from all of the credentials. Multi-tenant authentication is now enabled by default. On Node.js, it can be disabled with the `AZURE_IDENTITY_DISABLE_MULTITENANTAUTH` environment variable. - Removed support for specific Azure regions on `ClientSecretCredential` and `ClientCertificateCredential. This feature will be added back on the next beta. - ### Bugs Fixed +- `ClientSecretCredential`, `ClientCertificateCredential`, and `UsernamePasswordCredential` throw if the required parameters aren't provided (even in JavaScript). - Fixed a bug that caused `AzureCliCredential` to fail when a custom tenant ID was provided. - Caught up with the bug fixes for Azure POD Identity that were implemented on version 1.5.1. ### Other Changes +Identity v2 no longer includes native dependencies (neither ordinary, peer, nor optional dependencies). Previous distributions of `@azure/identity` included an optional dependency on `keytar`, which caused issues for some users in restrictive environments. + +Identity v2 for JavaScript now also depends on the latest available versions of `@azure/msal-common`, `@azure/msal-node`, and `@azure/msal-browser`. Our goal is to always be up-to-date with the MSAL versions. + ## 2.0.0-beta.6 (2021-09-09) ### Features Added @@ -176,7 +274,7 @@ This update marks the preview for the first major version update of the `@azure/ - This feature uses DPAPI on Windows, it tries to use the Keychain on OSX and the Keyring on Linux. - To learn more on the usage, please refer to our docs on the `TokenCachePersistenceOptions` interface. - **IMPORTANT:** As part of this beta, this feature is only supported in Node 10, 12 and 14. -- Changes to `InteractiveBrowserCredential`, `DeviceCodeCredential`, and `UsernamePasswordCredential`: +- Changes to `InteractiveBrowserCredential` and `DeviceCodeCredential`: - You can now control when the credential requests user input with the new `disableAutomaticAuthentication` option added to the options you pass to the credential constructors. - When enabled, this option stops the `getToken()` method from requesting user input in case the credential is unable to authenticate silently. - If `getToken()` fails to authenticate without user interaction, and `disableAutomaticAuthentication` has been set to true, a new error will be thrown: `AuthenticationRequired`. You may use this error to identify scenarios when manual authentication needs to be triggered (with `authenticate()`, as described in the next point). diff --git a/sdk/identity/identity/README.md b/sdk/identity/identity/README.md index 9d9bca6dd86d..37befbad84ee 100644 --- a/sdk/identity/identity/README.md +++ b/sdk/identity/identity/README.md @@ -14,6 +14,10 @@ Key links: ## Getting started +### Migrate from v1 to v2 of @azure/identity + +If you're using v1 of `@azure/identity`, see the [migration guide](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/migration-v1-v2.md) to update to v2. + ### Currently supported environments - [LTS versions of Node.js](https://nodejs.org/about/releases/) diff --git a/sdk/identity/identity/Troubleshooting.md b/sdk/identity/identity/Troubleshooting.md new file mode 100644 index 000000000000..4f341277d354 --- /dev/null +++ b/sdk/identity/identity/Troubleshooting.md @@ -0,0 +1 @@ +# Troubleshooting diff --git a/sdk/identity/identity/migration-v1-v2.md b/sdk/identity/identity/migration-v1-v2.md new file mode 100644 index 000000000000..0c0ccd18c7b7 --- /dev/null +++ b/sdk/identity/identity/migration-v1-v2.md @@ -0,0 +1,159 @@ +# Migrate from v1 to v2 of @azure/identity + +[v2changelog]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/CHANGELOG.md#200-2021-10-12 +[plugins]: https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/CHANGELOG.md#200-2021-10-12#plugin-api +[npm-keytar]: https://www.npmjs.com/package/keytar +[npm-vscode]: https://www.npmjs.com/package/@azure/identity-vscode + +The `@azure/identity` v2 package includes the best parts of v1, plus several improvements. This document outlines the steps needed to migrate from v1 to v2. For the full set of changes and bug fixes, refer to the [changelog][v2changelog]. + +## Table of contents + +- [Update packages](#update-packages) + - [Update Identity package](#update-identity-package) + - [Update dependencies for Visual Studio Code authentication](#update-visual-studio-code-authentication) +- [Update error handling](#update-error-handling) + - [Update authentication error handling](#update-authentication-error-handling) + - [Update error handling code for getToken calls](#update-error-handling-code-for-gettoken-calls) + - [Update ClientCertificateCredential error handling](#update-clientcertificatecredential-error-handling) +- [Update app registration for browser authentication](#update-app-registration-for-browser-authentication) +- [Troubleshooting](#troubleshooting) +- [Provide feedback](#provide-feedback) +- [Contributing](#contributing) + +## Update packages + +### Update Identity package + +Run the following command to update to Identity v2: + +```bash +npm install --save @azure/identity@^2.0.0 +``` + +The *package.json* file key-value pair now resembles the following: + +```diff + "dependencies": { +- "@azure/identity": "^1.5.2", ++ "@azure/identity": "^2.0.0", + } +``` + +### Update dependencies for Visual Studio Code authentication + +If you use the `VisualStudioCodeCredential`, you likely have [keytar][npm-keytar] in your dependencies. `keytar` is a popular native machine-code dependency in the Node.js ecosystem. NMC dependencies were removed from `@azure/identity` and put into individual packages. To use the `VisualStudioCodeCredential` with Identity v2, complete the following steps: + +1. Install the [@azure/identity-vscode][npm-vscode] package: + + ```bash + npm install --save-dev @azure/identity-vscode + ``` + +2. Enable the Visual Studio Code plugin: + + ```diff + import { + VisualStudioCodeCredential, + + useIdentityPlugin + } from "@azure/identity"; + + + import { vsCodePlugin } from "@azure/identity-vscode"; + + useIdentityPlugin(vsCodePlugin); + ``` + +The `VisualStudioCodeCredential` will now work as it did in Identity v1. + +## Update error handling + +### Update authentication error handling + +For Identity v2, the `CredentialUnavailable` error was renamed to `CredentialUnavailableError`. This change was done to align with the naming convention used for error classes in the Azure SDKs in JavaScript. + +Identity v2 also supports error handling via checking the name of the error, instead of using `instanceof`. + +If you're catching authentication errors, the following example shows the changes needed to migrate from v1 to v2: + +```diff + const credential = new DefaultAzureCredential(); + const client = new KeyClient(`https://name.vault.azure.net`, credential); + + // If catching authentication errors coming from an SDK client: + try { + await client.createKey("key1", "RSA"); + } catch(error) { +- if (error instanceof CredentialUnavailable) { ++ if (error.name === `CredentialUnavailableError`) { + console.error("Authentication error", error); + } + } + + // Or, if catching authentication errors directly from getToken: + try { + const accessToken = await credential.getToken("https://graph.microsoft.com/.default"); +- if (error instanceof CredentialUnavailable) { ++ if (error.name === `CredentialUnavailableError`) { + console.error("Authentication error", error); + } + } +``` + +### Update error handling code for getToken calls + +In Identity v1, credentials like `ClientSecretCredential` were implemented to return `null` in the edge case that the authentication requests succeeded with a malformed response. This scenario isn't an expected behavior from the Azure services. Consequently, v2 throws an error if this case is ever encountered. + +This change affects only users who expected a `null` return value from `getToken()`. Users who only used Identity credentials through the Azure SDKs aren't impacted. + +If you expected a `null` return value from a direct call to `getToken`, apply the following change: + +```diff +const credential = new ClientSecretCredential(tenantId, clientId, clientSecret); + ++ try { +const result = await credential.getToken("https://graph.microsoft.com/.default"); +- if (result === null) { ++ } catch(e) { + console.error("The authentication failed"); +} +``` + +### Update ClientCertificateCredential error handling + +In Identity v1, if a path to an invalid PEM certificate is provided to the constructor of `ClientCertificateCredential`, the constructor throws immediately. In v2, this validation only happens on the `getToken` method. + +This change won't be visible unless you were catching certificate errors through the constructor call of this credential. In that case, you'll need to change your code to do the error handling on the `getToken` call. + +The following code shows the change needed to catch certificate path errors on Identity v2: + +```diff ++ const credential = new ClientCertificateCredential(tenantId, clientId, certificatePath); +try { +- const credential = new ClientCertificateCredential(tenantId, clientId, certificatePath); ++ const accessToken = await credential.getToken("https://graph.microsoft.com/.default"); +} catch(error) { + // Invalid certificate path. +} +``` + +## Update app registration for browser authentication + +On the browser, the `InteractiveBrowserCredential` now uses the [Auth Code Flow](https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-auth-code-flow) with [PKCE](https://tools.ietf.org/html/rfc7636) rather than [Implicit Grant Flow](https://docs.microsoft.com/azure/active-directory/develop/v2-oauth2-implicit-grant-flow) to better support browsers with enhanced security restrictions. + +To migrate to v2 of the `InteractiveBrowserCredential`, your Azure Active Directory app registration needs to change. Take one of the following actions: + +- Create a [new app registration](https://docs.microsoft.com/azure/active-directory/develop/scenario-spa-app-registration#create-the-app-registration). +- [Update your existing app registration to support the Auth Code Flow](https://docs.microsoft.com/azure/active-directory/develop/migrate-spa-implicit-to-auth-code). + +For more information, see [Interactive Browser Credential documentation](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/interactive-browser-credential.md). + +## Troubleshooting + +As part of the v2 release, a [troubleshooting guide](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/Troubleshooting.md) is provided. This guide includes solutions to many common problems users have encountered. In v2, errors and exception logs link to this troubleshooting guide. + +## Provide feedback + +If you encounter bugs or have suggestions, [open an issue](https://github.com/Azure/azure-sdk-for-js/issues). + +## Contributing + +To contribute to this library, see the [contributing guide](https://github.com/Azure/azure-sdk-for-js/blob/main/CONTRIBUTING.md). diff --git a/sdk/identity/identity/package.json b/sdk/identity/identity/package.json index a6379c3263c0..c09e1d19eacf 100644 --- a/sdk/identity/identity/package.json +++ b/sdk/identity/identity/package.json @@ -1,7 +1,7 @@ { "name": "@azure/identity", "sdk-type": "client", - "version": "2.0.0-beta.7", + "version": "2.0.0", "description": "Provides credential implementations for Azure SDK libraries that can authenticate with Azure Active Directory", "main": "dist/index.js", "module": "dist-esm/src/index.js", diff --git a/sdk/identity/identity/src/client/identityClient.ts b/sdk/identity/identity/src/client/identityClient.ts index 244d09d04253..b71070ff5cc2 100644 --- a/sdk/identity/identity/src/client/identityClient.ts +++ b/sdk/identity/identity/src/client/identityClient.ts @@ -64,7 +64,7 @@ export class IdentityClient extends ServiceClient implements INetworkModule { private abortControllers: Map; constructor(options?: TokenCredentialOptions) { - const packageDetails = `azsdk-js-identity/2.0.0-beta.7`; + const packageDetails = `azsdk-js-identity/2.0.0`; const userAgentPrefix = options?.userAgentOptions?.userAgentPrefix ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}` : `${packageDetails}`; diff --git a/sdk/keyvault/keyvault-admin/package.json b/sdk/keyvault/keyvault-admin/package.json index 447052e87dc5..a3614dd69ee9 100644 --- a/sdk/keyvault/keyvault-admin/package.json +++ b/sdk/keyvault/keyvault-admin/package.json @@ -120,7 +120,7 @@ "@azure/core-util": "^1.0.0-beta.1", "@azure/dev-tool": "^1.0.0", "@azure/eslint-plugin-azure-sdk": "^3.0.0", - "@azure/identity": "2.0.0-beta.7", + "@azure/identity": "^2.0.0", "@azure/keyvault-keys": "^4.2.1", "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", diff --git a/sdk/keyvault/keyvault-certificates/package.json b/sdk/keyvault/keyvault-certificates/package.json index 405d91cca78b..0f03c8f96307 100644 --- a/sdk/keyvault/keyvault-certificates/package.json +++ b/sdk/keyvault/keyvault-certificates/package.json @@ -117,7 +117,7 @@ "devDependencies": { "@azure/dev-tool": "^1.0.0", "@azure/eslint-plugin-azure-sdk": "^3.0.0", - "@azure/identity": "2.0.0-beta.7", + "@azure/identity": "^2.0.0", "@azure/keyvault-secrets": "^4.2.0", "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", diff --git a/sdk/keyvault/keyvault-keys/package.json b/sdk/keyvault/keyvault-keys/package.json index 96e3439411bc..816be7613f44 100644 --- a/sdk/keyvault/keyvault-keys/package.json +++ b/sdk/keyvault/keyvault-keys/package.json @@ -114,7 +114,7 @@ "devDependencies": { "@azure/dev-tool": "^1.0.0", "@azure/eslint-plugin-azure-sdk": "^3.0.0", - "@azure/identity": "2.0.0-beta.7", + "@azure/identity": "^2.0.0", "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", "@microsoft/api-extractor": "^7.18.11", diff --git a/sdk/keyvault/keyvault-secrets/package.json b/sdk/keyvault/keyvault-secrets/package.json index 55b8d1e3e69b..6b57d86a211e 100644 --- a/sdk/keyvault/keyvault-secrets/package.json +++ b/sdk/keyvault/keyvault-secrets/package.json @@ -113,7 +113,7 @@ "devDependencies": { "@azure/dev-tool": "^1.0.0", "@azure/eslint-plugin-azure-sdk": "^3.0.0", - "@azure/identity": "2.0.0-beta.7", + "@azure/identity": "^2.0.0", "@azure/test-utils": "^1.0.0", "@azure-tools/test-recorder": "^1.0.0", "@microsoft/api-extractor": "^7.18.11", diff --git a/sdk/monitor/monitor-query/package.json b/sdk/monitor/monitor-query/package.json index 3a69cba7b253..7919b1aad8d4 100644 --- a/sdk/monitor/monitor-query/package.json +++ b/sdk/monitor/monitor-query/package.json @@ -109,7 +109,7 @@ "@azure/dev-tool": "^1.0.0", "@azure/eslint-plugin-azure-sdk": "^3.0.0", "@azure/abort-controller": "^1.0.0", - "@azure/identity": "2.0.0-beta.7", + "@azure/identity": "^2.0.0", "@azure/monitor-opentelemetry-exporter": "1.0.0-beta.4", "@azure-tools/test-recorder": "^1.0.0", "@microsoft/api-extractor": "^7.18.11", diff --git a/sdk/monitor/monitor-query/samples/v1/javascript/package.json b/sdk/monitor/monitor-query/samples/v1/javascript/package.json index 1746269369ca..d43b591aa4ae 100644 --- a/sdk/monitor/monitor-query/samples/v1/javascript/package.json +++ b/sdk/monitor/monitor-query/samples/v1/javascript/package.json @@ -25,6 +25,6 @@ "dependencies": { "@azure/monitor-query": "next", "dotenv": "latest", - "@azure/identity": "2.0.0-beta.7" + "@azure/identity": "^2.0.0" } } diff --git a/sdk/monitor/monitor-query/samples/v1/typescript/package.json b/sdk/monitor/monitor-query/samples/v1/typescript/package.json index ad0ef023dbd4..909c00423bad 100644 --- a/sdk/monitor/monitor-query/samples/v1/typescript/package.json +++ b/sdk/monitor/monitor-query/samples/v1/typescript/package.json @@ -29,7 +29,7 @@ "dependencies": { "@azure/monitor-query": "next", "dotenv": "latest", - "@azure/identity": "2.0.0-beta.7" + "@azure/identity": "^2.0.0" }, "devDependencies": { "typescript": "~4.2.0", diff --git a/sdk/monitor/perf-tests/monitor-query/package.json b/sdk/monitor/perf-tests/monitor-query/package.json index 96a70e09ec0f..28140632189e 100644 --- a/sdk/monitor/perf-tests/monitor-query/package.json +++ b/sdk/monitor/perf-tests/monitor-query/package.json @@ -11,7 +11,7 @@ "@azure/monitor-query": "1.0.0-beta.6", "@azure/test-utils-perfstress": "^1.0.0", "dotenv": "^8.2.0", - "@azure/identity": "2.0.0-beta.7" + "@azure/identity": "^2.0.0" }, "devDependencies": { "@types/node": "^12.0.0",