Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

entra-agent-user

Microsoft Entra ID においてエージェント ID からエージェントユーザーを作成し、AIエージェントが Microsoft 365 および Azure 環境でユーザー ID 機能を持つデジタルワーカーとして動作できるようにします。

description の原文を見る

Create Agent Users in Microsoft Entra ID from Agent Identities, enabling AI agents to act as digital workers with user identity capabilities in Microsoft 365 and Azure environments.

SKILL.md 本文

SKILL: Creating Agent Users in Microsoft Entra Agent ID

Overview

エージェントユーザーは、AI エージェントがデジタルワーカーとして機能することを可能にする Microsoft Entra ID の特殊なユーザーアイデンティティです。エージェントがユーザーアイデンティティを厳密に要求する API やサービス (Exchange メールボックス、Teams、組織図など) にアクセスできるようにしながら、適切なセキュリティ境界を維持します。

エージェントユーザーは idtyp=user を含むトークンを受け取ります。一方、通常のエージェントアイデンティティは idtyp=app を受け取ります。


Prerequisites

  • Agent ID 機能を備えた Microsoft Entra テナント
  • エージェントアイデンティティブループリントから作成された エージェントアイデンティティ (タイプ ServiceIdentity のサービスプリンシパル)
  • 次のいずれかの 権限:
    • AgentIdUser.ReadWrite.IdentityParentedBy (最小権限)
    • AgentIdUser.ReadWrite.All
    • User.ReadWrite.All
  • 呼び出し元は最小限、Agent ID Administrator ロール (委任シナリオの場合) を持っている必要があります

重要: identityParentId は、通常のアプリケーションサービスプリンシパルではなく、真のエージェントアイデンティティ (エージェントアイデンティティブループリント経由で作成) を参照する必要があります。サービスプリンシパルに @odata.type: #microsoft.graph.agentIdentityservicePrincipalType: ServiceIdentity があるかを確認して検証できます。


Architecture

Agent Identity Blueprint (application template)
    │
    ├── Agent Identity (service principal - ServiceIdentity)
    │       │
    │       └── Agent User (user - agentUser) ← 1:1 relationship
    │
    └── Agent Identity Blueprint Principal (service principal in tenant)
ComponentTypeToken ClaimPurpose
Agent IdentityService Principalidtyp=appバックエンド/API 操作
Agent UserUser (agentUser)idtyp=userM365 におけるデジタルワーカーとしての動作

Step 1: Verify the Agent Identity Exists

エージェントユーザーを作成する前に、エージェントアイデンティティが適切な agentIdentity タイプであることを確認します:

GET https://graph.microsoft.com/beta/servicePrincipals/{agent-identity-id}
Authorization: Bearer <token>

レスポンスに以下の内容が含まれていることを確認します:

{
  "@odata.type": "#microsoft.graph.agentIdentity",
  "servicePrincipalType": "ServiceIdentity",
  "agentIdentityBlueprintId": "<blueprint-id>"
}

PowerShell

Connect-MgGraph -Scopes "Application.Read.All" -TenantId "<tenant>" -UseDeviceCode -NoWelcome
Invoke-MgGraphRequest -Method GET `
  -Uri "https://graph.microsoft.com/beta/servicePrincipals/<agent-identity-id>" | ConvertTo-Json -Depth 3

よくある間違い: アプリ登録の appId または通常のアプリケーションサービスプリンシパルの id を使用すると失敗します。ブループリントから作成されたエージェントアイデンティティのみが機能します。


Step 2: Create the Agent User

HTTP Request

POST https://graph.microsoft.com/beta/users/microsoft.graph.agentUser
Content-Type: application/json
Authorization: Bearer <token>

{
  "accountEnabled": true,
  "displayName": "My Agent User",
  "mailNickname": "my-agent-user",
  "userPrincipalName": "my-agent-user@yourtenant.onmicrosoft.com",
  "identityParentId": "<agent-identity-object-id>"
}

Required Properties

PropertyTypeDescription
accountEnabledBooleanアカウントを有効にするには true
displayNameStringユーザーフレンドリーな名前
mailNicknameStringメールエイリアス (スペースや特殊文字なし)
userPrincipalNameStringUPN — テナント内で一意である必要があります (alias@verified-domain)
identityParentIdString親エージェントアイデンティティのオブジェクト ID

PowerShell

Connect-MgGraph -Scopes "User.ReadWrite.All" -TenantId "<tenant>" -UseDeviceCode -NoWelcome

$body = @{
  accountEnabled    = $true
  displayName       = "My Agent User"
  mailNickname      = "my-agent-user"
  userPrincipalName = "my-agent-user@yourtenant.onmicrosoft.com"
  identityParentId  = "<agent-identity-object-id>"
} | ConvertTo-Json

Invoke-MgGraphRequest -Method POST `
  -Uri "https://graph.microsoft.com/beta/users/microsoft.graph.agentUser" `
  -Body $body -ContentType "application/json" | ConvertTo-Json -Depth 3

Key Notes

  • パスワードなし — エージェントユーザーはパスワードを持つことはできません。親エージェントアイデンティティの認証情報を使用して認証します。
  • 1:1 の関係 — 各エージェントアイデンティティは最大 1 つのエージェントユーザーを持つことができます。2 番目の作成を試みると 400 Bad Request が返されます。
  • userPrincipalName は一意である必要があります。既存のユーザーの UPN を再利用しないでください。

Step 3: Assign a Manager (Optional)

マネージャーを割り当てることで、エージェントユーザーが組織図 (Teams など) に表示されるようにできます。

PUT https://graph.microsoft.com/beta/users/{agent-user-id}/manager/$ref
Content-Type: application/json
Authorization: Bearer <token>

{
  "@odata.id": "https://graph.microsoft.com/beta/users/{manager-user-id}"
}

PowerShell

$managerBody = '{"@odata.id":"https://graph.microsoft.com/beta/users/<manager-user-id>"}'
Invoke-MgGraphRequest -Method PUT `
  -Uri "https://graph.microsoft.com/beta/users/<agent-user-id>/manager/`$ref" `
  -Body $managerBody -ContentType "application/json"

Step 4: Set Usage Location and Assign Licenses (Optional)

エージェントユーザーがメールボックス、Teams プレゼンスなどを持つには、ライセンスが必要です。使用場所を最初に設定する必要があります。

Set Usage Location

PATCH https://graph.microsoft.com/beta/users/{agent-user-id}
Content-Type: application/json
Authorization: Bearer <token>

{
  "usageLocation": "US"
}

List Available Licenses

GET https://graph.microsoft.com/beta/subscribedSkus?$select=skuPartNumber,skuId,consumedUnits,prepaidUnits
Authorization: Bearer <token>

Organization.Read.All 権限が必要です。

Assign a License

POST https://graph.microsoft.com/beta/users/{agent-user-id}/assignLicense
Content-Type: application/json
Authorization: Bearer <token>

{
  "addLicenses": [
    { "skuId": "<sku-id>" }
  ],
  "removeLicenses": []
}

PowerShell (all in one)

Connect-MgGraph -Scopes "User.ReadWrite.All","Organization.Read.All" -TenantId "<tenant>" -NoWelcome

# Set usage location
Invoke-MgGraphRequest -Method PATCH `
  -Uri "https://graph.microsoft.com/beta/users/<agent-user-id>" `
  -Body '{"usageLocation":"US"}' -ContentType "application/json"

# Assign license
$licenseBody = '{"addLicenses":[{"skuId":"<sku-id>"}],"removeLicenses":[]}'
Invoke-MgGraphRequest -Method POST `
  -Uri "https://graph.microsoft.com/beta/users/<agent-user-id>/assignLicense" `
  -Body $licenseBody -ContentType "application/json"

Tip: Entra 管理者センター から Identity → Users → All users → エージェントユーザーを選択 → Licenses and apps でライセンスを割り当てることもできます。


Provisioning Times

ServiceEstimated Time
Exchange mailbox5–30 分
Teams availability15 分 – 24 時間
Org chart / People search24–48 時間以内
SharePoint / OneDrive5–30 分
Global Address List24 時間以内

Agent User Capabilities

  • ✅ Microsoft Entra グループに追加 (動的グループを含む)
  • ✅ ユーザー専用 API にアクセス (idtyp=user トークン)
  • ✅ メールボックス、カレンダー、連絡先を所有
  • ✅ Teams チャットおよびチャネルに参加
  • ✅ 組織図および People 検索に表示
  • ✅ 管理単位に追加
  • ✅ ライセンス割り当て

Agent User Security Constraints

  • ❌ パスワード、パスキー、またはインタラクティブサインインを持つことはできません
  • ❌ 特権管理者ロールを割り当てることはできません
  • ❌ ロール割り当て可能なグループに追加することはできません
  • ❌ デフォルトではゲストユーザーと同様の権限
  • ❌ カスタムロール割り当ては利用できません

Troubleshooting

ErrorCauseFix
Agent user IdentityParent does not existidentityParentId が存在しないまたは非エージェントアイデンティティオブジェクトを指していますID が通常のアプリではなく agentIdentity サービスプリンシパルであることを確認します
400 Bad Request (identityParentId already linked)エージェントアイデンティティがすでにエージェントユーザーを持っています各エージェントアイデンティティは 1 つのエージェントユーザーのみをサポートします
409 Conflict on UPNuserPrincipalName がすでに使用されています一意の UPN を使用してください
License assignment fails使用場所が設定されていませんライセンスを割り当てる前に usageLocation を設定します

References

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
github
リポジトリ
github/awesome-copilot
ライセンス
MIT
最終更新
不明

Source: https://github.com/github/awesome-copilot / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: github · github/awesome-copilot · ライセンス: MIT