Ana içeriğe geç

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ı kim verir?

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İçerikNerede saklanır
client.crtLeaf sertifikanız (PEM CERTIFICATE). Subject CommonName değeri client_id'nizdir.Client yapılandırmanızla birlikte.
client.keyEş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:

  1. 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.
  2. 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ı​

DurumToken endpoint'iDiğer endpoint'ler
Bağlantıda sertifika sunulmadı401, kod 10005401
Sertifika ortamın client CA'sı ile imzalanmamış401, kod 10005401
Geçerli bir sertifika, ancak client'ınıza verilen değil (örneğin yeniden üretimle değiştirilmiş eski bir sertifika)401, kod 10005401
Sertifikanın süresi dolmuş ya da henüz geçerli değil401, kod 10005401
CommonName, client_id'niz değil401, kod 10005401
Client'ınız sertifika gerektiriyor ama ona hiç sertifika verilmemiş401, kod 10005401
Client'ınız sertifika gerektirmiyorKontrol atlanırKontrol 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.key dosyasını secret manager'ınıza kaydedin. Daha sonra geri alınamaz.
  • POST /v2/oauth/token dahil her çağrıda client.crt + client.key dosyaları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.