programing

Spring Social로 휴식 인증을 하는 방법은?

newsource 2023. 9. 17. 13:15

Spring Social로 휴식 인증을 하는 방법은?

Spring security 예제(및 spring security java config)에 나와 있는 Spring Social + Spring security를 구현했습니다.당시 몇 가지 문제를 보고했습니다(https://jira.springsource.org/browse/SEC-2204) 참조). 이 문제는 모두 해결되었으며 보안은 정상적으로 작동합니다.

그러나 보안 구현을 변경하고 RESTful 인증을 사용하고 싶습니다.Spring oauth/oauth2(http://projects.spring.io/spring-security-oauth/) 에서 이 문제를 해결하지만 해당 사진에 Spring Social이 어떻게 들어맞을지 알 수 없습니다.Spring social이 페이스북/트위터와 oauth로 막후에서 이야기하지만, Spring social의 가입 양식이나 다른 특징들이 휴식을 위한 API를 위해 만들어진 것은 아니라고 생각합니다.

어떤 예나 아이디어라도 분명히 도움이 될 것입니다.

이 게시물 업데이트: (4/6/2014)

  • 저는 제 API를 소비하는 (PHP) 사이트를 만들었습니다.
  • 이 PHP 사이트(클라이언트 사이트라고 하자)는 페이스북 PHP SDK를 사용하여 자체 사용자를 등록합니다.이것은 자신의 구성원들을 모으는 완전히 별개의 방법입니다.
  • 되면 사용자 이름, first name 및 및 와 함께 type 되면 합니다 에 를 하고 와 가 합니다 하고 가 client_credentials인증.
  • 이 전달된 사용자 데이터는 메인 시스템에 사용자 레코드를 생성합니다! (메인 어플리케이션)
  • 이후를 통해 하여 ① OAuth2 grant type password를 전송할 마다 ② OAuth2 grant type password를 합니다.client_id,client_secret비밀번호, "Token이 할 수 있습니다. , "Authentication Token" 은 "Authentication Token" 은 "Authentication Token" 은 "Authentication Token" 은 "Authentication Token 은 "Authentication Token" 입니다.

갈 길이 멀어 보이지만 메인 시스템에 사용자 기록을 남기는 문제를 해결합니다.다른 방법이 있는지 궁금합니다.조언 좀 해주세요.

그래서 당신은 Oauth2를 당신의 어플리케이션에 사용하기를 원하고, 비밀번호 흐름을 사용하기를 원합니다.spring security oauth2-resource-server 프로젝트를 사용하여 리소스 서버를 구현할 수 있습니다.리소스 서버에서 ResourceOwnerPasswordResourceDetails를 사용하여 client_id, client_secret, 사용자 이름 및 암호를 제공할 수 있습니다. Ohuth2RestTemplate를 사용하여 리소스 서버를 호출할 수 있습니다.

춘사회는 2019년에 폐지되었습니다.질문에서 드러났던 경우(이 평가절하 훨씬 전), 가장 쉬운 솔루션은 "소셜" ID를 즉시 연합할 수 있는 권한 부여 서버를 사용하는 것입니다.키클로크는 무료 "온프레미스" 샘플이며 Auth0 a SaaS 원(프리티어 포함)입니다.좋아하는 검색 엔진에서 "OIDC authorization-server"를 검색하고 필요에 가장 잘 맞는 서버를 선택하기만 하면 됩니다.

REST API는 다음을 사용하여 리소스 서버로 구성됩니다.spring-boot-starter-oauth2-resource-server. 거기 샘플들.

와, 이미 다른 사람들이 제공하는 좋은 정보들이 많지만, Spring Docs는 Google과 Okta를 인증할 수 있는 샘플 구성 yaml 파일을 제공합니다. 아래 링크(이미 제공된 경우 사과)를 참조하십시오.

https://docs.spring.io/spring-security/reference/5.8/reactive/oauth2/login/core.html#webflux-oauth2-login-common-oauth2-provider
Configuring Custom Provider Properties
There are some OAuth 2.0 Providers that support multi-tenancy, which results in different protocol endpoints for each tenant (or sub-domain).

For example, an OAuth Client registered with Okta is assigned to a specific sub-domain and have their own protocol endpoints.

For these cases, Spring Boot 2.x provides the following base property for configuring custom provider properties: spring.security.oauth2.client.provider.[providerId].

The following listing shows an example:
For these cases, Spring Boot 2.x provides the following base property for configuring custom provider properties: spring.security.oauth2.client.provider.[providerId].

The following listing shows an example:

spring:
  security:
    oauth2:
      client:
        registration:
          okta:
            client-id: okta-client-id
            client-secret: okta-client-secret
        provider:
          okta: 
            authorization-uri: https://your-subdomain.oktapreview.com/oauth2/v1/authorize
            token-uri: https://your-subdomain.oktapreview.com/oauth2/v1/token
            user-info-uri: https://your-subdomain.oktapreview.com/oauth2/v1/userinfo
            user-name-attribute: sub
            jwk-set-uri: https://your-subdomain.oktapreview.com/oauth2/v1/keys

기본 속성(스프링).security.oauth2.client.security.okta)를 사용하면 프로토콜 끝점 위치를 사용자 지정으로 구성할 수 있습니다.

언급URL : https://stackoverflow.com/questions/20033549/how-to-do-rest-authentication-with-spring-social