gRPC और उच्च-प्रदर्शन वाले एपीआई · पाठ

सुरक्षा के लिए इंटरसेप्टर

सेवाओं में प्रमाणीकरण और लॉगिंग जैसी सुरक्षा संबंधी चिंताओं को केंद्रीकृत करने के लिए gRPC इंटरसेप्टर का उपयोग करें।

पाठ 3, कुल 4 में से11 चरण

सुरक्षा के लिए इंटरसेप्टर, CoddyKit पर gRPC और उच्च-प्रदर्शन वाले एपीआई का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह gRPC और उच्च-प्रदर्शन वाले एपीआई सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

gRPC Interceptors का परिचय

Interceptors gRPC की एक शक्तिशाली सुविधा हैं। ये middleware की तरह काम करते हैं और अनुरोधों तथा प्रतिक्रियाओं का निरीक्षण और उनमें बदलाव कर सकते हैं। इनके माध्यम से आप कई सेवा कॉल पर लागू होने वाले सामान्य तर्क को एक ही स्थान पर रख सकते हैं।

इन्हें ऐसे द्वार या जाँच-बिंदु समझिए, जिनसे आपके अनुरोध होकर गुजरते हैं।

Interceptors का उपयोग क्यों करें?

Interceptors विभिन्न हिस्सों में लागू होने वाली चिंताओं को सँभालने के लिए बिल्कुल उपयुक्त हैं। हर सेवा method में कोड दोहराने के बजाय आप इन कार्यों को सँभाल सकते हैं:

  • प्रमाणीकरण
  • प्राधिकरण
  • लॉगिंग और निगरानी
  • अनुरोध सत्यापन

इससे आपकी मुख्य सेवा का तर्क साफ़ और केंद्रित रहता है।

सर्वर Interceptors

एक सर्वर interceptor gRPC सर्वर और आपकी वास्तविक सेवा के कार्यान्वयन के बीच स्थित होता है। यह आपकी सेवा method को कॉल किए जाने से पहले तर्क चलाता है, जिससे आप ये कार्य कर सकते हैं:

  • आने वाले अनुरोधों का सत्यापन करना
  • प्रमाणीकरण टोकन की जाँच करना
  • अनुरोध का संदर्भ जोड़ना

क्लाइंट Interceptors

एक क्लाइंट interceptor क्लाइंट की ओर काम करता है और अनुरोध सर्वर को भेजे जाने से पहले तर्क चलाता है। यह इन कार्यों के लिए उपयोगी है:

  • बाहर भेजे जाने वाले अनुरोधों में प्रमाणीकरण टोकन जोड़ना
  • ट्रेसिंग हेडर शामिल करना
  • पुनः प्रयास का तर्क लागू करना
  • अनुरोध मेटाडेटा में बदलाव करना

सर्वर Interceptor की संरचना

सर्वर पर कोई interceptor ServerCallHandler को घेरता है। उसे ServerCall और Metadata प्राप्त होते हैं और वह तय कर सकता है कि कॉल को आगे बढ़ाना है या समाप्त करना है। इसकी वैचारिक संरचना इस प्रकार है:

class AuthInterceptor implements ServerInterceptor {
  public <ReqT, RespT> ServerCall.Listener<ReqT>
      interceptCall(ServerCall<ReqT, RespT> call,
                    Metadata headers,
                    ServerCallHandler next) {
    // Check headers for auth token
    if (isValid(headers)) {
      return next.startCall(call, headers);
    } else {
      call.close(Status.UNAUTHENTICATED, headers);
      return new ServerCall.Listener<ReqT>() {}; // Block call
    }
  }
}

क्लाइंट Interceptor की संरचना

क्लाइंट पर कोई interceptor आमतौर पर ClientInterceptor को लागू करता है। वास्तविक RPC कॉल किए जाने से पहले यह आपको CallOptions या Metadata में बदलाव करने देता है।

class ApiKeyInterceptor implements ClientInterceptor {
  public <ReqT, RespT> ClientCall<ReqT, RespT>
      interceptCall(MethodDescriptor<ReqT, RespT> method,
                    CallOptions callOptions,
                    Channel next) {
    return new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(
        next.newCall(method, callOptions)) {
      @Override
      public void start(ClientCall.Listener<RespT> responseListener,
                        Metadata headers) {
        // Add API key to headers
        headers.put(API_KEY_METADATA_KEY, "my-secret-key");
        super.start(responseListener, headers);
      }
    };
  }
}

सिम्युलेटेड सर्वर प्रमाणीकरण जाँच

आइए, प्रमाणीकरण टोकन की जाँच करने वाले सर्वर interceptor का अनुकरण करें। यदि टोकन अनुपस्थित या अमान्य है, तो 'अनुरोध' रोक दिया जाता है और सेवा method को कॉल नहीं किया जाता।

public class Main {
    // Simulate an interceptor's core logic
    static void authInterceptor(String metadata, Runnable nextCall) {
        System.out.println("Interceptor: Checking metadata...");
        if (metadata != null && metadata.contains("auth_token:valid")) {
            System.out.println("Interceptor: Authentication successful!");
            nextCall.run(); // Proceed to the actual service method
        } else {
            System.out.println("Interceptor: Authentication failed! Request blocked.");
        }
    }

    // Simulate the actual service method
    static void actualServiceMethod() {
        System.out.println("Service: Request processed successfully!");
    }

    public static void main(String[] args) {
        System.out.println("--- Valid Request ---");
        authInterceptor("auth_token:valid", Main::actualServiceMethod);

        System.out.println("\n--- Invalid Request ---");
        authInterceptor("auth_token:invalid", Main::actualServiceMethod);

        System.out.println("\n--- Missing Token ---");
        authInterceptor(null, Main::actualServiceMethod);
    }
}

सिम्युलेटेड क्लाइंट API कुंजी

अब आइए, ऐसे क्लाइंट interceptor का अनुकरण करें जो अनुरोध को सर्वर पर भेजे जाने से पहले उसमें API कुंजी अपने-आप जोड़ देता है। इससे सुनिश्चित होता है कि हर कॉल में आवश्यक प्रमाण-पत्र शामिल हों।

public class Main {
    // Simulate an interceptor that adds metadata
    static String addApiKeyInterceptor(String existingMetadata, String apiKey, String methodName) {
        System.out.println("Client Interceptor: Adding API key for " + methodName);
        return (existingMetadata != null ? existingMetadata + ", " : "") + "api_key:" + apiKey;
    }

    // Simulate sending a request
    static void sendRequest(String metadata, String methodName) {
        System.out.println("Client: Sending request to " + methodName + " with metadata: [" + metadata + "]");
        // In a real gRPC call, this metadata would be sent to the server
    }

    public static void main(String[] args) {
        String initialMetadata = "user_id:123";
        String apiKey = "my_secret_key_123";
        String targetMethod = "/MyService/SayHello";

        // Apply client interceptor
        String finalMetadata = addApiKeyInterceptor(initialMetadata, apiKey, targetMethod);

        // Send the request with enhanced metadata
        sendRequest(finalMetadata, targetMethod);
    }
}

Interceptors को श्रृंखला में जोड़ना

आप किसी gRPC channel या सर्वर पर कई interceptors लागू कर सकते हैं। वे एक श्रृंखला बनाते हैं और जिस क्रम में जोड़े गए हैं, उसी क्रम में चलते हैं। इससे अनुरोधों की मॉड्यूलर और परतदार प्रक्रिया संभव होती है।

  • पहला interceptor प्रक्रिया करता है, फिर दूसरे को सौंप देता है।
  • दूसरा प्रक्रिया करता है, फिर सेवा (या अगले interceptor) को सौंप देता है।
  • आप interceptors को जिस क्रम में जोड़ते हैं, वह महत्वपूर्ण है!

Interceptor के उपयोग के मामले

आपकी gRPC सेवाओं को बेहतर बनाने के लिए interceptors अत्यंत बहुमुखी हैं। इनमें से gRPC interceptors के सुरक्षा-संबंधी सामान्य उपयोग के मामले कौन-से हैं?

पुनरावलोकन: सुरक्षा के लिए Interceptors

इंटरसेप्टर आपके gRPC अनुरोध और प्रतिक्रिया प्रवाह में तर्क शामिल करने का एक शक्तिशाली और केंद्रीकृत तरीका प्रदान करते हैं। प्रमाणीकरण, प्राधिकरण और ऑडिटिंग जैसी सुरक्षा सुविधाएँ लागू करने में इनका बहुत महत्व है, क्योंकि इससे आपकी सेवा का कोड साफ़ रहता है और व्यावसायिक तर्क पर केंद्रित रहता है।

इंटरसेप्टर का उपयोग करके आप अधिक मज़बूत, रखरखाव योग्य और सुरक्षित gRPC अनुप्रयोग बना सकते हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ gRPC और उच्च-प्रदर्शन वाले एपीआई सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “सुरक्षा के लिए इंटरसेप्टर” पाठ निःशुल्क है?

हाँ—“सुरक्षा के लिए इंटरसेप्टर” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“सुरक्षा के लिए इंटरसेप्टर” में मैं क्या सीखूँगा?

सेवाओं में प्रमाणीकरण और लॉगिंग जैसी सुरक्षा संबंधी चिंताओं को केंद्रीकृत करने के लिए gRPC इंटरसेप्टर का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ gRPC और उच्च-प्रदर्शन वाले एपीआई का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या gRPC और उच्च-प्रदर्शन वाले एपीआई शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर gRPC और उच्च-प्रदर्शन वाले एपीआई शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“सुरक्षा के लिए इंटरसेप्टर” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर gRPC और उच्च-प्रदर्शन वाले एपीआई पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. gRPC के लिए TLS/SSL
  2. प्रमाणीकरण और प्राधिकरण
  3. सुरक्षा के लिए इंटरसेप्टर
  4. सेवा-सेवा प्रमाणीकरण के लिए म्यूचुअल TLS (mTLS)
← gRPC और उच्च-प्रदर्शन वाले एपीआई पर वापस जाएँ