[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FVZKQAR50MZYPFD072E5E5":3,"skill-same:01M6FVZKQAR50MZYPFD072E5E5":48},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":24,"frontMatter":25,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":13,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6FVZKQAR50MZYPFD072E5E5","azure-identity-py",null,"reikiplanet\u002Fdaoskills","reikiplanet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96377599?v=4","01M6CVWCMD740YHQDK7E9QYBW4","Reiki Planet","01M6CVWCS4KXVA2CWFVJ43EAXK",0,"MIT","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevops\u002Fazure-identity-py\u002FSKILL.md",[],[18,19,20],"identity","azure","azure identity py","2026-11-10 10:12:30",false,"---\nname: azure-identity-py\ndescription: \"|\"\n  Azure Identity SDK for Python authentication. Use for DefaultAzureCredential, managed identity, service principals, and token caching.\n  Triggers: \"azure-identity\", \"DefaultAzureCredential\", \"authentication\", \"managed identity\", \"service principal\", \"credential\".\npackage: azure-identity\nrisk: unknown\nsource: community\n---\n\n# Azure Identity SDK for Python\n\nAuthentication library for Azure SDK clients using Microsoft Entra ID (formerly Azure AD).\n\n## Installation\n\n```bash\npip install azure-identity\n```\n\n## Environment Variables\n\n```bash\n# Service Principal (for production\u002FCI)\nAZURE_TENANT_ID=\u003Cyour-tenant-id>\nAZURE_CLIENT_ID=\u003Cyour-client-id>\nAZURE_CLIENT_SECRET=\u003Cyour-client-secret>\n\n# User-assigned Managed Identity (optional)\nAZURE_CLIENT_ID=\u003Cmanaged-identity-client-id>\n```\n\n## DefaultAzureCredential\n\nThe recommended credential for most scenarios. Tries multiple authentication methods in order:\n\n```python\nfrom azure.identity import DefaultAzureCredential\nfrom azure.storage.blob import BlobServiceClient\n\n# Works in local dev AND production without code changes\ncredential = DefaultAzureCredential()\n\nclient = BlobServiceClient(\n    account_url=\"https:\u002F\u002F\u003Caccount>.blob.core.windows.net\",\n    credential=credential\n)\n```\n\n### Credential Chain Order\n\n| Order | Credential | Environment |\n|-------|-----------|-------------|\n| 1 | EnvironmentCredential | CI\u002FCD, containers |\n| 2 | WorkloadIdentityCredential | Kubernetes |\n| 3 | ManagedIdentityCredential | Azure VMs, App Service, Functions |\n| 4 | SharedTokenCacheCredential | Windows only |\n| 5 | VisualStudioCodeCredential | VS Code with Azure extension |\n| 6 | AzureCliCredential | `az login` |\n| 7 | AzurePowerShellCredential | `Connect-AzAccount` |\n| 8 | AzureDeveloperCliCredential | `azd auth login` |\n\n### Customizing DefaultAzureCredential\n\n```python\n# Exclude credentials you don't need\ncredential = DefaultAzureCredential(\n    exclude_environment_credential=True,\n    exclude_shared_token_cache_credential=True,\n    managed_identity_client_id=\"\u003Cuser-assigned-mi-client-id>\"  # For user-assigned MI\n)\n\n# Enable interactive browser (disabled by default)\ncredential = DefaultAzureCredential(\n    exclude_interactive_browser_credential=False\n)\n```\n\n## Specific Credential Types\n\n### ManagedIdentityCredential\n\nFor Azure-hosted resources (VMs, App Service, Functions, AKS):\n\n```python\nfrom azure.identity import ManagedIdentityCredential\n\n# System-assigned managed identity\ncredential = ManagedIdentityCredential()\n\n# User-assigned managed identity\ncredential = ManagedIdentityCredential(\n    client_id=\"\u003Cuser-assigned-mi-client-id>\"\n)\n```\n\n### ClientSecretCredential\n\nFor service principal with secret:\n\n```python\nfrom azure.identity import ClientSecretCredential\n\ncredential = ClientSecretCredential(\n    tenant_id=os.environ[\"AZURE_TENANT_ID\"],\n    client_id=os.environ[\"AZURE_CLIENT_ID\"],\n    client_secret=os.environ[\"AZURE_CLIENT_SECRET\"]\n)\n```\n\n### AzureCliCredential\n\nUses the account from `az login`:\n\n```python\nfrom azure.identity import AzureCliCredential\n\ncredential = AzureCliCredential()\n```\n\n### ChainedTokenCredential\n\nCustom credential chain:\n\n```python\nfrom azure.identity import (\n    ChainedTokenCredential,\n    ManagedIdentityCredential,\n    AzureCliCredential\n)\n\n# Try managed identity first, fall back to CLI\ncredential = ChainedTokenCredential(\n    ManagedIdentityCredential(client_id=\"\u003Cuser-assigned-mi-client-id>\"),\n    AzureCliCredential()\n)\n```\n\n## Credential Types Table\n\n| Credential | Use Case | Auth Method |\n|------------|----------|-------------|\n| `DefaultAzureCredential` | Most scenarios | Auto-detect |\n| `ManagedIdentityCredential` | Azure-hosted apps | Managed Identity |\n| `ClientSecretCredential` | Service principal | Client secret |\n| `ClientCertificateCredential` | Service principal | Certificate |\n| `AzureCliCredential` | Local development | Azure CLI |\n| `AzureDeveloperCliCredential` | Local development | Azure Developer CLI |\n| `InteractiveBrowserCredential` | User sign-in | Browser OAuth |\n| `DeviceCodeCredential` | Headless\u002FSSH | Device code flow |\n\n## Getting Tokens Directly\n\n```python\nfrom azure.identity import DefaultAzureCredential\n\ncredential = DefaultAzureCredential()\n\n# Get token for a specific scope\ntoken = credential.get_token(\"https:\u002F\u002Fmanagement.azure.com\u002F.default\")\nprint(f\"Token expires: {token.expires_on}\")\n\n# For Azure Database for PostgreSQL\ntoken = credential.get_token(\"https:\u002F\u002Fossrdbms-aad.database.windows.net\u002F.default\")\n```\n\n## Async Client\n\n```python\nfrom azure.identity.aio import DefaultAzureCredential\nfrom azure.storage.blob.aio import BlobServiceClient\n\nasync def main():\n    credential = DefaultAzureCredential()\n    \n    async with BlobServiceClient(\n        account_url=\"https:\u002F\u002F\u003Caccount>.blob.core.windows.net\",\n        credential=credential\n    ) as client:\n        # ... async operations\n        pass\n    \n    await credential.close()\n```\n\n## Best Practices\n\n1. **Use DefaultAzureCredential** for code that runs locally and in Azure\n2. **Never hardcode credentials** — use environment variables or managed identity\n3. **Prefer managed identity** in production Azure deployments\n4. **Use ChainedTokenCredential** when you need a custom credential order\n5. **Close async credentials** explicitly or use context managers\n6. **Set AZURE_CLIENT_ID** for user-assigned managed identities\n7. **Exclude unused credentials** to speed up authentication\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure Identity SDK for Python\n\nAuthentication library for Azure SDK clients using Microsoft Entra ID (formerly Azure AD).\n\n## Installation\n\n```bash\npip install azure-identity\n```\n\n## Environment Variables\n\n```bash\n# Service Principal (for production\u002FCI)\nAZURE_TENANT_ID=\u003Cyour-tenant-id>\nAZURE_CLIENT_ID=\u003Cyour-client-id>\nAZURE_CLIENT_SECRET=\u003Cyour-client-secret>\n\n# User-assigned Managed Identity (optional)\nAZURE_CLIENT_ID=\u003Cmanaged-identity-client-id>\n```\n\n## DefaultAzureCredential\n\nThe recommended credential for most scenarios. Tries multiple authentication methods in order:\n\n```python\nfrom azure.identity import DefaultAzureCredential\nfrom azure.storage.blob import BlobServiceClient\n\n# Works in local dev AND production without code changes\ncredential = DefaultAzureCredential()\n\nclient = BlobServiceClient(\n    account_url=\"https:\u002F\u002F\u003Caccount>.blob.core.windows.net\",\n    credential=credential\n)\n```\n\n### Credential Chain Order\n\n| Order | Credential | Environment |\n|-------|-----------|-------------|\n| 1 | EnvironmentCredential | CI\u002FCD, containers |\n| 2 | WorkloadIdentityCredential | Kubernetes |\n| 3 | ManagedIdentityCredential | Azure VMs, App Service, Functions |\n| 4 | SharedTokenCacheCredential | Windows only |\n| 5 | VisualStudioCodeCredential | VS Code with Azure extension |\n| 6 | AzureCliCredential | `az login` |\n| 7 | AzurePowerShellCredential | `Connect-AzAccount` |\n| 8 | AzureDeveloperCliCredential | `azd auth login` |\n\n### Customizing DefaultAzureCredential\n\n```python\n# Exclude credentials you don't need\ncredential = DefaultAzureCredential(\n    exclude_environment_credential=True,\n    exclude_shared_token_cache_credential=True,\n    managed_identity_client_id=\"\u003Cuser-assigned-mi-client-id>\"  # For user-assigned MI\n)\n\n# Enable interactive browser (disabled by default)\ncredential = DefaultAzureCredential(\n    exclude_interactive_browser_credential=False\n)\n```\n\n## Specific Credential Types\n\n### ManagedIdentityCredential\n\nFor Azure-hosted resources (VMs, App Service, Functions, AKS):\n\n```python\nfrom azure.identity import ManagedIdentityCredential\n\n# System-assigned managed identity\ncredential = ManagedIdentityCredential()\n\n# User-assigned managed identity\ncredential = ManagedIdentityCredential(\n    client_id=\"\u003Cuser-assigned-mi-client-id>\"\n)\n```\n\n### ClientSecretCredential\n\nFor service principal with secret:\n\n```python\nfrom azure.identity import ClientSecretCredential\n\ncredential = ClientSecretCredential(\n    tenant_id=os.environ[\"AZURE_TENANT_ID\"],\n    client_id=os.environ[\"AZURE_CLIENT_ID\"],\n    client_secret=os.environ[\"AZURE_CLIENT_SECRET\"]\n)\n```\n\n### AzureCliCredential\n\nUses the account from `az login`:\n\n```python\nfrom azure.identity import AzureCliCredential\n\ncredential = AzureCliCredential()\n```\n\n### ChainedTokenCredential\n\nCustom credential chain:\n\n```python\nfrom azure.identity import (\n    ChainedTokenCredential,\n    ManagedIdentityCredential,\n    AzureCliCredential\n)\n\n# Try managed identity first, fall back to CLI\ncredential = ChainedTokenCredential(\n    ManagedIdentityCredential(client_id=\"\u003Cuser-assigned-mi-client-id>\"),\n    AzureCliCredential()\n)\n```\n\n## Credential Types Table\n\n| Credential | Use Case | Auth Method |\n|------------|----------|-------------|\n| `DefaultAzureCredential` | Most scenarios | Auto-detect |\n| `ManagedIdentityCredential` | Azure-hosted apps | Managed Identity |\n| `ClientSecretCredential` | Service principal | Client secret |\n| `ClientCertificateCredential` | Service principal | Certificate |\n| `AzureCliCredential` | Local development | Azure CLI |\n| `AzureDeveloperCliCredential` | Local development | Azure Developer CLI |\n| `InteractiveBrowserCredential` | User sign-in | Browser OAuth |\n| `DeviceCodeCredential` | Headless\u002FSSH | Device code flow |\n\n## Getting Tokens Directly\n\n```python\nfrom azure.identity import DefaultAzureCredential\n\ncredential = DefaultAzureCredential()\n\n# Get token for a specific scope\ntoken = credential.get_token(\"https:\u002F\u002Fmanagement.azure.com\u002F.default\")\nprint(f\"Token expires: {token.expires_on}\")\n\n# For Azure Database for PostgreSQL\ntoken = credential.get_token(\"https:\u002F\u002Fossrdbms-aad.database.windows.net\u002F.default\")\n```\n\n## Async Client\n\n```python\nfrom azure.identity.aio import DefaultAzureCredential\nfrom azure.storage.blob.aio import BlobServiceClient\n\nasync def main():\n    credential = DefaultAzureCredential()\n    \n    async with BlobServiceClient(\n        account_url=\"https:\u002F\u002F\u003Caccount>.blob.core.windows.net\",\n        credential=credential\n    ) as client:\n        # ... async operations\n        pass\n    \n    await credential.close()\n```\n\n## Best Practices\n\n1. **Use DefaultAzureCredential** for code that runs locally and in Azure\n2. **Never hardcode credentials** — use environment variables or managed identity\n3. **Prefer managed identity** in production Azure deployments\n4. **Use ChainedTokenCredential** when you need a custom credential order\n5. **Close async credentials** explicitly or use context managers\n6. **Set AZURE_CLIENT_ID** for user-assigned managed identities\n7. **Exclude unused credentials** to speed up authentication\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{},"master","dff58085da947e81e8418c922055644bf0082b1b","devops\u002Fazure-identity-py","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills","https:\u002F\u002Fgithub.com\u002Freikiplanet","https:\u002F\u002Fwww.reiki-planet.com","Reiki Planet Game","2026-03-29 06:02:29",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add reikiplanet\u002Fdaoskills --skill azure-identity-py",{"tool":40,"command":41},"bunx","bunx skills add reikiplanet\u002Fdaoskills --skill azure-identity-py",{"tool":43,"command":44},"pnpm","pnpm dlx skills add reikiplanet\u002Fdaoskills --skill azure-identity-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fdevops\u002Fazure-identity-py\u002FSKILL.md",true,[],[49,76,88,103,123,146],{"skillNo":50,"name":51,"nameZh":6,"description":52,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":21},"01M6G614JTEQJHPT8AKK3YQ18S","web-games","Web browser game development principles. Framework selection, WebGPU, optimization, PWA.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fweb-games\u002FSKILL.md",[],[56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75],"games","web games","web","grep","principles","selection","community","framework selection","edit","write","read","pwa","game","web browser","game development","Optimization","framework","browser","development","webgpu",{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":21},"01M6G611H2YGV0GZFP90D38ZMJ","vr-ar","VR\u002FAR development principles. Comfort, interaction, performance requirements.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fvr-ar\u002FSKILL.md",[],[83,84,74,85,86,62,64,65,66,59,87,60],"ar","vr ar","interaction","requirements","performance",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":21},"01M6G60XNMHAMV1SV0EJ1CX0AY","templates","Project scaffolding templates for new applications. Use when creating new projects from scratch. Contains 12 templates for various tech stacks.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Ftemplates\u002FSKILL.md",[],[90,95,96,97,98,99,62,100,66,101,102,59],"project scaffolding","From Scratch","tech","project","scaffolding","use","projects","applications",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":21},"01M6G60T0GATMK3Q5H8GDC1Z8S","wcag-audit-patterns","Conduct WCAG 2.2 accessibility audits with automated testing, manual verification, and remediation guidance. Use when auditing websites for accessibility, fixing WCAG violations, or implementing ac...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fwcag-audit-patterns\u002FSKILL.md",[],[110,111,112,113,114,62,115,116,117,118,100,119,120,121,122],"wcag audit patterns","wcag audit","patterns","WCAG","audit","manual","with","automated testing","guidance","remediation","verification","accessibility","testing",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":21},"01M6G60PMCHW1FRZ63F931QK3R","vulnerability-scanner","Advanced vulnerability analysis principles. OWASP 2025, Supply Chain Security, attack surface mapping, risk prioritization.","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fvulnerability-scanner\u002FSKILL.md",[],[130,131,132,133,134,135,136,137,62,66,59,138,60,139,140,141,142,143,144,145],"scanner","vulnerability scanner","vulnerability","prioritization","2025","mapping","chain","supply chain","Bash","analysis","risk","owasp","supply chain security","security","supply","advanced",{"skillNo":147,"name":148,"nameZh":6,"description":149,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":150,"categories":151,"keywords":152,"publishedAt":21},"01M6G60JZBB8DK0W3DSG1WNMZK","threat-modeling-expert","Expert in threat modeling methodologies, security architecture review, and risk assessment. Masters STRIDE, PASTA, attack trees, and security requirement extraction. Use for security architecture r...","https:\u002F\u002Fgithub.com\u002Freikiplanet\u002Fdaoskills\u002Fblob\u002Fmaster\u002Fskills\u002Fsecurity\u002Fthreat-modeling-expert\u002FSKILL.md",[],[153,154,155,156,157,158,159,160,143,100,161,162,163,62,164,165,166,140,167,168],"modeling","threat modeling expert","threat modeling","expert","threat","risk assessment","architecture review","architecture","security architecture review","trees","security architecture","security requirement extraction","assessment","extraction","review","stride"]