Java 백엔드 개발은 항상 엔터프라이즈 애플리케이션 개발의 주류였습니다. 실제 개발에서는 데이터 및 사용자 보안을 보장하기 위해 API를 인증하고 승인해야 하는 경우가 많습니다. JAAS(Java 인증 및 권한 부여 서비스)는 Java에서 제공하는 ID 인증 및 권한 부여를 구현하는 방법입니다.
JAAS란
JAAS는 Java 기술로 제공되는 보안 프레임워크로, 인증 및 권한 부여를 구현하기 위한 공통 API 및 SPI를 제공합니다. Java 애플리케이션과 웹 애플리케이션 모두 JAAS를 사용하여 보안 인증 및 권한 부여를 구현할 수 있습니다.
JAAS에는 제목, 인증, 권한 부여라는 세 가지 핵심 개념이 포함되어 있습니다.
주체는 사용자 또는 서비스를 나타내며 하나 이상의 ID(주체)와 여러 개의 적절한 권한(허가)을 갖습니다. Subject는 JAAS의 핵심 클래스이며 애플리케이션의 모든 엔터티를 나타냅니다.
인증이란 주체의 신원을 확인하는 것을 의미합니다. 이는 Username 및 PasswordCredential과 같은 자격 증명 세트로 구성됩니다. 자격 증명은 비밀번호, 디지털 인증서, 지문 등 무엇이든 될 수 있습니다.
인증은 주체에게 리소스에 액세스하거나 작업을 수행할 수 있는 권한을 부여하는 프로세스를 나타냅니다. 권한은 파일 읽기 또는 소켓 연결 수락과 같이 JVM(Java Virtual Machine)에 캡처된 단일 작업을 나타냅니다.
API 인증 및 승인을 위해 JAAS를 사용하는 방법
먼저 JAAS 구현 모듈을 구성해야 합니다. JAAS는 여러 구현 모듈을 지원하며 가장 일반적으로 사용되는 것은 파일 기반 구현 모듈입니다. 다음은 파일 기반 JAAS 구성 예입니다.
Sample { com.mycompany.security.SampleLoginModule required; };
여기서 Sample은 구현 모듈의 이름이고 com.mycompany.security.SampleLoginModule은 LoginModule 인터페이스를 구현하는 Java 클래스 이름이며 필수는 모듈이 다음과 같아야 함을 나타냅니다. 인증 과정에서 실행됩니다.
다음으로 Java에서는 LoginContext 클래스를 사용하여 인증 및 권한 부여를 구현해야 합니다. 코드 예시는 다음과 같습니다.
LoginContext lc = new LoginContext("Sample", new CallbackHandler() { public void handle(Callback[] callbacks) { // ... // 这里实现回调处理逻辑 // ... } }); try { lc.login(); Subject subject = lc.getSubject(); // 身份验证成功,subject中包含了身份和权限 } catch (LoginException le) { // 身份验证失败 }
위 코드에서 볼 수 있듯이 먼저 LoginContext 객체를 생성하고 여기에 구현 모듈과 콜백 핸들러를 전달합니다. 콜백 핸들러에서는 인증에 필요한 콜백을 처리할 수 있습니다.
그런 다음 LoginContext의 로그인 메소드를 호출하여 인증 및 권한 부여를 수행합니다. 확인이 성공하면 LoginContext에서 Subject 개체를 가져와 후속 요청에서 이를 사용하여 API 권한을 확인할 수 있습니다.
마지막으로 사용자 권한을 확인하기 위해 API의 Subject 개체를 사용해야 합니다. 예:
Subject subject = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (subject.isPermitted("read_data")) { // 允许访问数据 } else { // 拒绝访问数据 }
위 코드에서는 Spring Security 프레임워크의 SecurityContextHolder를 사용하여 Subject 개체를 가져오고 isPermitted를 사용합니다. 권한이 있는지 확인하는 방법입니다.
결론
인증 및 승인을 위해 JAAS를 사용하는 것은 Java 백엔드 개발의 표준 접근 방식입니다. 공통 API 및 SPI를 제공하므로 개발자가 API 보안을 쉽게 구현할 수 있습니다. 이 기사가 API 인증 및 승인을 위해 JAAS를 사용하는 방법을 이해하는 데 도움이 되기를 바랍니다.
위 내용은 Java 백엔드 개발: Java 인증 및 권한 부여 서비스를 사용한 API 인증 및 권한 부여의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!