인프런 커뮤니티 질문&답변

finance님의 프로필 이미지
finance

작성한 질문수

스프링 시큐리티 OAuth2

OAuth 2.0 Token Endpoint 기능 및 특징

사용하지 않을 EndPoint를 Disable할 수 있는 방법이 있을까요?

작성

·

374

0

  • .well-known/openid-configuration을 이용해 endpoint 및 정보들을 확인했는데 많은 default 값들이 존재합니다.

여기서 제가 사용하지 않는 정보들을 disable 하는 방법이 있나요??

  • 아래는 .well-known/openid-configuration 호출 시 받은 정보입니다.

{
    "issuer": "http://127.0.0.1:6080",
    "authorization_endpoint": "http://127.0.0.1:6080/oauth2/authorize",
    "device_authorization_endpoint": "http://127.0.0.1:6080/oauth2/device_authorization",
    "token_endpoint": "http://127.0.0.1:6080/oauth2/token",
    "token_endpoint_auth_methods_supported": [
        "client_secret_basic",
        "client_secret_post",
        "client_secret_jwt",
        "private_key_jwt"
    ],
    "jwks_uri": "http://127.0.0.1:6080/oauth2/jwks",
    "userinfo_endpoint": "http://127.0.0.1:6080/userinfo",
    "end_session_endpoint": "http://127.0.0.1:6080/connect/logout",
    "response_types_supported": [
        "code"
    ],
    "grant_types_supported": [
        "authorization_code",
        "client_credentials",
        "refresh_token",
        "urn:ietf:params:oauth:grant-type:device_code"
    ],
    "revocation_endpoint": "http://127.0.0.1:6080/oauth2/revoke",
    "revocation_endpoint_auth_methods_supported": [
        "client_secret_basic",
        "client_secret_post",
        "client_secret_jwt",
        "private_key_jwt"
    ],
    "introspection_endpoint": "http://127.0.0.1:6080/oauth2/introspect",
    "introspection_endpoint_auth_methods_supported": [
        "client_secret_basic",
        "client_secret_post",
        "client_secret_jwt",
        "private_key_jwt"
    ],
    "code_challenge_methods_supported": [
        "S256"
    ],
    "subject_types_supported": [
        "public"
    ],
    "id_token_signing_alg_values_supported": [
        "RS256"
    ],
    "scopes_supported": [
        "openid"
    ]
}

답변 2

0

정수원님의 프로필 이미지
정수원
지식공유자

음..

spring authorization server 에서 기본적으로 지원하는 기능을 비활성화 하는 부분에 대해서 구체적인 가이드를 저도 보지는 못했습니다.

다만 .well-known/openid-configuration 에 나와 있는 내용들은 인가서버의 각 기능들에 대한 지원여부를 안내하는 것인데 어떤 기능들을 사용하지 않기 위해서 해당 기능을 비활성화 할 수는 있지만 .well-known/openid-configuration 의 전체 내용에서 제외되는 것인지는 저도 확인하지 못했습니다.

이 부분은 조금 더 소스 차원에서 파악해야 할 것 같습니다.

0

안녕하세요, 인프런 AI 인턴입니다.

사용하지 않는 OAuth 인증 서버의 엔드포인트를 비활성화하는 방법에 대해 알려드리겠습니다. Spring Boot 환경에서는 application.properties 또는 application.yml 설정 파일을 통해 필요한 엔드포인트만 활성화하도록 설정할 수 있습니다. 예를 들어, 애플리케이션에 필요하지 않은 엔드포인트를 비활성화하려면 해당 엔드포인트에 대한 프로퍼티를 false로 설정하면 됩니다.

다음은 몇 가지 예시입니다:

Properties 파일 예시:

spring.security.oauth2.authorizationserver.endpoint.authorization-uri.enabled=false
spring.security.oauth2.authorizationserver.endpoint.token-uri.enabled=false
spring.security.oauth2.authorizationserver.endpoint.introspection-uri.enabled=false
spring.security.oauth2.authorizationserver.endpoint.revocation-uri.enabled=false
# 여기에 더 많은 엔드포인트 설정을 추가할 수 있습니다.

Yaml 파일 예시:

spring:
  security:
    oauth2:
      authorizationserver:
        endpoint:
          authorization-uri:
            enabled: false
          token-uri:
            enabled: false
          introspection-uri:
            enabled: false
          revocation-uri:
            enabled: false
          # 여기에 더 많은 엔드포인트 설정을 추가할 수 있습니다.

이와 같이 설정을 추가함으로써 사용하지 않을 엔드포인트를 비활성화할 수 있습니다. 설정의 정확한 키는 사용하고 있는 Spring Boot의 버전과 구성에 따라 달라질 수 있습니다. 공식 문서를 참고하여 관련 프로퍼티를 확인해주시기 바랍니다.

관련된 자세한 내용을 참고하고자 하시면, Spring Boot Reference Documentation - Security Properties에서 추가적인 정보를 얻으실 수 있습니다.

finance님의 프로필 이미지
finance

작성한 질문수

질문하기