Front API erişim belirteci
Front API'nin hesap uç noktaları (/fapi/v1/me…, /fapi/v1/verifications… ve /fapi/v1/organizations…) iki tür kimlik doğrulamayı kabul eder:
- kullanıcının
__Host-idp_sessionçerezi, ortamın giriş ana makinesinde (barındırılan hesap sayfaları bunu kullanır); - başka bir kökende çalışan birinci taraf bir uygulama (tek sayfalık uygulama veya yerel uygulama) için bir Front API erişim belirteci.
Belirteci alma
Yetkilendirme kodu değişiminde veya yenilemede, Front API için belirteç uç noktasından kaynak olarak (RFC 8707) talepte bulunun:
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
DPoP: <proof>
grant_type=refresh_token&refresh_token=<refresh token>&client_id=app_01j9...&resource=https%3A%2F%2Facme.keenauth.app%2Ffapi
Değer, ortamın issuer değerine /fapi eklenerek oluşturulur. İstek yalnızca şu durumlarda kabul edilir:
- uygulama etkin bir birinci taraf uygulamadır (aksi halde
invalid_target); - istek bir DPoP kanıtı taşır (aksi halde
invalid_dpop_proof); - yetki bir oturum açma oturumuna aittir ve yenilemede yenileme belirteci DPoP'a bağlıdır (aksi halde
invalid_target).
Yalnızca erişim belirteci değişir. Hedef kitlesi <issuer>/fapi olur, yalnızca yetkinin OpenID kapsamlarını (openid, profile, email, phone, offline_access) taşır, bir userinfo belirteci kadar geçerli kalır ve kanıtın anahtarına bağlanır. Yetkinin kendisi, yenileme belirteci ve kapsamları olduğu gibi kalır; yenileme, yenileme belirtecini her zamanki gibi döndürür.
Hesap uç noktalarını çağırma
Belirteci DPoP şemasıyla gönderin ve her istek için yeni bir kanıt kullanın (RFC 9449):
GET /fapi/v1/me/sessions
Idp-Client: <SDK identifier>
Authorization: DPoP <access token>
DPoP: <proof with htm, htu, iat, jti, ath>
htu, sorgu dizesi olmadanhttps://<giriş ana makinesi>ile yoldan oluşur.ath, erişim belirtecinin base64url SHA-256 değeridir.- Çerez okunmaz. İstek, belirtecin verildiği oturum üzerinde işlem yapar; o oturum sona ererse belirteç çalışmayı durdurur.
- Başka bir kökenden gelen tarayıcı isteği, uygulamanın izin verilen web kökenlerinden birinden gelmelidir. Kökenler arası istekler hiçbir zaman kimlik bilgisi taşımaz.
- Hassas bir değişiklik için hâlâ yakın tarihli bir giriş gerekir. Bu durumda
401 step_up_requiredyanıtıWWW-Authenticate: DPoP error="insufficient_user_authentication", …, max_age=300başlığını taşır.
Hatalar
| Durum | Kod | Ne zaman |
|---|---|---|
| 400 | malformed_request |
Birden fazla Authorization başlığı var veya başlık DPoP <token> biçiminde değil. |
| 401 | unauthenticated |
Belirteç geçersiz, süresi dolmuş veya iptal edilmiş; farklı bir hedef kitleye sahip; DPoP'a bağlı değil; ya da oturumu veya uygulaması artık etkin değil. |
| 401 | invalid_dpop_proof |
Kanıt geçersiz veya başka bir anahtarla imzalanmış. |
| 401 | use_dpop_nonce |
DPoP-Nonce başlığındaki nonce ile yeni bir kanıt gönderin. |
| 403 | origin_not_allowed |
Sayfa kökeni, uygulamanın izin verilen web kökenlerinden biri değil. |
Her 401 yanıtı bir WWW-Authenticate: DPoP … sorgusu taşır.