WS-Security এর ব্যবহার

Spring Web Services এর মধ্যে Security - স্প্রিং ওয়েব সার্ভিসেস (Spring Web Services) - Java Technologies

344

WS-Security এর ভূমিকা

WS-Security হলো SOAP ওয়েব সার্ভিসগুলোর জন্য একটি নিরাপত্তা স্ট্যান্ডার্ড। এটি SOAP মেসেজের মধ্যে অটেনটিকেশন (Authentication), ইনটেগ্রিটি (Integrity) এবং এনক্রিপশন (Encryption) এর মতো নিরাপত্তা ব্যবস্থা যুক্ত করতে ব্যবহৃত হয়।

স্প্রিং ওয়েব সার্ভিসেসে WS-Security সহজে ইন্টিগ্রেট করা যায়, যা নিরাপত্তার জন্য SOAP মেসেজে সিকিউরিটি হেডার যোগ করে।


WS-Security এর মূল বৈশিষ্ট্য

  • Authentication: ব্যবহারকারীর পরিচয় যাচাই।
  • Encryption: ডেটার গোপনীয়তা রক্ষা করা।
  • Message Integrity: মেসেজের কোনো পরিবর্তন হয়েছে কিনা তা যাচাই করা।
  • Token Support: সিকিউরিটি টোকেন (যেমন: UsernameToken, SAML Token) ব্যবহারের সুযোগ।

স্প্রিং ওয়েব সার্ভিসে WS-Security ব্যবহার

নির্ভরতা (Dependency) যোগ করা

WS-Security এর জন্য প্রয়োজনীয় Maven নির্ভরতা যোগ করতে হবে।

<dependency>
    <groupId>org.springframework.ws</groupId>
    <artifactId>spring-ws-security</artifactId>
    <version>3.1.1</version>
</dependency>

WS-Security Configuration

SecurityPolicy.xml ফাইল তৈরি

SecurityPolicy.xml ফাইলটি মেসেজের নিরাপত্তা কনফিগারেশন সংজ্ঞায়িত করে।

<sp:Wss10 xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
    <sp:MustSupportUsernameToken/>
</sp:Wss10>

Spring Security Configuration

WS-Security কনফিগারেশন একটি Java Config ক্লাসে সেটআপ করা যেতে পারে।

@EnableWs
@Configuration
public class WebServiceSecurityConfig extends WsConfigurerAdapter {

    @Bean
    public XwsSecurityInterceptor securityInterceptor() {
        XwsSecurityInterceptor interceptor = new XwsSecurityInterceptor();
        interceptor.setPolicyConfiguration(new ClassPathResource("securityPolicy.xml"));
        interceptor.setCallbackHandler(securityCallbackHandler());
        return interceptor;
    }

    @Bean
    public SecurityCallbackHandler securityCallbackHandler() {
        return new SecurityCallbackHandler() {
            @Override
            public void handleUsernameToken(String username, String password) throws SecurityException {
                if (!"admin".equals(username) || !"password".equals(password)) {
                    throw new SecurityException("Invalid username or password!");
                }
            }
        };
    }

    @Override
    public void addInterceptors(List<EndpointInterceptor> interceptors) {
        interceptors.add(securityInterceptor());
    }
}

কোড ব্যাখ্যা

  1. XwsSecurityInterceptor:
    • SOAP মেসেজে নিরাপত্তা প্রয়োগের জন্য ব্যবহৃত হয়।
    • setPolicyConfiguration পদ্ধতির মাধ্যমে securityPolicy.xml নির্ধারণ করা হয়।
  2. SecurityCallbackHandler:
    • এটি মেসেজের মধ্যে পাঠানো UsernameToken যাচাই করে।
    • ব্যবহারকারীর পরিচয় নিশ্চিত করার জন্য কাস্টম লজিক প্রয়োগ করা হয়।
  3. addInterceptors:
    • নিরাপত্তা ইন্টারসেপ্টর যোগ করে যা সমস্ত ইনকামিং মেসেজে সিকিউরিটি যাচাই করে।

উদাহরণ SOAP মেসেজ

নিরাপদ রিকোয়েস্ট

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
    <soap:Header>
        <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsse:UsernameToken>
                <wsse:Username>admin</wsse:Username>
                <wsse:Password>password</wsse:Password>
            </wsse:UsernameToken>
        </wsse:Security>
    </soap:Header>
    <soap:Body>
        <GetUserDetails xmlns="http://example.com/user">
            <UserId>12345</UserId>
        </GetUserDetails>
    </soap:Body>
</soap:Envelope>

সুবিধা

  • উন্নত নিরাপত্তা: মেসেজ এনক্রিপশন এবং স্বাক্ষর যুক্ত করে।
  • স্ট্যান্ডার্ড সমর্থন: WS-Security একটি স্ট্যান্ডার্ড যা বিভিন্ন প্ল্যাটফর্মে কার্যকর।
  • কাস্টমাইজেশন: নিজের পছন্দমতো কনফিগারেশন এবং যাচাই ব্যবস্থা সেটআপ করার সুযোগ।

সারাংশ

স্প্রিং ওয়েব সার্ভিসেসে WS-Security ব্যবহার SOAP মেসেজগুলোর নিরাপত্তা বাড়ায়। XwsSecurityInterceptor এবং CallbackHandler এর সাহায্যে সহজেই WS-Security কনফিগার করা যায়। এটি অটেনটিকেশন এবং মেসেজ ইনটেগ্রিটির জন্য কার্যকরী একটি পদ্ধতি।


Content added By
Promotion

Are you sure to start over?

Loading...