Atlas by Friendlym

Ajanlar için kimlik doğrulama

Atlas by Friendlym hem bir OAuth 2.1 yetkilendirme sunucusu hem de korunan bir kaynaktır. Ajanlar, tek bir kişiye ve tek bir çalışma alanına bağlı, o kişinin onayladığı kapsamlara sahip kısa ömürlü erişim belirteçleri alır.

Keşif

Ne Nerede
Korunan kaynak üst verisi, MCP (RFC 9728) https://tilqui-atlas.pages.dev/.well-known/oauth-protected-resource/mcp
Korunan kaynak üst verisi, REST API https://tilqui-atlas.pages.dev/.well-known/oauth-protected-resource/api
Yetkilendirme sunucusu üst verisi (RFC 8414) https://tilqui-atlas.pages.dev/.well-known/oauth-authorization-server

/mcp ya da /api adresine belirteçsiz bir istek WWW-Authenticate: Bearer resource_metadata="…" ile 401 döner; böylece istemci kendisine verilen adresten başlayabilir.

Uç noktalar

Uç nokta Kullanım
POST /oauth/register Dinamik istemci kaydı (RFC 7591). Açık istemciler: token_endpoint_auth_method değeri none.
GET /oauth/authorize PKCE ile yetkilendirme kodu. code_challenge_method=S256 zorunludur.
POST /oauth/token authorization_code, refresh_token ve urn:ietf:params:oauth:grant-type:device_code.
POST /oauth/device_authorization Tarayıcısı olmayan ajanlar için cihaz akışı (RFC 8628).
GET /device İnsanın, ajanın gösterdiği kodu yazdığı yer.
POST /oauth/revoke Belirteç iptali (RFC 7009).

İstemci kimliği üst veri belgeleri desteklenir: bir istemci client_id olarak bir https adresi kullanabilir ve Atlas by Friendlym istemcinin adını ve yönlendirme adreslerini o belgeden okur.

PKCE ile yetkilendirme kodu

Claude Code, Codex ve Cursor bunu kendiliğinden yapar.

  1. Kaydolun: client_name ve redirect_uris (https, herhangi bir portla http://localhost ya da http://127.0.0.1, veya bir uygulama şeması) ile POST /oauth/register.
  2. İnsanın tarayıcısını response_type=code, client_id, redirect_uri, code_challenge (S256), state, ihtiyaç duyduğunuz scope ve resource=https://tilqui-atlas.pages.dev/mcp ile /oauth/authorize adresine gönderin.
  3. İnsan giriş yapar ve onay ekranını görür: ajanınızın adı (kendi alan adınızdaki bir istemci kimliği üst veri belgesinden geliyorsa doğrulanmış, değilse kendi bildirdiği ad olarak), çalışma alanı ve istediğiniz her kapsam için bir kutu. Varsayılan olarak yalnızca read işaretlidir; gerisini insan seçer. Onaylar ya da reddeder.
  4. Yönlendirme adresiniz code, state ve iss alır. Kodu beş dakika içinde code_verifier ile /oauth/token adresinde belirteçle değiştirin.

Tarayıcısız ajanlar için cihaz akışı

# 1. bir kez kaydolun (yönlendirme adresi gerekmez)
curl -s https://tilqui-atlas.pages.dev/oauth/register -H 'content-type: application/json' \
  -d '{"client_name":"Derleme sunucusu ajanı","grant_types":["urn:ietf:params:oauth:grant-type:device_code","refresh_token"]}'

# 2. bir kod isteyin
curl -s https://tilqui-atlas.pages.dev/oauth/device_authorization -d client_id=CLIENT_ID -d resource=https://tilqui-atlas.pages.dev/mcp
# => {"device_code":"…","user_code":"BCDF-GHJK","verification_uri":"https://tilqui-atlas.pages.dev/device",
#     "verification_uri_complete":"https://tilqui-atlas.pages.dev/device?code=BCDF-GHJK","expires_in":900,"interval":5}

# 3. user_code ve bağlantıyı insanınıza gösterin, sonra her `interval` saniyede bir sorun
curl -s https://tilqui-atlas.pages.dev/oauth/token -d grant_type=urn:ietf:params:oauth:grant-type:device_code \
  -d device_code=DEVICE_CODE -d client_id=CLIENT_ID

İnsan karar vermediği sürece belirteç uç noktası authorization_pending yanıtını verir; aralıktan sık sorarsanız slow_down der. İnsan /device sayfasında onayladığında belirteçleri alırsınız.

Bağlantı yalnızca kod kutusunu doldurur: insan, onay ekranını görmeden önce ajanının bu kodu şu anda gösterdiğini doğrular; onay ekranı isteğin ne kadar önce ve hangi ülkeden geldiğini gösterir. Tanınmış bir ajanın adıyla (Claude, Codex, Cursor, ChatGPT gibi) kaydolmuş bir istemci cihaz akışını kullanamaz; kendi adınızla kaydolun.

Belirteçler

Kapsamlar

Kapsam Verdiği yetki
read Kişinin görebildiği projeleri, dosyaları ve kaynakları okumak
ask Ajan başına günlük sınırla ask_atlas
inbox Müşteri ile ajans arasındaki sorular; yanıtlar kişinin onayladığı taslaklardır
tasks Kişiye atanan görevler ve bunlara ilerleme notları
agent_context Ajansın ajanlarla paylaştığı proje bağlamı
direction Kişinin projeleri için yön paketleri ve önerdikleri görevlerin onayı

scope=… ile yalnızca ihtiyacınız olanı isteyin; vermezseniz hepsi sunulur ve kişi aralarından seçer (onay ekranında varsayılan olarak yalnızca read işaretlidir).

Eşleştirme belirteçleri

OAuth'tan önce ajanlar Ajan bağla sayfasındaki bir eşleştirme satırıyla bağlanıyordu (atl_ belirteçleri). Bunlar çalışmaya devam eder ve Ajan bağla sayfasında OAuth ajanlarının yanında görünür.