Kotlin में प्राधिकरण और प्रमाणीकरण: लाइब्रेरीज़ और सर्वोत्तम अभ्यास

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kotlin में प्राधिकरण और प्रमाणीकरण: उपकरणों का अवलोकन और व्यावहारिक उदाहरण



Kotlin पर आधुनिक वेब-डेवलपमेंट में, एप्लिकेशन की सुरक्षा प्रमाणीकरण (उपयोगकर्ता की पहचान की जाँच) और प्राधिकरण (पहुँच अधिकारों की जाँच) के सही कार्यान्वयन से शुरू होती है। इस लेख में, हम Kotlin में सुरक्षित एप्लिकेशन बनाने के लिए मुख्य लाइब्रेरीज़ और दृष्टिकोणों पर विस्तार से चर्चा करेंगे - सर्वर-साइड (Ktor, Spring Boot) और मोबाइल Android एप्लिकेशन दोनों के लिए।



1. मूल अवधारणाएँ: Authentication बनाम Authorization

प्रमाणीकरण (Authentication) — यह जाँचने की प्रक्रिया है कि उपयोगकर्ता कौन है (लॉगिन + पासवर्ड, टोकन, बायोमेट्रिक्स)।
प्राधिकरण (Authorization) — यह निर्धारित करना है कि प्रमाणित उपयोगकर्ता के लिए कौन से संसाधन और क्रियाएँ उपलब्ध हैं (भूमिकाएँ, अधिकार)।



Kotlin में, दोनों कार्यों को विशेष लाइब्रेरीज़ की मदद से हल किया जाता है, जिनकी हम नीचे चर्चा करेंगे।



2. Ktor में प्रमाणीकरण (सर्वर फ्रेमवर्क)

Ktor — JetBrains का एक आधुनिक एसिंक्रोनस सर्वर है। यह प्रमाणीकरण के लिए एक अंतर्निहित मॉड्यूल ktor-server-auth प्रदान करता है।



निर्भरता स्थापित करना (Gradle)

implementation("io.ktor:ktor-server-auth:$ktor_version")implementation("io.ktor:ktor-server-auth-jwt:$ktor_version") // JWT के लिए


उदाहरण: JWT टोकन द्वारा प्रमाणीकरण

import io.ktor.server.auth.*import io.ktor.server.auth.jwt.*import com.auth0.jwk.JwkProviderimport io.ktor.server.application.*

fun Application.configureAuth() { install(Authentication) { jwt("auth-jwt") { val jwkProvider = JwkProvider("https://your-auth-domain/.well-known/jwks.json") verifier(jwkProvider) validate { credential -> if (credential.payload.audience.contains("my-app")) { JWTPrincipal(credential.payload) } else null } } }}

// रूट्स में:authenticate("auth-jwt") { get("/protected") { val principal = call.principal<JWTPrincipal>() call.respondText("उपयोगकर्ता को पहुँच की अनुमति: ${principal?.payload?.subject}") }}


3. Kotlin के लिए Spring Security

Spring Security — Spring Boot एप्लिकेशन की सुरक्षा के लिए डी-फैक्टो मानक है। Kotlin में इसका उपयोग DSL कॉन्फ़िगरेशन के साथ किया जाता है।



प्रोजेक्ट में जोड़ना (Gradle)

implementation("org.springframework.boot:spring-boot-starter-security")implementation("org.springframework.boot:spring-boot-starter-web")


Kotlin पर SecurityConfig कॉन्फ़िगरेशन

import org.springframework.context.annotation.Beanimport org.springframework.context.annotation.Configurationimport org.springframework.security.config.annotation.web.builders.HttpSecurityimport org.springframework.security.config.annotation.web.configuration.EnableWebSecurityimport org.springframework.security.core.userdetails.Userimport org.springframework.security.provisioning.InMemoryUserDetailsManagerimport org.springframework.security.web.SecurityFilterChain

@Configuration@EnableWebSecurityclass SecurityConfig {

@Bean fun filterChain(http: HttpSecurity): SecurityFilterChain { http .authorizeHttpRequests { auth -> auth.requestMatchers("/admin/**").hasRole("ADMIN") .requestMatchers("/user/**").hasAnyRole("USER", "ADMIN") .anyRequest().authenticated() } .httpBasic() return http.build() }

@Bean fun users(): InMemoryUserDetailsManager { val user = User.withDefaultPasswordEncoder() .username("user").password("pass").roles("USER").build() val admin = User.withDefaultPasswordEncoder() .username("admin").password("admin").roles("ADMIN").build() return InMemoryUserDetailsManager(user, adm

अनुशंसाएँ