ONAYLARIM SSO kullanarak uygulamanıza e-imza ve mobil imza ile giriş özelliği eklemeyi öğrenin.
Yetkilendirme akışını başlatmak için kullanıcılarınızı ONAYLARIM SSO'nun ilgili sayfasına (https://appsso.onaylarim.com) yönlendirmelisiniz.
Yönlendirme yapacağanız bu adrese bir takım parametreler göndermeniz gerekmektedir.
Parametre | Açıklama |
---|---|
action | Bu parametre için auth değeri gönderilir. |
client_id | Tarafınızla paylaşılmış, her bir uygulama için belirlenmiş tekil bir ifadedir. Örnek: BC17C98CDAC9 |
hash | Süreci başlatacak uygulama tarafından oluşturulur. Detaylar aşağıda anlatılmıştır. |
Hash değeri üç bölümden oluşmaktadır. [BirinciBölüm][İkinciBölüm]_[ÜçüncüBölüm] şeklinde düşünülebilir.
Hash değeri aşağıdaki bir değerdir.
202211170936b08290e84f3948d08f99_96b4057313c0acf8f35760765805919c8657d897a13f80e1edcd9100a04e5b45BirinciBölüm değeri içinde işlem yapılan tarih bulunur.
202211170936 değeri, aslında 2022-11-17 09:36 şeklinde bir tarihe denk gelmektedir.
Bu değeri oluşturmak için aşağıdaki kod kullanılabilir.
DateTime.Now.ToString("yyyyMMddHHmm")
Gönderilen tarih değeri ile sunucu tarih değeri arasındaki fark toplamda 3 dakikadan az olmalıdır.
İkinciBölüm değeri rastgele oluşturulmuş 20 karakter uzunluğunda bir değerdir.
Örnek olarak b08290e84f3948d08f99 değeri düşünülebilir.
Bu değeri oluşturmak için aşağıdaki kod kullanılabilir.
Guid.NewGuid().ToString().Replace("-", "").Substring(0, 20)
İkinci bölüm, birinci bölümün belirli bir algoritmaya göre oluşturulmuş özet değeridir. Bu özet değeri oluşturulurken tarafınızla paylaşılmış gizli anahtar kullanılır. Bu anahtarı gizli olarak saklanması gerekmektedir. İkinci bölümü oluşturmak için aşağıdaki kod kullanılabilir.
var ucuncuBolum = HMACHelper.HashHMACHex("--- GİZLİ ANAHTAR ---", birinciBolum + ikinciBölüm);
Hash değerinin final halini oluşturmak için birinci, ikinci ve üçüncü bölüm aşağıdaki gibi birleştirilir.
var hash = birinciBolum + ikinciBolum + "_" + ucuncuBolum;
Kaynak koda ulaşmak için dotnetfiddle.net linkini kullanabilirsiniz.
Süreci başlatmak için yukarıda anlatılan şekilde parametreler oluşturularak aşağıdaki URL çağırılır.
https://appsso.onaylarim.com/?action=auth&client_id=AE06611BFCC4&hash=202211170936b08290e84f3948d08f99_96b4057313c0acf8f35760765805919c8657d897a13f80e1edcd9100a04e5b45
Kullanıcı doğru şekilde e-imza, mobil imza atarsa, kullanıcı otomatik olarak uygulamanız için belirlenmiş adrese yönlendirilir.
Uygulama için belirlenmiş yönlendirme adresinin https://uygulamaadresi.com olduğu varsayıldığında, aşağıdaki gibi bir adrese yönlendirme yapılır.
https://uygulamaadresi.com?loginId=47d518ed-c75f-4623-825c-f97c6c1eae0b&sessionId=76974cc4a155
Yönlendirme adresinde bulunan parametreleri kullanarak oturum bilgileri alınabilir.
Bilgileri almak için aşağıdaki URL kullanılır.
https://apisso.onaylarim.com/Authentication/CheckLoginId?client_id=AE06B19BFCC4&login_id=6b7922d7-1e58-45e2-bd9c-4eba130919a5&session_id=4f3c06d650d6&hash=20221117105348631bc3eb4f40b98e38_3f684b044089e1583e9cff69a04cc7786cf1a18fd8f2925eb612375fd5fafd21
Parametre | Açıklama |
---|---|
client_id | Tarafınızla paylaşılmış, her bir uygulama için belirlenmiş tekil bir ifadedir. Örnek: BC17C98CDAC9 |
login_id | Yönlendirme adresine gönderilen parametredeki değer kullanılır. |
session_id | Yönlendirme adresine gönderilen parametredeki değer kullanılır. |
hash | Süreci başlatacak uygulama tarafından oluşturulur. Detaylar yukarıda anlatılmıştır. |
Yukarıdaki adrese yapılan GET isteği aşağıdaki sonucu döner.
{
"result": {
"citizenshipNo": "13394428978"
"fileData": "………."
},
"error": null
}
citizenshipNo alanı imza atan kişinin vatanda şlık numarasıdır.
fileData alanı, kişinin e-imza attığı bilginin e-imzalı halidir. e-İmzalı belge süreci oluşturan uygulama tarafından saklanmalıdır. ONAYLARIM SSO bu bilgiyi en fazla 1 ay süreyle saklamaktadır.