Dev & Engineering ✓ Microsoft · Official azure-communication-servicesjava-sdktoken-credentialstoken-refreshuser-identifiersentra-id

Azure Communication Common for Java

Guides Java developers through shared ACS authentication, token refresh, and communication identifier handling.

FollowSkills review · FSRS-2.0
Use with care
51/ 100 5-point scale 2.6 / 5
1 2 3 4 5 6
1Trust16 / 25 · 3.2/5

The documentation explicitly advises against logging full tokens, recommends graceful refresh-failure handling, and mostly uses placeholders; however, the token-service example sends userId in a GET query string and does not define least privilege, user confirmation, data-flow boundaries, endpoint security, dependency security, or recovery, so points are deducted.

2Reliability8 / 20 · 2.0/5

The main credential, identifier, and refresh patterns are broadly consistent and include retry and failure-handling guidance; however, examples rely on undefined methods, include a blocking async pattern, and provide no skill-specific tests or compatibility validation. Static evidence is limited, so the score is conservative.

3Adaptability9 / 15 · 3.0/5

Trigger phrases, Java targeting, and ACS authentication scenarios are clear; boundaries for non-fit use cases, input/output contracts, API-version constraints, and abnormal inputs are under-specified. Chinese support and mainland-China network reachability are not addressed, so points are deducted.

4Convention8 / 15 · 2.7/5

The skill has front matter, MIT licensing, a version, installation guidance, layered examples, references, and best practices; it lacks a changelog, explicit maintenance owner/update path, FAQ, compatibility matrix, and complete dependency notes, so points are deducted.

5Effectiveness6 / 15 · 2.0/5

Coverage includes static tokens, refresh, Entra ID, identifier parsing, caching, and disposal, providing useful starting material for common ACS Java tasks; several examples depend on unstated services or methods and contain security or completeness risks. No execution was performed, so the score remains below the static ceiling.

6Verifiability4 / 10 · 2.0/5

The skill and reference examples are auditable, and the repository includes general CI and harness tests; there are no skill-specific committed tests, real execution results, or independent third-party corroboration. The assessment therefore relies mainly on static documentation and is scored conservatively.

Evidence confidence:Low Reviewed Jul 20, 2026 Reviewed revision 9ccaf7c3704a
Before you use it
  • Do not log full tokens or transmit them through insecure query parameters; obtain and refresh tokens through a secured server-side flow.
  • Verify the actual APIs and version compatibility of azure-communication-common, azure-identity, and related ACS clients before adoption.
  • Add diagnosable handling and tests for refresh failures, invalid identifiers, endpoint misconfiguration, and multi-tenant isolation.
  • The core workflow depends on Azure service endpoints, while mainland-China reachability, regional restrictions, and alternatives are undocumented.
See the full review method →

What does this skill do, and when should you use it?

This skill is for Java developers using Azure Communication Services shared utilities. It covers static user tokens, proactive and asynchronous token refresh, and Entra ID authentication. It also explains how to create, parse, inspect, and use ACS user, phone number, Teams, and unknown identifiers. Adopt it when an agent needs focused guidance for authentication foundations used by ACS Chat, Calling, or related clients; it is not a complete guide to those service APIs.

Shows how to add the Maven package, construct CommunicationTokenCredential, configure static or proactively refreshed tokens, set up Entra ID credentials and scopes, and connect credentials to an ACS client. It provides Java examples for creating and parsing communication identifiers, checking their concrete types, reading token expiry, accessing tokens synchronously or asynchronously, closing credentials, selecting cloud environments, and applying token-security practices.

  1. A Java developer is building an ACS Chat or Calling client and needs to attach a user access token as a credential.
  2. A team is running a long-lived ACS client that must refresh tokens before expiration through a callback.
  3. An application must distinguish ACS users, PSTN phone numbers, Teams users, and unknown communication identifiers.
  4. A Java developer is configuring Entra ID authentication for Teams Phone Extensibility with a resource endpoint and scopes.

What are this skill's strengths and limitations?

Pros
  • Covers the main shared ACS authentication and identifier types for Java.
  • Includes static tokens, proactive refresh, asynchronous access, and Entra ID examples.
  • Includes concrete guidance on token security, credential disposal, and identifier specificity.
Limitations
  • It focuses on shared authentication and identifiers rather than complete Chat, Calling, or SMS APIs.
  • Application-specific pieces such as the token service, client objects, and `fetchNewTokenFromServer()` must be implemented separately.
  • The supplied material provides no independent test results or platform-specific validation for this individual skill.

How do you install this skill?

Run npx skills add microsoft/skills and select this skill in the wizard. Alternatively, clone the repository and copy .github/plugins/azure-sdk-java/skills/azure-communication-common-java/ into the selected agent's skill directory; the README does not specify the final per-agent path for this individual skill. The documented Maven dependency is com.azure:azure-communication-common:1.4.0.

How do you use this skill?

Use a prompt such as: Configure CommunicationTokenCredential for a Java Azure Communication Services Chat client with proactive token refresh. The agent can then follow the skill's examples for credentials, refresh callbacks, identifier parsing, token access, and cleanup.

FAQ

Does this skill cover all Azure Communication Services features?
No. It focuses on shared authentication utilities, token refresh, and communication identifiers. Complete Chat, Calling, or SMS APIs require separate guidance.
What should long-lived clients use for token handling?
Use `CommunicationTokenRefreshOptions`, set `setRefreshProactively(true)`, and provide a token refresh callback.
Does using this skill require network access?
Real use generally requires an ACS resource endpoint and may require a server call to obtain refreshed tokens; both are shown in the examples.
Should full access tokens be logged?
No. The skill explicitly recommends never logging or exposing full tokens.

More skills from this repository

All from microsoft/agent-skills

Dev & Engineering ✓ Microsoft · Official

Azure CallingServer Java Legacy Maintainer

Maintain legacy CallingServer Java code and migrate it toward Azure Communication Services Call Automation.

Dev & Engineering ✓ Microsoft · Official

Azure Batch Java Job Orchestration

Run and manage large-scale parallel and HPC workloads on Azure from Java.

Dev & Engineering ✓ Microsoft · Official

Azure Communication Chat for Java

A practical Java SDK guide for building Azure real-time chat threads, messaging, and participant workflows.

Dev & Engineering ✓ Microsoft · Official

Azure Call Automation for Java

Build Java workflows for IVR, call routing, recording, and voice-driven interactions.

Dev & Engineering ✓ Microsoft · Official

Azure Identity for TypeScript

Configure secure, flexible Microsoft Entra ID authentication for TypeScript Azure applications.

Dev & Engineering ✓ Microsoft · Official

Azure Blob Storage for Python

Guides secure, production-minded Blob Storage operations in Python.

Dev & Engineering ✓ Microsoft · Official

Azure Key Vault SDK for Python

Gives Python coding agents practical guidance for securely managing Azure Key Vault secrets, keys, and certificates.

Dev & Engineering ✓ Microsoft · Official

Azure AI Content Safety for Python

Guides Python applications in detecting harmful text and images and enforcing custom blocklists.

Dev & Engineering ✓ Microsoft · Official

Azure App Configuration for Python

Centralize Python application settings, feature flags, and dynamic configuration in Azure.

Dev & Engineering ✓ Microsoft · Official

Azure Container Registry for Python

Manage Azure container images, artifacts, and repositories from Python.

Dev & Engineering ✓ Microsoft · Official

Azure File Share for Python

Guides Python developers through secure Azure SMB share, directory, and file management.

Dev & Engineering ✓ Microsoft · Official

Azure SMS for Java

Send Azure Communication Services SMS from Java with per-recipient results and delivery tracking.

Dev & Engineering ✓ Microsoft · Official

Azure Blob Storage for Java

A practical Java playbook for building file and streaming workflows on Azure Blob Storage.

Dev & Engineering ✓ Microsoft · Official

Azure Identity for Rust

Configure Microsoft Entra ID authentication for Azure SDK clients written in Rust.

Dev & Engineering ✓ Microsoft · Official

Azure App Configuration for Java

Guides Java apps in centralizing settings, feature flags, and release snapshots.

Dev & Engineering ✓ Microsoft · Official

Entra Authentication Events for .NET

Customize Entra ID authentication flows with Azure Functions.

Dev & Engineering ✓ Microsoft · Official

Azure Event Hubs Java Skill

Build production-oriented Java event streaming applications on Azure Event Hubs.

Dev & Engineering ✓ Microsoft · Official

Azure Key Vault Certificates for Rust

Guides Rust applications in creating, managing, and using X.509 certificates in Azure Key Vault.

Dev & Engineering ✓ Microsoft · Official

Azure Playwright Cloud Testing

Scale TypeScript Playwright tests on Azure-hosted browsers and publish results.

Dev & Engineering ✓ Microsoft · Official

Azure Monitor Query for Java

Query Azure Monitor logs and resource metrics from Java applications.

Related skills