[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JMJSXQYTYF6CPDDWQRJZ79":3,"skill-same:01M6JMJSXQYTYF6CPDDWQRJZ79":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6JMJSXQYTYF6CPDDWQRJZ79","azure_identity_dotnet",null,"Azure Identity library for .NET. Authentication library for Azure SDK clients using Microsoft Entra ID. Use for DefaultAzureCredential, managed identity, service principals, and developer credentials. Triggers: \"Azure Identity\", \"DefaultAzureCredential\", \"ManagedIdentityCredential\", \"ClientSecretCredential\", \"authentication .NET\", \"Azure auth\", \"credential chain\".","LongLeo287\u002FOmniClaw","LongLeo287","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F141803367?v=4","01M6JK75C62VCNZKR5BRZ386YV","LongLeo","01M6JK75GQ78TSP1ZPXNKK3MCH",9,"MIT","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_identity_dotnet\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"dotnet","identity","azure","azure identity dotnet","developer","for","azure auth","clients","chain","id","triggers","use","azure sdk","credentials","sdk","library","authentication","entra id","auth","microsoft","2026-11-10 10:12:30",false,"---\nname: azure_identity_dotnet\n\ndescription: |\n  Azure Identity library for .NET. Authentication library for Azure SDK clients using Microsoft Entra ID. Use for DefaultAzureCredential, managed identity, service principals, and developer credentials. Triggers: \"Azure Identity\", \"DefaultAzureCredential\", \"ManagedIdentityCredential\", \"ClientSecretCredential\", \"authentication .NET\", \"Azure auth\", \"credential chain\".\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n  package: Azure.Identity\n---\n\n# Azure Identity library for .NET\n\nAuthentication library for Azure SDK clients using Microsoft Entra ID.\n\n## Installation\n\n```bash\ndotnet add package Azure.Identity\n\n# For ASP.NET Core integration\ndotnet add package Microsoft.Extensions.Azure\n\n# For brokered authentication and Visual Studio Code credential support\ndotnet add package Azure.Identity.Broker\n```\n\n## Environment Variables\n\n### Service Principal with Secret\n\n```bash\nAZURE_CLIENT_ID=\u003Capplication-client-id>\nAZURE_TENANT_ID=\u003Cdirectory-tenant-id>\nAZURE_CLIENT_SECRET=\u003Cclient-secret-value>\n```\n\n### Service Principal with Certificate\n\n```bash\nAZURE_CLIENT_ID=\u003Capplication-client-id>\nAZURE_TENANT_ID=\u003Cdirectory-tenant-id>\nAZURE_CLIENT_CERTIFICATE_PATH=\u003Cpath-to-pfx-or-pem>\nAZURE_CLIENT_CERTIFICATE_PASSWORD=\u003Ccertificate-password>  # Optional\n```\n\n### Managed Identity\n\n```bash\nAZURE_CLIENT_ID=\u003Cuser-assigned-managed-identity-client-id>  # Only for user-assigned\n```\n\n## DefaultAzureCredential\n\nThe recommended credential for most scenarios. Tries multiple authentication methods in order. See [DefaultAzureCredential overview](https:\u002F\u002Faka.ms\u002Fazsdk\u002Fnet\u002Fidentity\u002Fcredential-chains#defaultazurecredential-overview) for the current credential chain order and defaults.\n\n### Basic Usage\n\n```csharp\nusing Azure.Identity;\nusing Azure.Storage.Blobs;\n\nvar credential = new DefaultAzureCredential();\nvar blobClient = new BlobServiceClient(\n    new Uri(\"https:\u002F\u002Fmyaccount.blob.core.windows.net\"),\n    credential);\n```\n\n### ASP.NET Core with Dependency Injection\n\n```csharp\nusing Azure.Identity;\nusing Microsoft.Extensions.Azure;\n\nbuilder.Services.AddAzureClients(clientBuilder =>\n{\n    clientBuilder.AddBlobServiceClient(\n        new Uri(\"https:\u002F\u002Fmyaccount.blob.core.windows.net\"));\n    clientBuilder.AddSecretClient(\n        new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"));\n    \n    \u002F\u002F Uses DefaultAzureCredential by default\n    clientBuilder.UseCredential(new DefaultAzureCredential());\n});\n```\n\n### Customizing DefaultAzureCredential\n\n```csharp\nvar credential = new DefaultAzureCredential(\n    new DefaultAzureCredentialOptions\n    {\n        ExcludeEnvironmentCredential = true,\n        ExcludeManagedIdentityCredential = false,\n        ExcludeVisualStudioCredential = false,\n        ExcludeAzureCliCredential = false,\n        ExcludeInteractiveBrowserCredential = false, \u002F\u002F Enable interactive\n        TenantId = \"\u003Ctenant-id>\",\n        ManagedIdentityClientId = \"\u003Cuser-assigned-mi-client-id>\"\n    });\n```\n\n## Credential Types\n\n### ManagedIdentityCredential (Production)\n\n```csharp\n\u002F\u002F System-assigned managed identity\nvar credential = new ManagedIdentityCredential(ManagedIdentityId.SystemAssigned);\n\n\u002F\u002F User-assigned by client ID\nvar credential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedClientId(\"\u003Cclient-id>\"));\n\n\u002F\u002F User-assigned by resource ID\nvar credential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedResourceId(\"\u003Cresource-id>\"));\n\n\u002F\u002F User-assigned by object ID\nvar credential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedObjectId(\"\u003Cobject-id>\"));\n```\n\n### ClientSecretCredential\n\n```csharp\nvar credential = new ClientSecretCredential(\n    tenantId: \"\u003Ctenant-id>\",\n    clientId: \"\u003Cclient-id>\",\n    clientSecret: \"\u003Cclient-secret>\");\n\nvar client = new SecretClient(\n    new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"),\n    credential);\n```\n\n### ClientCertificateCredential\n\n```csharp\nvar certificate = X509CertificateLoader.LoadCertificateFromFile(\"MyCertificate.pfx\");\nvar credential = new ClientCertificateCredential(\n    tenantId: \"\u003Ctenant-id>\",\n    clientId: \"\u003Cclient-id>\",\n    certificate);\n```\n\n### ChainedTokenCredential (Custom Chain)\n\n```csharp\nvar credential = new ChainedTokenCredential(\n    new ManagedIdentityCredential(),\n    new AzureCliCredential());\n\nvar client = new SecretClient(\n    new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"),\n    credential);\n```\n\n### Developer Credentials\n\n```csharp\n\u002F\u002F Azure CLI\nvar credential = new AzureCliCredential();\n\n\u002F\u002F Azure PowerShell\nvar credential = new AzurePowerShellCredential();\n\n\u002F\u002F Azure Developer CLI (azd)\nvar credential = new AzureDeveloperCliCredential();\n\n\u002F\u002F Visual Studio\nvar credential = new VisualStudioCredential();\n\n\u002F\u002F Interactive Browser\nvar credential = new InteractiveBrowserCredential();\n```\n\n## Environment-Based Configuration\n\n```csharp\n\u002F\u002F Production vs Development\nTokenCredential credential = builder.Environment.IsProduction()\n    ? new ManagedIdentityCredential(\"\u003Cclient-id>\")\n    : new DefaultAzureCredential();\n```\n\n## Sovereign Clouds\n\n```csharp\nvar credential = new DefaultAzureCredential(\n    new DefaultAzureCredentialOptions\n    {\n        AuthorityHost = AzureAuthorityHosts.AzureGovernment\n    });\n\n\u002F\u002F Available authority hosts:\n\u002F\u002F AzureAuthorityHosts.AzurePublicCloud (default)\n\u002F\u002F AzureAuthorityHosts.AzureGovernment\n\u002F\u002F AzureAuthorityHosts.AzureChina\n```\n\n## Credential Types Reference\n\n| Category | Credential | Purpose |\n|----------|------------|---------|\n| **Chains** | `DefaultAzureCredential` | Preconfigured chain for dev-to-prod |\n| | `ChainedTokenCredential` | Custom credential chain |\n| **Azure-Hosted** | `ManagedIdentityCredential` | Azure managed identity |\n| | `WorkloadIdentityCredential` | Kubernetes workload identity |\n| | `EnvironmentCredential` | Environment variables |\n| **Service Principal** | `ClientSecretCredential` | Client ID + secret |\n| | `ClientCertificateCredential` | Client ID + certificate |\n| | `ClientAssertionCredential` | Signed client assertion |\n| **User** | `InteractiveBrowserCredential` | Browser-based auth |\n| | `DeviceCodeCredential` | Device code flow |\n| | `OnBehalfOfCredential` | Delegated identity |\n| **Developer** | `AzureCliCredential` | Azure CLI |\n| | `AzurePowerShellCredential` | Azure PowerShell |\n| | `AzureDeveloperCliCredential` | Azure Developer CLI |\n| | `VisualStudioCredential` | Visual Studio |\n\n## Best Practices\n\n### 1. Use Deterministic Credentials in Production\n\n```csharp\n\u002F\u002F Development\nvar devCredential = new DefaultAzureCredential();\n\n\u002F\u002F Production - use specific credential\nvar prodCredential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedClientId(\"\u003Cclient-id>\"));\n```\n\n### 2. Reuse Credential Instances\n\n```csharp\n\u002F\u002F Good: Single credential instance shared across clients\nvar credential = new DefaultAzureCredential();\nvar blobClient = new BlobServiceClient(blobUri, credential);\nvar secretClient = new SecretClient(vaultUri, credential);\n```\n\n### 3. Configure Retry Policies\n\n```csharp\nvar options = new ManagedIdentityCredentialOptions(\n    ManagedIdentityId.FromUserAssignedClientId(clientId))\n{\n    Retry =\n    {\n        MaxRetries = 3,\n        Delay = TimeSpan.FromSeconds(0.5),\n    }\n};\nvar credential = new ManagedIdentityCredential(options);\n```\n\n### 4. Enable Logging for Debugging\n\n```csharp\nusing Azure.Core.Diagnostics;\n\nusing AzureEventSourceListener listener = new((args, message) =>\n{\n    if (args is { EventSource.Name: \"Azure-Identity\" })\n    {\n        Console.WriteLine(message);\n    }\n}, EventLevel.LogAlways);\n```\n\n## Error Handling\n\n```csharp\nusing Azure.Identity;\nusing Azure.Security.KeyVault.Secrets;\n\nvar client = new SecretClient(\n    new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"),\n    new DefaultAzureCredential());\n\ntry\n{\n    KeyVaultSecret secret = await client.GetSecretAsync(\"secret1\");\n}\ncatch (AuthenticationFailedException e)\n{\n    Console.WriteLine($\"Authentication Failed: {e.Message}\");\n}\ncatch (CredentialUnavailableException e)\n{\n    Console.WriteLine($\"Credential Unavailable: {e.Message}\");\n}\n```\n\n## Key Exceptions\n\n| Exception | Description |\n|-----------|-------------|\n| `AuthenticationFailedException` | Base exception for authentication errors |\n| `CredentialUnavailableException` | Credential cannot authenticate in current environment |\n| `AuthenticationRequiredException` | Interactive authentication is required |\n\n## Managed Identity Support\n\nSupported Azure services:\n- Azure App Service and Azure Functions\n- Azure Arc\n- Azure Cloud Shell\n- Azure Kubernetes Service (AKS)\n- Azure Service Fabric\n- Azure Virtual Machines\n- Azure Virtual Machine Scale Sets\n\n## Thread Safety\n\nAll credential implementations are thread-safe. A single credential instance can be safely shared across multiple clients and threads.\n\n## Related packages\n\n| Package                      | Purpose                       | Install                                         |\n|------------------------------|-------------------------------|-------------------------------------------------|\n| `Azure.Identity`             | Authentication (this library) | `dotnet add package Azure.Identity`             |\n| `Microsoft.Extensions.Azure` | DI integration                | `dotnet add package Microsoft.Extensions.Azure` |\n| `Azure.Identity.Broker`      | Brokered auth                 | `dotnet add package Azure.Identity.Broker`      |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.Identity |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.identity |\n| Credential Chains | https:\u002F\u002Faka.ms\u002Fazsdk\u002Fnet\u002Fidentity\u002Fcredential-chains |\n| Best Practices | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fazure\u002Fsdk\u002Fauthentication\u002Fbest-practices |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fidentity\u002FAzure.Identity |\n","# Azure Identity library for .NET\n\nAuthentication library for Azure SDK clients using Microsoft Entra ID.\n\n## Installation\n\n```bash\ndotnet add package Azure.Identity\n\n# For ASP.NET Core integration\ndotnet add package Microsoft.Extensions.Azure\n\n# For brokered authentication and Visual Studio Code credential support\ndotnet add package Azure.Identity.Broker\n```\n\n## Environment Variables\n\n### Service Principal with Secret\n\n```bash\nAZURE_CLIENT_ID=\u003Capplication-client-id>\nAZURE_TENANT_ID=\u003Cdirectory-tenant-id>\nAZURE_CLIENT_SECRET=\u003Cclient-secret-value>\n```\n\n### Service Principal with Certificate\n\n```bash\nAZURE_CLIENT_ID=\u003Capplication-client-id>\nAZURE_TENANT_ID=\u003Cdirectory-tenant-id>\nAZURE_CLIENT_CERTIFICATE_PATH=\u003Cpath-to-pfx-or-pem>\nAZURE_CLIENT_CERTIFICATE_PASSWORD=\u003Ccertificate-password>  # Optional\n```\n\n### Managed Identity\n\n```bash\nAZURE_CLIENT_ID=\u003Cuser-assigned-managed-identity-client-id>  # Only for user-assigned\n```\n\n## DefaultAzureCredential\n\nThe recommended credential for most scenarios. Tries multiple authentication methods in order. See [DefaultAzureCredential overview](https:\u002F\u002Faka.ms\u002Fazsdk\u002Fnet\u002Fidentity\u002Fcredential-chains#defaultazurecredential-overview) for the current credential chain order and defaults.\n\n### Basic Usage\n\n```csharp\nusing Azure.Identity;\nusing Azure.Storage.Blobs;\n\nvar credential = new DefaultAzureCredential();\nvar blobClient = new BlobServiceClient(\n    new Uri(\"https:\u002F\u002Fmyaccount.blob.core.windows.net\"),\n    credential);\n```\n\n### ASP.NET Core with Dependency Injection\n\n```csharp\nusing Azure.Identity;\nusing Microsoft.Extensions.Azure;\n\nbuilder.Services.AddAzureClients(clientBuilder =>\n{\n    clientBuilder.AddBlobServiceClient(\n        new Uri(\"https:\u002F\u002Fmyaccount.blob.core.windows.net\"));\n    clientBuilder.AddSecretClient(\n        new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"));\n    \n    \u002F\u002F Uses DefaultAzureCredential by default\n    clientBuilder.UseCredential(new DefaultAzureCredential());\n});\n```\n\n### Customizing DefaultAzureCredential\n\n```csharp\nvar credential = new DefaultAzureCredential(\n    new DefaultAzureCredentialOptions\n    {\n        ExcludeEnvironmentCredential = true,\n        ExcludeManagedIdentityCredential = false,\n        ExcludeVisualStudioCredential = false,\n        ExcludeAzureCliCredential = false,\n        ExcludeInteractiveBrowserCredential = false, \u002F\u002F Enable interactive\n        TenantId = \"\u003Ctenant-id>\",\n        ManagedIdentityClientId = \"\u003Cuser-assigned-mi-client-id>\"\n    });\n```\n\n## Credential Types\n\n### ManagedIdentityCredential (Production)\n\n```csharp\n\u002F\u002F System-assigned managed identity\nvar credential = new ManagedIdentityCredential(ManagedIdentityId.SystemAssigned);\n\n\u002F\u002F User-assigned by client ID\nvar credential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedClientId(\"\u003Cclient-id>\"));\n\n\u002F\u002F User-assigned by resource ID\nvar credential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedResourceId(\"\u003Cresource-id>\"));\n\n\u002F\u002F User-assigned by object ID\nvar credential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedObjectId(\"\u003Cobject-id>\"));\n```\n\n### ClientSecretCredential\n\n```csharp\nvar credential = new ClientSecretCredential(\n    tenantId: \"\u003Ctenant-id>\",\n    clientId: \"\u003Cclient-id>\",\n    clientSecret: \"\u003Cclient-secret>\");\n\nvar client = new SecretClient(\n    new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"),\n    credential);\n```\n\n### ClientCertificateCredential\n\n```csharp\nvar certificate = X509CertificateLoader.LoadCertificateFromFile(\"MyCertificate.pfx\");\nvar credential = new ClientCertificateCredential(\n    tenantId: \"\u003Ctenant-id>\",\n    clientId: \"\u003Cclient-id>\",\n    certificate);\n```\n\n### ChainedTokenCredential (Custom Chain)\n\n```csharp\nvar credential = new ChainedTokenCredential(\n    new ManagedIdentityCredential(),\n    new AzureCliCredential());\n\nvar client = new SecretClient(\n    new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"),\n    credential);\n```\n\n### Developer Credentials\n\n```csharp\n\u002F\u002F Azure CLI\nvar credential = new AzureCliCredential();\n\n\u002F\u002F Azure PowerShell\nvar credential = new AzurePowerShellCredential();\n\n\u002F\u002F Azure Developer CLI (azd)\nvar credential = new AzureDeveloperCliCredential();\n\n\u002F\u002F Visual Studio\nvar credential = new VisualStudioCredential();\n\n\u002F\u002F Interactive Browser\nvar credential = new InteractiveBrowserCredential();\n```\n\n## Environment-Based Configuration\n\n```csharp\n\u002F\u002F Production vs Development\nTokenCredential credential = builder.Environment.IsProduction()\n    ? new ManagedIdentityCredential(\"\u003Cclient-id>\")\n    : new DefaultAzureCredential();\n```\n\n## Sovereign Clouds\n\n```csharp\nvar credential = new DefaultAzureCredential(\n    new DefaultAzureCredentialOptions\n    {\n        AuthorityHost = AzureAuthorityHosts.AzureGovernment\n    });\n\n\u002F\u002F Available authority hosts:\n\u002F\u002F AzureAuthorityHosts.AzurePublicCloud (default)\n\u002F\u002F AzureAuthorityHosts.AzureGovernment\n\u002F\u002F AzureAuthorityHosts.AzureChina\n```\n\n## Credential Types Reference\n\n| Category | Credential | Purpose |\n|----------|------------|---------|\n| **Chains** | `DefaultAzureCredential` | Preconfigured chain for dev-to-prod |\n| | `ChainedTokenCredential` | Custom credential chain |\n| **Azure-Hosted** | `ManagedIdentityCredential` | Azure managed identity |\n| | `WorkloadIdentityCredential` | Kubernetes workload identity |\n| | `EnvironmentCredential` | Environment variables |\n| **Service Principal** | `ClientSecretCredential` | Client ID + secret |\n| | `ClientCertificateCredential` | Client ID + certificate |\n| | `ClientAssertionCredential` | Signed client assertion |\n| **User** | `InteractiveBrowserCredential` | Browser-based auth |\n| | `DeviceCodeCredential` | Device code flow |\n| | `OnBehalfOfCredential` | Delegated identity |\n| **Developer** | `AzureCliCredential` | Azure CLI |\n| | `AzurePowerShellCredential` | Azure PowerShell |\n| | `AzureDeveloperCliCredential` | Azure Developer CLI |\n| | `VisualStudioCredential` | Visual Studio |\n\n## Best Practices\n\n### 1. Use Deterministic Credentials in Production\n\n```csharp\n\u002F\u002F Development\nvar devCredential = new DefaultAzureCredential();\n\n\u002F\u002F Production - use specific credential\nvar prodCredential = new ManagedIdentityCredential(\n    ManagedIdentityId.FromUserAssignedClientId(\"\u003Cclient-id>\"));\n```\n\n### 2. Reuse Credential Instances\n\n```csharp\n\u002F\u002F Good: Single credential instance shared across clients\nvar credential = new DefaultAzureCredential();\nvar blobClient = new BlobServiceClient(blobUri, credential);\nvar secretClient = new SecretClient(vaultUri, credential);\n```\n\n### 3. Configure Retry Policies\n\n```csharp\nvar options = new ManagedIdentityCredentialOptions(\n    ManagedIdentityId.FromUserAssignedClientId(clientId))\n{\n    Retry =\n    {\n        MaxRetries = 3,\n        Delay = TimeSpan.FromSeconds(0.5),\n    }\n};\nvar credential = new ManagedIdentityCredential(options);\n```\n\n### 4. Enable Logging for Debugging\n\n```csharp\nusing Azure.Core.Diagnostics;\n\nusing AzureEventSourceListener listener = new((args, message) =>\n{\n    if (args is { EventSource.Name: \"Azure-Identity\" })\n    {\n        Console.WriteLine(message);\n    }\n}, EventLevel.LogAlways);\n```\n\n## Error Handling\n\n```csharp\nusing Azure.Identity;\nusing Azure.Security.KeyVault.Secrets;\n\nvar client = new SecretClient(\n    new Uri(\"https:\u002F\u002Fmyvault.vault.azure.net\"),\n    new DefaultAzureCredential());\n\ntry\n{\n    KeyVaultSecret secret = await client.GetSecretAsync(\"secret1\");\n}\ncatch (AuthenticationFailedException e)\n{\n    Console.WriteLine($\"Authentication Failed: {e.Message}\");\n}\ncatch (CredentialUnavailableException e)\n{\n    Console.WriteLine($\"Credential Unavailable: {e.Message}\");\n}\n```\n\n## Key Exceptions\n\n| Exception | Description |\n|-----------|-------------|\n| `AuthenticationFailedException` | Base exception for authentication errors |\n| `CredentialUnavailableException` | Credential cannot authenticate in current environment |\n| `AuthenticationRequiredException` | Interactive authentication is required |\n\n## Managed Identity Support\n\nSupported Azure services:\n- Azure App Service and Azure Functions\n- Azure Arc\n- Azure Cloud Shell\n- Azure Kubernetes Service (AKS)\n- Azure Service Fabric\n- Azure Virtual Machines\n- Azure Virtual Machine Scale Sets\n\n## Thread Safety\n\nAll credential implementations are thread-safe. A single credential instance can be safely shared across multiple clients and threads.\n\n## Related packages\n\n| Package                      | Purpose                       | Install                                         |\n|------------------------------|-------------------------------|-------------------------------------------------|\n| `Azure.Identity`             | Authentication (this library) | `dotnet add package Azure.Identity`             |\n| `Microsoft.Extensions.Azure` | DI integration                | `dotnet add package Microsoft.Extensions.Azure` |\n| `Azure.Identity.Broker`      | Brokered auth                 | `dotnet add package Azure.Identity.Broker`      |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.Identity |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.identity |\n| Credential Chains | https:\u002F\u002Faka.ms\u002Fazsdk\u002Fnet\u002Fidentity\u002Fcredential-chains |\n| Best Practices | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fazure\u002Fsdk\u002Fauthentication\u002Fbest-practices |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fidentity\u002FAzure.Identity |\n",{"name":5,"license":15,"metadata":49,"description":53},{"author":50,"package":51,"version":52},"Microsoft","Azure.Identity","1.0.0","Azure Identity library for .NET. Authentication library for Azure SDK clients using Microsoft Entra ID. Use for DefaultAzureCredential, managed identity, service principals, and developer credentials. Triggers: \"Azure Identity\", \"DefaultAzureCredential\", \"ManagedIdentityCredential\", \"ClientSecretCredential\", \"authentication .NET\", \"Azure auth\", \"credential chain\".\n","main","c173cdffe08e788a99b91928a831b476b8434838","ecosystem\u002Fskills\u002Fazure_identity_dotnet",0,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw","https:\u002F\u002Fportfolio-longleo.vercel.app\u002Flabs\u002Fomniclaw.html","https:\u002F\u002Fgithub.com\u002FLongLeo287","https:\u002F\u002Fwww.facebook.com\u002FResourceRookie2023","2026-09-30 00:58:05",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add LongLeo287\u002FOmniClaw --skill azure_identity_dotnet",{"tool":69,"command":70},"bunx","bunx skills add LongLeo287\u002FOmniClaw --skill azure_identity_dotnet",{"tool":72,"command":73},"pnpm","pnpm dlx skills add LongLeo287\u002FOmniClaw --skill azure_identity_dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_identity_dotnet\u002FSKILL.md",true,[77,83,87,91],{"path":78,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":81,"sourceHtmlUrl":82},"_DIR_IDENTITY.md","REFERENCE","参考文档",164,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_identity_dotnet\u002F_DIR_IDENTITY.md",{"path":84,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":85,"sourceHtmlUrl":86},"README.md",477,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_identity_dotnet\u002FREADME.md",{"path":88,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Facceptance_criteria.md",9048,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_identity_dotnet\u002Freferences\u002Facceptance_criteria.md",{"path":92,"resourceType":79,"resourceTypeDesc":80,"sizeBytes":93,"sourceHtmlUrl":94},"schema.json",465,"https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fazure_identity_dotnet\u002Fschema.json",[96,137,158,184,199,226],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":116,"publishedAt":44},"01M6JR0KQP4MHT32TN40D9CBFX","UI-UX Pro Max","Advanced UI\u002FUX analysis and generation skills with data-driven patterns. Python scripts (core.py, search.py) for systematic UI pattern extraction, design system generation, and component search from curated data sources.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fui_components\u002Fui_ux_pro_max\u002FSKILL.md",[102,107,110,113],{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":108,"categoryName":109,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师",{"categoryNo":114,"categoryName":115,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师",[117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136],"ux","ui","ui ux pro max","max","pro","ui ux","design","component","search","analysis","team","rd","ui-ux","active","systematic","scripts","pattern extraction","sources","advanced","data-driven",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":44},"01M6JR0EF5AEQHP2FSTB57H05P","shadcn-ui","Expert guidance for integrating and building applications with shadcn\u002Fui components, including component discovery, installation, customization, and best practices.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fui_components\u002Fshadcn_ui\u002FSKILL.md",[143],{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},[145,118,146,147,124,148,149,150,151,127,152,153,154,130,155,156,157,29],"shadcn","shadcn ui","components","core","best practices","applications","discovery","customization","guidance","expert","installation","ui components","with",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":167,"publishedAt":44},"01M6JR08F51BEN17RHFYX65WVE","zustand_store_ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reactive state patterns with Zustand.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fzustand_store_ts\u002FSKILL.md",[164],{"categoryNo":165,"categoryName":166,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000009","前端开发",[168,169,170,171,43,172,173,174,175,176,177,178,35,179,180,181,157,182,183],"zustand store ts","zustand","store","typescript","react","create","state management","state","react state management","management","global","patterns","separation","middleware","action","implementing",{"skillNo":185,"name":169,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":189,"publishedAt":44},"01M6JR00TDMVAFFCZXZ04AN7Q7","Zustand state management guide. Use when working with store code (src\u002Fstore\u002F**), implementing actions, managing state, or creating slices. Triggers on Zustand store development, state management questions, or action implementation.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fzustand\u002FSKILL.md",[],[169,190,174,191,175,192,193,177,194,35,195,196,34,170,157,197,198,182,183],"development","code","actions","src","guide","implementation","zustand state","questions","zustand state management",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":209,"publishedAt":44},"01M6JQZSWV4KWJP112G6XHEP44","youtube_summarizer","Automatically fetch YouTube video transcripts, generate structured summaries, and send full transcripts to messaging platforms. Detects YouTube URLs and provides metadata, key insights, and downloadable transcripts.","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fyoutube_summarizer\u002FSKILL.md",[205,208],{"categoryNo":206,"categoryName":207,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":108,"categoryName":109,"taxonomyType":105,"taxonomyTypeDesc":106},[210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225],"youtube","youtube summarizer","summarizer","generate","metadata","messaging","Video","fetch","telegram","transcription","summarization","structured","full","insights","transcripts","summaries",{"skillNo":227,"name":228,"nameZh":6,"description":229,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":230,"categories":231,"keywords":232,"publishedAt":44},"01M6JQZN3QJB6B77JGKJD62DQT","youtube_clipper","YouTube 视频智能剪辑工具。下载视频和字幕，AI 分析生成精细章节（几分钟级别）， 用户选择片段后自动剪辑、翻译字幕为中英双语、烧录字幕到视频，并生成总结文案。 使用场景：当用户需要剪辑 YouTube 视频、生成短视频片段、制作双语字幕版本时。 关键词：视频剪辑、YouTube、字幕翻译、双语字幕、视频下载、clip video","https:\u002F\u002Fgithub.com\u002FLongLeo287\u002FOmniClaw\u002Fblob\u002Fmain\u002Fecosystem\u002Fskills\u002Fyoutube_clipper\u002FSKILL.md",[],[210,233,234,216,235,236,237,238,239,240,241,242,243,244,245,246,247],"clipper","youtube clipper","Bash","下载","视频","生成","关键词","翻译","read","write","clip","总结","工具","文案","sonnet"]