mTLS Client Sertifikaları
Operatör client'ınızı sertifika gerektiren olarak işaretlediğinde (require_certificate = true), token isteği dahil her çağrı, client'ınızın kendisine verilen sertifikayı sunduğu bir TLS bağlantısı üzerinden yapılmalıdır. Özel anahtara sahip olduğunuz TLS el sıkışmasının kendisiyle kanıtlanır; HTTP başlığına hiçbir şey konmaz.
Sertifikayı hiçbir zaman kendiniz üretmezsiniz. Platform operatörü, ortamın client CA'sı ile imzalanmış sertifikayı panelden client'ınız için üretir. Platform yalnızca açık sertifikayı ve SHA-256 parmak izini saklar. Özel anahtar yalnızca bir kez, üretim anında gösterilir ve daha sonra alınamaz: hemen secret manager'ınıza kaydedin.
Size verilenler
| Dosya | İçerik | Nerede saklanır |
|---|---|---|
client.crt | Leaf sertifikanız (PEM CERTIFICATE). Subject CommonName değeri client_id'nizdir. | Client yapılandırmanızla birlikte. |
client.key | Eşleşen özel anahtar (PEM PRIVATE KEY). | Yalnızca secret manager'ınızda. Kimseye göndermeyin. |
Bir sertifika bir yıl geçerlidir. Her ortamın (test, production) kendi client CA'sı vardır; test için verilen bir sertifika production'a erişim sağlamaz.
Sertifikayı sunmak
HTTP istemcinizi, sertifikayı ve anahtarı TLS el sıkışmasında sunacak şekilde yapılandırın (curl --cert --key mantığı):
curl --cert client.crt --key client.key \
--request POST \
--url 'https://integration-api.tokenizationtr.com/v2/oauth/token' \
--header 'Content-Type: application/json' \
--data '{"client_id": "<client_id>", "client_secret": "<client_secret>", "grant_type": "client_credentials"}'
curl --cert client.crt --key client.key \
--url 'https://integration-api.tokenizationtr.com/v2/admin/tokens/68aeb272d9336c619ce249f6' \
--header 'Authorization: Bearer <access_token>'
Nasıl kontrol edilir:
- Platformun edge katmanı TLS'i sonlandırır ve sunduğunuz sertifikanın ortamın client CA'sına zincirlendiğini doğrular. El sıkışma sertifikasız bağlantıları da kabul eder; böylece sertifika gerektirmeyen client'lar çalışmaya devam eder.
- Sertifika gerektiren bir client için integration servisi, edge'in bu bağlantıda bir sertifikayı doğrulamış olmasını ve bu sertifikanın tam olarak client'ınıza verilen sertifika olmasını (SHA-256 parmak izi eşleşmesi), geçerlilik süresi içinde bulunmasını ve CommonName olarak
client_id'nizi taşımasını şart koşar.
Başlık ile bir alternatif yoktur. Bu sayfanın eski sürümlerinde anlatılan X-Client-Cert başlığı yok sayılır.
Hata yanıtları
| Durum | Token endpoint'i | Diğer endpoint'ler |
|---|---|---|
| Bağlantıda sertifika sunulmadı | 401, kod 10005 | 401 |
| Sertifika ortamın client CA'sı ile imzalanmamış | 401, kod 10005 | 401 |
| Geçerli bir sertifika, ancak client'ınıza verilen değil (örneğin yeniden üretimle değiştirilmiş eski bir sertifika) | 401, kod 10005 | 401 |
| Sertifikanın süresi dolmuş ya da henüz geçerli değil | 401, kod 10005 | 401 |
CommonName, client_id'niz değil | 401, kod 10005 | 401 |
| Client'ınız sertifika gerektiriyor ama ona hiç sertifika verilmemiş | 401, kod 10005 | 401 |
| Client'ınız sertifika gerektirmiyor | Kontrol atlanır | Kontrol atlanır |
Bearer token'ınız taze iken alınan bir 401 neredeyse her zaman bir sertifika sorununu gösterir. Sertifika gerektiren ama kayıtlı sertifikası olmayan bir client hiç kabul edilemez: operatörden yeniden üretmesini isteyin.
Yenileme
Sertifikanın süresi dolmadan operatörden yeniden üretmesini isteyin. Yeniden üretim yeni bir anahtar çifti verir ve kayıtlı parmak izini değiştirir; önceki sertifika anında çalışmaz hale gelir: yeni çifti verildiği anda devreye alın.
Kontrol listesi
- Üretim ekranındaki
client.keydosyasını secret manager'ınıza kaydedin. Daha sonra geri alınamaz. -
POST /v2/oauth/tokendahil her çağrıdaclient.crt+client.keydosyalarını TLS el sıkışmasında sunun. - Çağırdığınız ortam için verilmiş sertifikayı kullanın.
- Sertifikanın bitiş tarihini takip edin ve zamanında yeniden üretim isteyin.