Geodi User Token API - Güvenilen istemciler için SSO

Bir ILoginProvider gerçekleme veya hali hazırda var olan ILoginProivder gerçeklemelerini kullanmaya alternatif yöntemdir. Halihazırda giriş yapmış bir kullanıcıya sahip olunduğunda tercih edilebilecek sunucu tabanlı güvenli bir yöntemdir. 

(warning) GEODI Oauth2 istemci barındırmaktadır. Eğer SSO için entegre olunacak sistem Oauth2 ile login destekliyorsa basit tanımlar yapılarak GEODI üzerinden ortak login arayüzü ve ortak oturum kullanımı sağlanabilir. 

GetAutoLoginLink
Açıklama

Uygulamanın kendi kullanıcısını login ekranı gerekmeden bir GEODI arayüzüne yönlendirmesini sağlar.

Bu servis ile elde edilecek link login ekranı istemez.  Güvenlilen uygulama tarafından belirtilen kullanıcı sisteme giriş yapmış kabul edilir.


sadece Settings/ClientToken klasör altında tanımlı uygulamalar bu servisi kullanabilir. Tanımdaki ValidateURL adresine istek yapılarak uygulama doğrulanır.

Aynı parametreleri alan ve aynı nesneyi dönen bir .net soap api hazırlanmışsa metod üzerine [ScriptMethod(ResponseFormat = ResponseFormat.Json)] attribute eklenmelidir.

İstek

[GEODIURL]/TokenHandler?op=GetAutoLoginLink&ClientID=[ClientID]&ClientValidator=[ClientValidator]&LoginUser=[LoginUser]&UserSession=[Token]

  • ClientID: Settings/ClientToken altında atılan jSettings tanım dosyasındaki ClientID değeridir. 
  • ClientValidator: Çağrı yapan uygulama tarafından tanımlanacak anahtardır. İstenilen karmaşıklıkta tanımlanabilir. Kriptolu ve içeriğinde zaman bilgisi de barındıran bir veri olması önerilir.  Settings/ClientToken üzerinde yapılan ValidateURL adresinden doğrulaması ve "OK" sonucu dönülmesi beklenir.
  • LoginUser: Çağrı yapan uygulamada login durumdaki kullanıcı bilgisidir.
    • LDAP kullanıcısı için sadece kullanıcı adı , LDAP:Domain\KullaniciAdi veya LDAP:KullaniciAdi iletilebilir.  Domain iletilmemişse GEODI kendi uygulamasına ait kullanıcının ldap domian adresini kullanır.
    • Geodi Kullanıcısı için GEODI:KullaniciAdi iletilmelidir.
  • UserSession: Token bilgisidir. Geodi Token Oluşturma sayfasındaki bilgiler ile elde edilebilir. GetAutoLoginLink servisine erişimi olmalıdır.
  • IPFilter(Opsiyonel) :  Elde edilen linkin çalışacağı IP filtresidir.
  • TimeOutMinute(Opsiyonel) : Elde edilen link ile GEODI'ye ne kadar süre içerisinde giriş yapılabileceğini belirtmekte kullanılır. Varsaılan değeri 120 dakikadır.
İşleyiş
Örnek GEODI ayar dosyası 

Aşağıdaki gibi bir tanım UTF8 encoding jSettings uzantılı bir dosyaya kaydedilmeli ve GEODI uygulamasının göreceği Settings/ClientToken klasörüne atılmalıdır.

{

ClientID:"MyApplicationClientID",
ValidateURL: "http(s)://yourhost/....?validator={ClientValidator}",
GEODIRequestHeader:"GEODI_Request"

}

ValidateURL içeriğinde {ClientValidator} kullanılsa dahi request headerlar arasında ClientValidator iletilir.

Bir GEODIRequestHeader tanımı yapılmışsa ValidateURL çağrısına bu bilgide header olarak eklenir. Çağrıyı yapan uygulamanın GEODI olduğunu doğrulamakta kullanılabilir.


HttpMethodGET, POST
Beklenen Hatalar

401 Unauthorized access / Access denied

403 Forbidden

511 Network Authentication Required

452 ClientValidator could not be verified

453 LoginUser required

454 Invalid Client Id or empty ValidateUrl

455 LDAP domain not found  ( Bu hata yalnızca username , LDAP:username iletildiğinde  Ldap domain bulunmaya çalışırken alınabilir )

500 -Yakalanmamış diğer hatalar, Web Request hataları-

Beklenen Sonuç

Token bilgisi içeren URL döner.

Örnek Uygulamalar
GetAutoLoginToken
Açıklama

GetAutoLoginLink ile aynıdır. Geriye URL+Token değil sadece Token döner