From greennode-agentbase
Manages agent identities and outbound authentication providers (API keys, OAuth2) for external services like OpenAI, Google, and Slack on the GreenNode AgentBase platform.
How this skill is triggered — by the user, by Claude, or both
Slash command
/greennode-agentbase:agentbase-identityThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Manage agent identities and outbound authentication providers on the GreenNode AgentBase platform. Parse the user's arguments to determine the part (`identity` or `auth`), the operation, and optional name/ID.
Manage agent identities and outbound authentication providers on the GreenNode AgentBase platform. Parse the user's arguments to determine the part (identity or auth), the operation, and optional name/ID.
Note: Outbound auth manages authentication for external services (API keys, OAuth2). For platform IAM credentials (client_id/client_secret for accessing GreenNode APIs), see
/agentbase-wizardStep 1 or runbash .claude/skills/agentbase/scripts/check_credentials.sh iam.
https://agentbase.api.vngcloud.vn/identity/api/v1Read the shared auth setup reference at /agentbase skill's references/auth-setup.md for full IAM credential configuration. In brief: run bash .claude/skills/agentbase/scripts/check_credentials.sh iam to verify credentials are configured, then use TOKEN=$(bash .claude/skills/agentbase/scripts/get_token.sh) to obtain a token. NEVER read .greennode.json or .env directly — always use the helper scripts. On 401: re-run with --force. If check_credentials.sh iam returns MISSING, STOP — you MUST read the "If Credentials Are Not Found" section in /agentbase skill's references/auth-setup.md and follow it exactly. Do NOT skip this or provide your own credential setup instructions.
IMPORTANT: Before constructing any API URL, read /agentbase skill's references/endpoints.md for the domain validation whitelist. Only use domains listed there.
yes, confirm, ok, approve, proceed, go ahead, do it, ship it, lgtm, or equivalent affirmative. If the user responds with ANYTHING ELSE (parameter changes, questions, corrections, additional info, or ambiguous text), treat it as adjustment input — update the plan and re-present the full summary for confirmation again. NEVER interpret a non-confirmation response as approval. For destructive operations (delete identity, delete provider), additionally warn that the action is irreversible.export MY_KEY=sk-... in their shell first, then use --apikey-env MY_KEY or --client-secret-env MY_SECRET_VAR.secrets/openai.key), then use --apikey-file .secrets/openai.key or --client-secret-file .secrets/oauth.key. Remind them to add the file/directory to .gitignore.--apikey or --client-secret as a fallback.--dry-run or preview, show the exact API request (method, URL, headers, payload) and explain the expected outcome WITHOUT executing. Let user review before proceeding.When an agent is deployed on AgentBase Runtime, the IAM service account and Agent Identity are managed by the runtime system and automatically injected into the container as GREENNODE_CLIENT_ID, GREENNODE_CLIENT_SECRET, and GREENNODE_AGENT_IDENTITY. The SDK automatically uses these — no manual credential configuration needed in agent code. Auth decorators, credential retrieval, and integrations all work automatically.
The IAM credentials and identity/auth management described in this skill are for local development and platform management (creating/listing/updating resources from outside the runtime). See /agentbase-deploy runtime for details on runtime environment management.
Manage agent identities on the GreenNode AgentBase Identity Service. An agent identity is a named registration that represents your agent on the platform and is a prerequisite for retrieving secrets from auth providers.
| Operation | Method | Endpoint |
|---|---|---|
| Create | POST | /agent-identities |
| List | GET | /agent-identities?page=0&size=20 |
| Get | GET | /agent-identities/{name} |
| Update | PUT | /agent-identities/{name} |
| Delete | DELETE | /agent-identities/{name} |
Read references/identity-ops.md for full API details, SDK examples, curl commands, and the Identity Response Model.
Agent identity is a required prerequisite for retrieving secrets from auth providers. All secret retrieval APIs require an agentIdentityName parameter:
GET /outbound-auth/api-key-providers/{providerName}/agent-identities/{agentName}/api-key — retrieve stored API keyPOST /outbound-auth/delegated-api-key-providers/{providerName}/agent-identities/{agentName}/api-key — request delegated keyPOST /outbound-auth/oauth2-providers/{providerName}/agent-identities/{agentName}/tokens/m2m — get M2M tokenPOST /outbound-auth/oauth2-providers/{providerName}/agent-identities/{agentName}/tokens/3lo — get 3LO tokenWorkflow: Create an agent identity first (identity operations), then create auth providers and retrieve secrets using that identity (auth operations).
create, list, get, update, delete).GET /agent-identities?page=0&size=100 and show the user what already exists on the platform.
b. If identities exist, ask the user: "You have these existing identities: [list]. Do you want to use one of these, or create a new one?"
c. If the user wants to create a new one, ask for each parameter individually:
name (required) — suggest a sensible default if context is available, but always ask for confirmationdescription (optional) — ask if they want to add oneallowedReturnUrls (optional) — ask if they want to configure callback URLs
d. Show a confirmation summary with all parameters before executing the API call. Wait for explicit user approval.
e. If the API returns 409 Conflict (name already exists), inform the user and ask whether to use the existing identity or choose a different name.list, get, update, delete): if a name is needed and not provided, ask for it.Manage outbound authentication providers on the GreenNode AgentBase Identity Service. These providers allow agents to authenticate with external services (LLM APIs, SaaS tools, etc.).
Three provider types are available:
apikey)| Operation | Method | Endpoint |
|---|---|---|
| Create | POST | /outbound-auth/api-key-providers |
| List | GET | /outbound-auth/api-key-providers?page=0&size=20 |
| Get | GET | /outbound-auth/api-key-providers/{name} |
| Update | PUT | /outbound-auth/api-key-providers/{name} |
| Delete | DELETE | /outbound-auth/api-key-providers/{name} |
| Retrieve Key | GET | /outbound-auth/api-key-providers/{providerName}/agent-identities/{agentName}/api-key |
delegated)| Operation | Method | Endpoint |
|---|---|---|
| Create | POST | /outbound-auth/delegated-api-key-providers |
| List | GET | /outbound-auth/delegated-api-key-providers?page=0&size=20 |
| Get | GET | /outbound-auth/delegated-api-key-providers/{name} |
| Delete | DELETE | /outbound-auth/delegated-api-key-providers/{name} |
| Request Key | POST | /outbound-auth/delegated-api-key-providers/{providerName}/agent-identities/{agentName}/api-key |
oauth2)| Operation | Method | Endpoint |
|---|---|---|
| Create | POST | /outbound-auth/oauth2-providers |
| List | GET | /outbound-auth/oauth2-providers?page=0&size=20 |
| Get | GET | /outbound-auth/oauth2-providers/{name} |
| Update | PUT | /outbound-auth/oauth2-providers/{name} |
| Delete | DELETE | /outbound-auth/oauth2-providers/{name} |
| M2M Token | POST | /outbound-auth/oauth2-providers/{providerName}/agent-identities/{agentName}/tokens/m2m |
| 3LO Token | POST | /outbound-auth/oauth2-providers/{providerName}/agent-identities/{agentName}/tokens/3lo |
Read references/auth-ops.md for full API details, SDK examples, curl commands, and credential rotation guides.
Auth operations that retrieve keys or tokens (e.g., auth apikey retrieve-key, auth delegated request-key, auth oauth2 m2m-token, auth oauth2 3lo-token) require an agent identity name. On AgentBase Runtime, this is automatically managed and injected by the runtime system. For local development, if the user hasn't created one yet, help them create an agent identity inline (use bash .claude/skills/agentbase/scripts/identity.sh create --name <name>) before proceeding with the auth operation. Do NOT redirect to a separate skill invocation — handle identity creation within the current flow.
apikey, delegated, oauth2) and operation.| Error | Cause | Fix |
|---|---|---|
| 401 Unauthorized | Expired or invalid IAM token | Re-obtain token with valid credentials. Ensure GREENNODE_CLIENT_ID and GREENNODE_CLIENT_SECRET are set correctly (on AgentBase Runtime, these are auto-injected) |
| 403 Forbidden | Service account lacks permissions | Check IAM roles at https://iam.console.vngcloud.vn |
| 404 Not Found | Resource (provider or identity) does not exist | Verify the name/ID with a list operation |
| 409 Conflict | Name already exists (identity or provider) | Choose a different name or update the existing resource |
| Name validation error | Name doesn't match ^[a-zA-Z0-9_-]+$ | Use only alphanumeric, underscore, and hyphen. 3-50 chars. |
.greennode.json not found | Config file missing or wrong directory | Create .greennode.json with client_id, client_secret fields |
| Invalid apikey format | Key value rejected by validation | Check the key format matches the external service's requirements |
| Redirect URI mismatch (from OAuth2 provider) | Platform callback URL not whitelisted on external OAuth2 provider | Get callbackUrl from the provider API response (or callback_url in SDK) and add it as an authorized redirect URI in the external OAuth2 provider's settings (e.g., Google Cloud Console, GitHub OAuth App) |
| returnUrl rejected / not allowed | returnUrl not in agent identity's allowedReturnUrls | Update the agent identity to add the URL to allowedReturnUrls |
identity or auth) and the operation./agentbase-memory.npx claudepluginhub vngcloud/greennode-agentbase-skills --plugin greennode-agentbaseReference guide for GreenNode AgentBase platform: architecture, services (Identity, Runtime, Memory, Observability), SDK, IAM setup, and credentials. Activated for platform overview questions.
Provisions Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph. Configures OAuth 2.0 token exchange (fmi_path, OBO, cross-tenant) and the AgentID sidecar for polyglot agent auth.
Connects AgentCore agents to external APIs, MCP servers, Lambda functions, or OpenAPI specs via Gateway. Configures outbound auth (OAuth, API keys, IAM), credentials, and Cedar policies for tool access control.