7 Mart 2019 Perşembe

JAAS Kullanımı

Giriş
Java Authentication and Authorization Service (JAAS) hem authentication hem de authorization için kullanılır.

Projemizde JAAS kullanmak istiyorsak önce JVM'i çalıştırırken şöyle bir parametre veririz.
-Djava.security.auth.login.config=/conf/MyJaas.config
Bu dosya şöyledir
MyJaasLogin {

 com.foo.bar.LoginModule1 REQUIRED
 com.foo.bar.LoginModule2 REQUIRED myoption=true
 com.foo.bar.LoginModule3 OPTIONAL
}
Bu dosyada LoginModule arayüzünden kalıtan sınıflarımız bulunur. Açıklaması şöyle
Your application-layer code deals primarily with a LoginContext. Underneath that LoginContext is a set of one or more dynamically configured LoginModules, which handle the actual authentication using the appropriate security infrastructure.
REQUIRED değerinden sonra gelen string LoginModule arayüzünden kalıtan sınıfın initialize() metoduna geçilir. Metodun imzası şöyle
public void initialize(Subject subject,CallbackHandler callbackHandler,
  Map<String,?> sharedState,Map<String,?> options);
options parametresi kullanılarak okunabilir.

Adımlar
Açıklaması şöyle.
Using JAAS authentication from your application typically involves the following steps:

1. Create a LoginContext
2. Optionally pass a CallbackHandler to the LoginContext, for gathering or processing authentication data
3. Perform authentication by calling the LoginContext's login() method
4. Perform privileged actions using the returned Subject (assuming login succeeds)
LoginContext Yaratma
Açıklaması şöyle
1. During initialization, the LoginContext finds the configuration entry "MyExample" in a JAAS configuration file (which you configured) to determine which LoginModules to load (see Figure 2)

2. During login, the LoginContext calls each LoginModule's login() method

3. Each login() method performs the authentication or enlists a CallbackHandler

4. The CallbackHandler uses one or more Callbacks to interact with the user and gather input

5. A new Subject instance is populated with authentication details such as Principals and credentials

Hiç yorum yok:

Yorum Gönder