내 응용 프로그램에 OAuth2를 사용하려고합니다. 다음과 같이 내가 구현하기 위해 노력하고있어 아키텍처는 다음과 같습니다스프링 부트 OAuth2 싱글 로그 오프 (로그 아웃)
이- 난 내 자신의 (만이) 인증 서버해야합니다
- 일부 클라이언트 권한 부여 서버를 사용하여 리소스에 대한 액세스를 확인하는
- 일부 자원 앱 인증을 위해 사용자를 권한 부여 서버로 리디렉션하는 앱 (웹, 모바일)은 성공하면 API의 자원 응용 프로그램을 사용합니다.
지금까지 나는 3 개의 기본 응용 프로그램 (1 개의 인증 서버, 1 개의 자원 서버 및 1 개의 클라이언트) 사이에서이 상호 작용을 구현했습니다. 내가 작동하지 않는 것은 로그 아웃 기능입니다. Dave Syer가 자신의 자습서에서 설명한 "notoriously tricky problem"을 읽었지 만,이 경우 로그 아웃 후 다시 로그인해야합니다. 액세스 토큰과 새로 고침 토큰을 몇 초 동안 보내려고했지만 만료시 다시 로그인하라는 메시지가 표시되지 않고 클라이언트 응용 프로그램에서 NPE가 표시됩니다. 또한이 post에서 제안 된 솔루션을 토큰 저장소에서 토큰을 제거하려고 시도했지만 작동하지 않습니다. 싱글 사인 오프는이 구현에서 바람직한 행동입니다. Spring Boot Oauth2를 사용하여 어떻게 이것을 할 수 있습니까? 어떤 이유로 든 가능하지 않다면 스프링 부트를 사용하여 중앙 집중식 보안을 구현하는 데 사용할 수있는 대안은 무엇입니까?
미리 감사드립니다.
이 간단한 대답을 통해 간단한 해결책을 얻을 수있었습니다. –
이 코드는 무엇을하고 있습니까? 클라이언트 응용 프로그램 (웹 사이트)에서 로그 아웃하면 하나의 인증 서버에서 사용자가 로그 아웃됩니까? 사용자가 여러 클라이언트 응용 프로그램에 로그인했을 때 그 중 하나에서 로그 아웃하면 모든 클라이언트 응용 프로그램에서 로그 아웃하게됩니다. – eugene
@eugene 나는이 솔루션을 2 개의 클라이언트 응용 프로그램을 사용하여 테스트했으며 하나에서 로그 아웃하면 다른 클라이언트에 영향을주지 않습니다. 이 솔루션의 기능은 로그 아웃을 클릭 한 다음 다시 로그인을 클릭하면 자격 증명을 다시 입력해야한다는 것입니다. [ "악명 높은 까다로운 문제"] (https://spring.io/blog/2015/02/03/sso-with-oauth2-angular-js-and-spring-security-part-v#)를 해결할 대안이 있습니까? 로그 아웃 경험). –