# auth.md - Agent Registration and Authentication

This document specifies discovery, authentication, and registration parameters for AI agents, automated systems, and search crawlers accessing **Hazem Mensi's Chemical Process Engineering Portfolio** (https://www.hazemensi.com).

## Agent Audience
- **Resource Owner:** Hazem Mensi (Chemical Process Engineer & Aspen Certified Expert User)
- **Target Audience:** Autonomous AI agents, technical recruiting systems, talent acquisition crawlers, engineering evaluation platforms, and search engine discovery bots.
- **Service Scope:** Read-only professional engineering portfolio, technical case studies (API 520/521 overpressure protection, flare network hydraulics, AGRU solvent optimization, cryogenic column retrofits), and verified AspenTech credentials.

## Discovery Endpoints
- **Protected Resource Metadata (RFC 9728):** https://www.hazemensi.com/.well-known/oauth-protected-resource
- **Authorization Server Metadata (RFC 8414):** https://www.hazemensi.com/.well-known/oauth-authorization-server
- **API Catalog (RFC 9727):** https://www.hazemensi.com/.well-known/api-catalog
- **OpenAPI Specification:** https://www.hazemensi.com/.well-known/openapi.json
- **MCP Server Card (SEP-1649 / SEP-2127):** https://www.hazemensi.com/.well-known/mcp/server-card.json
- **A2A Agent Card:** https://www.hazemensi.com/.well-known/agent-card.json
- **ARD Capability Manifest (ai-catalog):** https://www.hazemensi.com/.well-known/ai-catalog.json
- **Web Bot Auth JWKS Directory:** https://www.hazemensi.com/.well-known/http-message-signatures-directory


## Registration Endpoints
- **Registration Endpoint:** https://www.hazemensi.com/api/agent/register (Method: `POST`, Content-Type: `application/json`)
- **Claim Endpoint / Claim URI:** https://www.hazemensi.com/api/agent/claim (Method: `POST`, Content-Type: `application/json`)
- **Revocation Endpoint / Revocation URI:** https://www.hazemensi.com/api/agent/revoke (Method: `POST`)

### Registration Request Example
```json
{
  "identity_type": "anonymous",
  "agent_name": "RecruiterAI/1.0"
}
```

### Registration Response Example
```json
{
  "status": "success",
  "claim_uri": "https://www.hazemensi.com/api/agent/claim",
  "token": "anonymous_public_access"
}
```

## Supported Methods
- **anonymous:** Public anonymous access supported. Credential types: `bearer`, `api_key`. Claim URI: `https://www.hazemensi.com/api/agent/claim`.
- **identity_assertion:** Assertion types: `urn:ietf:params:oauth:token-type:id-jag`, `verified_email`. Credential types: `bearer`, `api_key`. Claim URI: `https://www.hazemensi.com/api/agent/claim`.

## Credential Use
- **HTTP Header:** Include `Authorization: Bearer <token>` or `X-API-Key: <token>` in HTTP requests.
- **Public Content:** All portfolio content and engineering case studies are accessible with read permissions (`profile:read`, `projects:read`).
- **Revocation:** Issued tokens can be revoked at `https://www.hazemensi.com/api/agent/revoke`.

## Machine-Readable Content Negotiation
- **Markdown for Agents:** Send HTTP header `Accept: text/markdown` on any page to receive a clean, structured Markdown representation.
- **LLM Summary Index:** Fast-ingest summary file available at [/llms.txt](https://www.hazemensi.com/llms.txt).
