Managed Identity Authentication¶
This recipe demonstrates how to authenticate with Azure Communication Services (ACS) using Azure Managed Identities with the JavaScript SDK.
Prerequisites¶
- Azure Managed Identity enabled on your compute resource.
- Appropriate RBAC roles assigned (e.g., Cognitive Services User).
DefaultAzureCredential with ACS¶
The @azure/identity package provides the DefaultAzureCredential class.
System-Assigned Managed Identity¶
const { CommunicationIdentityClient } = require("@azure/communication-identity");
const { DefaultAzureCredential } = require("@azure/identity");
// Get the endpoint from an environment variable
const endpoint = process.env.COMMUNICATION_SERVICES_ENDPOINT;
// Initialize the client
const client = new CommunicationIdentityClient(endpoint, new DefaultAzureCredential());
async function main() {
const user = await client.createUser();
console.log(`Created user with managed identity: ${user.communicationUserId}`);
}
main();
User-Assigned Managed Identity¶
const { CommunicationIdentityClient } = require("@azure/communication-identity");
const { DefaultAzureCredential } = require("@azure/identity");
const endpoint = process.env.COMMUNICATION_SERVICES_ENDPOINT;
const userAssignedClientId = "<your-user-assigned-identity-client-id>";
// Specify the user-assigned identity client ID
const credential = new DefaultAzureCredential({
managedIdentityClientId: userAssignedClientId
});
const client = new CommunicationIdentityClient(endpoint, credential);
Client Examples¶
SMS Client¶
const { SmsClient } = require("@azure/communication-sms");
const { DefaultAzureCredential } = require("@azure/identity");
const endpoint = process.env.COMMUNICATION_SERVICES_ENDPOINT;
const smsClient = new SmsClient(endpoint, new DefaultAzureCredential());
Email Client¶
const { EmailClient } = require("@azure/communication-email");
const { DefaultAzureCredential } = require("@azure/identity");
const endpoint = process.env.COMMUNICATION_SERVICES_ENDPOINT;
const emailClient = new EmailClient(endpoint, new DefaultAzureCredential());