Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Managed Identity in MSALJS #6880

Merged
merged 56 commits into from
Apr 10, 2024
Merged

Managed Identity in MSALJS #6880

merged 56 commits into from
Apr 10, 2024

Conversation

Robbie-Microsoft
Copy link
Collaborator

@Robbie-Microsoft Robbie-Microsoft commented Feb 6, 2024

Implemented Managed Identity in MSALJS. The following sources can be used to create a Managed Identity application:

  • App Service
  • Azure Arc
  • Cloud Shell
  • Imds
  • Service Fabric

Tested all sources manually, and have unit tests which make fake network requests.

Robbie-Microsoft and others added 15 commits November 16, 2023 18:28
This PR covers the API for the new (MSAL-Node specific) Managed Identity
Client. Only the App Service source has been implemented for now. The
Azure Arc, CloudShell, IMDS and Service Fabric sources will be in
another PR.

The following is how a developer will create a new managed identity
client and acquire a token

```
import * as msal from "@azure/msal-node";

// optional
const config: msal.ManagedIdentityConfiguration = {
    // optional
    managedIdentityIdParams: {
        userAssignedClientId: "managed_identity_id"
    },
    system: { // optional
        loggerOptions: msal.LoggerOptions; // optional
        networkClient: msal.INetworkModule; // optional
        proxyUrl: string; // optional
        customAgentOptions: http.AgentOptions | https.AgentOption; // optional
    },
};

// required
const request: msal.ManagedIdentityRequest = {
    forceRefresh: true, // optional, defaults to false
    resource: "URI_of_the_managed_identity_assigned_to_the_azure_resource" // required
};

..................

try {
    const managedIdentityClient = new msal.ManagedIdentityClient(config);
    const response = await managedIdentityClient.acquireToken(request);
    console.log(response);
} catch (error) {
    console.log(error);
}
```

---------

Co-authored-by: Robbie Ginsburg <rgins16@gmail.com>
…ture Branch (#6681)

Co-authored-by: Robbie Ginsburg <rgins16@gmail.com>
Successfully ran sample on an Azure VM
In making the Service Fabric + Cloud Shell code as efficient as
possible, several code improvements that affect the other managed
identity sources were implemented as well.

Cloud Shell has been manually tested
Service Fabric still needs to be manually tested
@github-actions github-actions bot added documentation Related to documentation. samples Related to the samples apps for the library. msal-node Related to msal-node package msal-common Related to msal-common package labels Feb 6, 2024
@Robbie-Microsoft Robbie-Microsoft linked an issue Feb 13, 2024 that may be closed by this pull request
Robbie-Microsoft and others added 4 commits March 25, 2024 15:13
This sample is almost identical to the Azure VM sample. Only the README
really needs to be reviewed.
Copy link

@pmaytak pmaytak left a comment

Choose a reason for hiding this comment

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

Approving in lieu of Neha's approval.

@Robbie-Microsoft Robbie-Microsoft merged commit 8f3bad9 into dev Apr 10, 2024
44 of 45 checks passed
@Robbie-Microsoft Robbie-Microsoft deleted the msi_feature_branch branch April 10, 2024 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Related to documentation. msal-common Related to msal-common package msal-node Related to msal-node package samples Related to the samples apps for the library.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Managed Identity Support in MSAL JS
4 participants