You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Uygulamaların kullanıcı veritabanını tutarak, kullanıcı kayıt ve giriş işlemleri güvenli olarak yönetir.


Genel Bakış

Logo PaaS platformunda kullanıcı yönetimi işlemlerini yerine getirir. IDM servisi, kullanıcı arayüzü veya API uçları ile uygulamanıza entegre edilebilir. 

IDM servisi ortak kullanıcı havuzu yapısı ile platform servisleri ve uygulamalar arasında tek oturum açma (SSO - Single Sign On) desteği sunar. Kullanıcı oturum kapatma(log out) işleminde kullanıcıyı ister ilgili uygulamadan, isterseniz tüm PaaS uygulamalarından çıkış yaptırabilirsiniz.

Uluslararası Oauth 2.0 protokoküne uygun olarak erişim bileti (access token) ve şifre onayı (password grant) operasyonlarını destekler. Bu protokoI yardımıyla, IDM servisi üzerinden diğer kimlik yönetim sistemlerinde kayıtlı (Google, Facebook ) kullanıcılar ile giriş yapabilirsiniz. IDM servisi, son kullanıcılara ait şifreleri veritabanında şifrelemektedir. Geliştiriciler veya operasyon ekipleri bu şifrelere hiç bir şekilde erişemez. Şifre değiştirme işlemleri son kullanıcı tarafından onay mekanizması ile değiştirilebilir.


Kullanım Senaryoları

  • Merkezi kullanıcı listesi oluşturma

  • Kullanıcı kayıt işlemleri

  • Kullanıcı oturum açma (login) 
  • Kullanıcı oturum kapatma(log out) 
  • Güvenli şifre kayıt 
  • Şifre sıfırlama
  • Excelden kullanıcı aktarımı

Kullanıcı Arayüzü

Kullanıcı Oturum Açma

Şifremi Unuttum

Teknik Özellikler

  • Oauth 2.0 standardı

API Dokümantasyonu

Swagger UI: http://dev-linux.logo-paas.com:5100/api-docs/

IDM Yönetici Paneli

Swagger UI: http://dev-linux.logo-paas.com:5100/idmweb/

IDM Konfigurasyon Paneli

Swagger UI: http://dev-linux.logo-paas.com:5100/settings/ui/


İlişkili Platform Servisleri

  • RBMS: MsSQL veya PostgreSQL
  • NoSQL (multiple instance çalışma durumunda session storage olarak): MongoDB
  • Apache Kafka
  • CloudControl Servis


IDM'e Uygulama Kaydetme

1- IDM sistemine yeni bir uygulama kaydetmek için öncelikle, aşağıdaki adrese çağrı yapılarak geçici erişim anahtarı alınmalıdır. Üretilen geçici anahtar expireinmins süresi kadar geçerli olacaktır.

http://idmadresi/api/login/generate/DB8C2EE8-CE4A-40A2-A6DA-C5B99897A7FC/expireinmins=50

 


2- IDM Swagger UI üzerinden /api/security/{id} ucu ile yeni uygulamanın bilgileri kaydedilebilir.

  • Id ve SecuritySecret parametrelerine sırasıyla, yeni uygulama için random olarak oluşturulan SecurityId ve SecuritySecret bilgisi girilecektir.
  • AccessKey parametresine ise bir önceki adımda elde edilen geçici erişim kodu verilmelidir.
  • GrantType parametresi; yeni uygulama IDM'den response_type=token formatı ile browser üzerinden token alacaksa (tek aşamada), "Implicit" olarak girilmelidir.


3- Kaydedilen uygulama IDM Swagger UI üzerinden /api/security/{id}/validate ucu ile doğrulanabilir


IDM'e Kullanarak Access Token Alma

Uygulama kaydı yapıldıktan sonra IDM sistemi üzerinden access token 3 farklı şekilde alınabilir.

1- Rest çağrısı ile backend üzerinden token alma

Uygulama backendi üzerinden IDM UI'a yönlendirme yapmaksızın access token almak için aşağıdaki çağrı yapılabilir.

  • Client_id ve secret için ilgili uygulamanın bilgileri kullanılmalıdır.
  • grant_type=password parametresi sabit olarak gönderilmelidir.

2- SecuritySecret kullanılmadan redirecturi kontrolü ile IDM login ekranı kullanılarak access token alma

Security secret'ın kullanılamadığı ve sadece front-end kodun bulunduğu ortamlarda IDM üzerinden token almak için, aşağıdaki adres formatında bold ile yazılan kısımlar değiştirilerek IDM login ekranına yönlendirme yapılması sağlanabilir.

Bu yöntem redirecturi konfigurasyonu gerektirdiği için ihtiyaç olmadıkça kullanılmamalıdır. Bunun yerine bir sonraki başlıkta anlatılan 3. yöntem önerilmektedir.


http://idmadresi/connect/authorize?client_id=securityid&scope=vendorExtensions&response_type=token&redirect_uri=urlencoded_redirecturi

Örnek:  http://stg-idm.vyapari-mumbai.com/connect/authorize?client_id=ca3ca995-3b1e-4e01-81e1-1f226686a3f7&scope=vendorExtensions&response_type=token&redirect_uri=http%3A%2F%2Fwww.logo.com.tr%2F



Giriş yapıldıktan sonra IDM redirect uri'de belirtilen adrese browser'ı yönlendirecek ve url fragment formatında access token'ı url'e ekleyecektir.


Not: Bu yöntemin kullanılabilmesi için uygulama kaydı yapılırken GrantType: "Implicit" olarak belirlenmeli ve RedirectUri bölümü doldurulmalıdır. IDM api'leri üzerinden bu bilgiler değiştirilebileceği gibi, AuthorizationWeb UI uygulama güvenliği menüsü üzerinden ilgili uygulama için bu bilgiler güncellenebilir.

 

3- SecuritySecret ile IDM login ekranı kullanılarak (2 aşamalı) access token alma

IDM kullanımında Single Signon operasyonları için önerilen yöntemdir. 2 aşamalı olarak çalışmaktadır;


  • İkinci aşamada uygulama gelen "code" bilgisini alıp backend'de IDM'e bu bilgiyi ileterek asıl access token'ı alır. Redirect uri olarak ilk çağrıda gönderilen adres aynı şekilde post body'de parametre olarak iletilmelidir.

Not: Bu yöntemin kullanılabilmesi için uygulama kaydı yapılırken GrantType: "AuthorizationCode" (default değer) olarak belirtilmiş olmalıdır. RedirectUri verilmesine gerek yoktur.

IDM'den logout olma

IDM login ekranı kullanılarak alınan access token'ların invalide edilmesi ve Single Sign On oturumunun düşürülmesi için idm'in logout ucu aşağıdaki şekilde çağrılmalıdır.

  • Bu çağrı yapıldığında aktif kullanıcı için yaratılan bütün token'lar invalide edilmekte ve IDM login arayüzü üzerinden açılmış olan (başka bir uygulamadan idm'e yönlendirme yapıldığında önceden açılmış bir oturum varsa tekrar kullanıcı adı ve şifre sorulmasını engelleyen) oturum sonlandırılır.
  • Logout işleminden sonra aşağıda urlencoded_redirect_uri olarak belirtilen adrese yönlendirme yapılır.


http://idmadresi/account/logout?redirect_uri=urlencoded_redirecturi&forcesignout=True&appid=securityid

Örnekhttp://stg-idm.vyapari-mumbai.com/account/logout?redirect_uri=http://stg-services-b.vyapari-mumbai.com/authorizationweb/Home/Menu&forcesignout=True&appid=e172fe44-8a84-4759-aceb-0b65c6d35e19