2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Spring Boot परियोजनायां एकल-साइन-ऑन्-समाधानं एकीकृत्य स्थापयन्तु
नमस्कारः सर्वेभ्यः, अहं Weizhuan Taoke System 3.0 इत्यस्य सम्पादकः अस्मि, अपि च अहम् एकः प्रोग्रामरः अपि अस्मि यः शिशिरे दीर्घं johns न धारयति, परन्तु तदपि शीते शीतलं भवितुम् अर्हति!
आधुनिक उद्यम-अनुप्रयोगेषु, एकल-साइन-ऑन् (SSO) समाधानं प्रमुख-प्रौद्योगिकी अस्ति यत् सुनिश्चितं करोति यत् उपयोक्तारः निर्विघ्नतया प्रवेशं कर्तुं शक्नुवन्ति, बहु-अनुप्रयोगेषु प्रवेशं च कर्तुं शक्नुवन्ति । अस्मिन् लेखे विस्तरेण परिचयः भविष्यति यत् उपयोक्तृ-अनुभवं प्रणाली-सुरक्षां च सुधारयितुम् Spring Boot परियोजनायां एकं साइन-ऑन्-समाधानं कथं एकीकृत्य भवति ।
एकल-साइन-ऑन्-समाधानं एकीकृत्य प्रथमं भवद्भिः प्रथमं उपयुक्तं एक-साइन-ऑन्-समाधानं चिन्वितुं आवश्यकम् । सामान्यविकल्पेषु OAuth2-आधारितसमाधानं (यथा Spring Security OAuth अथवा Spring Security + OAuth2 Client), एकीकृतप्रमाणीकरणाधिकारिणां उपयोगः (यथा Keycloak) च अन्तर्भवति निम्नलिखितम् उदाहरणरूपेण Spring Security + OAuth2 Client इत्यस्य उपयोगं दर्शयति ।
Spring Boot परियोजनायां वयं Spring Security तथा OAuth2 Client विन्यस्य एकल-साइन-ऑन्-कार्यं कार्यान्वितुं शक्नुमः । अत्र सरलं विन्यास उदाहरणम् अस्ति :
package cn.juwatech.taokua.system.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.oauth2.client.registration.ClientRegistration;
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
import org.springframework.security.oauth2.client.registration.InMemoryClientRegistrationRepository;
import org.springframework.security.oauth2.core.AuthorizationGrantType;
import org.springframework.security.oauth2.core.ClientAuthenticationMethod;
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.defaultSuccessUrl("/dashboard")
.and()
.logout()
.logoutSuccessUrl("/")
.permitAll();
}
@Bean
public ClientRegistrationRepository clientRegistrationRepository() {
return new InMemoryClientRegistrationRepository(githubClientRegistration());
}
private ClientRegistration githubClientRegistration() {
return ClientRegistration.withRegistrationId("github")
.clientId("your-client-id")
.clientSecret("your-client-secret")
.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC)
.authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
.redirectUriTemplate("{baseUrl}/login/oauth2/code/{registrationId}")
.scope("read:user")
.authorizationUri("https://github.com/login/oauth/authorize")
.tokenUri("https://github.com/login/oauth/access_token")
.userInfoUri("https://api.github.com/user")
.userNameAttributeName("id")
.clientName("GitHub")
.build();
}
}
यदि भवान् एकीकृतप्रमाणपत्रप्राधिकरणस्य उपयोगं कर्तुं चयनं करोति, यथा Keycloak, तर्हि भवान् एतानि पदानि अनुसृत्य एकीकृतुं शक्नोति:
परियोजनायां विन्यस्तं कृत्वा उपयोक्तारः कस्यापि अनुप्रयोगस्य अभिगमनेन स्वस्य प्रमाणपत्रस्य उपयोगेन प्रवेशं कर्तुं शक्नुवन्ति । प्रणाली स्वयमेव उपयोक्तारं प्रमाणीकरणाधिकारिणं प्रति निर्देशयिष्यति यत् प्रमाणीकरणं कर्तुं प्राधिकरणं च प्राप्तुं शक्नोति, ततः पुनः मूल-अनुप्रयोगं प्रति पुनः निर्दिशति ।
अस्मिन् लेखे Spring Boot परियोजनायां एकं साइन-ऑन-समाधानं कथं एकीकृत्य भवति इति वर्णितम् अस्ति, OAuth2 इत्यस्य आधारेण सरलं उदाहरणविन्यासं प्रदाति, प्रमाणीकरणकेन्द्रस्य एकीकरणस्य विकल्पस्य उल्लेखः च कृतः अस्ति एतेषां पदानां माध्यमेन विकासकाः सुरक्षितं कुशलं च उपयोक्तृप्रमाणीकरणं प्राधिकरणकार्यं च सहजतया कार्यान्वितुं शक्नुवन्ति ।
Micro-earning Taoke System 3.0 इत्यस्य सम्पादकेन निर्मितम्, पुनर्मुद्रणकाले कृपया स्रोतः सूचयन्तु!