ONAYLARIM SSO Kullanım Dokümanı
Uygulamaya https://sso.onaylarim.com adresinden erişilir.
Yetkilendirme Akışını Başlatmak İçin Gerekli Parametreler
- action →
auth
- client_id → Tarafınızla paylaşılmış, her bir uygulama için belirlenmiş tekil bir ifadedir.
- Örnek:
BC17C98CDAC9
- Örnek:
- hash → Süreci başlatacak uygulama tarafından oluşturulur. Detaylar aşağıda anlatılmıştır.
Hash Değeri Oluşturma
Örnek hash değeri:
202211170936b08290e84f3948d08f99_96b4057313c0acf8f35760765805919c8657d897a13f80e1edcd9100a04e5b45
Hash iki bölümden oluşur:
[BirinciBölüm]_[İkinciBölüm]
Birinci Bölüm
İki parçadan oluşur: [Part1][Part2]
- Part1 (Tarih)
Örn:
202211170936
→2022-11-17 09:36
DateTime.Now.ToString("yyyyMMddHHmm")
Gönderilen tarih ile sunucu tarihi arasındaki fark 3 dakikadan az olmalıdır.
- Part2 (Rastgele 20 karakter)
Örn:
b08290e84f3948d08f99
Guid.NewGuid().ToString().Replace("-", "").Substring(0, 20)
İkinci Bölüm
Birinci bölümün gizli anahtar ile HMACSHA256 özet değeridir.
var ikinciBolum = HMACHelper.HashHMACHex("--- GİZLİ ANAHTAR ---", birinciBolum);
Final hash:
var hash = $"{birinciBolum}_{ikinciBolum}";
HMACHelper Sınıfı (C#)
public class HMACHelper
{
public static byte[] HashHMAC(byte[] key, byte[] message)
{
var hash = new HMACSHA256(key);
return hash.ComputeHash(message);
}
public static string HashHMACHex(string keyHex, string message)
{
byte[] hash = HashHMAC(HexDecode(keyHex), StringEncode(message));
return HashEncode(hash);
}
public static byte[] StringEncode(string text)
{
var encoding = new ASCIIEncoding();
return encoding.GetBytes(text);
}
public static string HashEncode(byte[] hash)
{
return BitConverter.ToString(hash).Replace("-", "").ToLower();
}
public static byte[] HexDecode(string hex) => Convert.FromHexString(hex);
}
Süreci Başlatma
Parametreler oluşturulduktan sonra şu URL çağrılır:
https://sso.onaylarim.com/?action=auth&client_id=AE06B19BFCC4&hash=202211170936b08290e84f3948d08f99_96b4057313c0acf8f35760765805919c8657d897a13f80e1edcd9100a04e5b45
E-imza/mobil imza başarılı olursa kullanıcı belirlenmiş uygulama adresine yönlendirilir.
Örn: https://uygulamaadresi.com
Yönlendirme:
https://uygulamaadresi.com?loginId=47d518ed-c75f-4623-825c-f97c6c1eae0b&sessionId=76974cc4a155
Oturum Bilgilerini Alma
Yönlendirme sonrası oturum bilgilerini almak için:
https://apisso.onaylarim.com/Authentication/CheckLoginId?client_id=AE06B19BFCC4&login_id=6b7922d7-1e58-45e2-bd9c-4eba130919a5&session_id=4f3c06d650d6&hash=20221117105348631bc3eb4f40b98e38_3f684b044089e1583e9cff69a04cc7786cf1a18fd8f2925eb612375fd5fafd21
Parametreler:
- client_id → Tekil uygulama ID’si
- login_id → Yönlendirme ile gelen
loginId
- session_id → Yönlendirme ile gelen
sessionId
- hash → Uygulama tarafından oluşturulmuş hash
Dönen Sonuç
{
"result": {
"citizenshipNo": "13394428978",
"fileData": "………."
},
"error": null
}
- citizenshipNo → İmza atan kişinin TCKN’si
- fileData → E-imzalı belge (uygulamanın saklaması gerekir, SSO en fazla 1 ay saklar)