Keycloak의 FAPI(Financial-grade API) 대응에 대해(2019/12 update)

4328 단어 OAuthKeycloakFAPI
히타치 제작소 나카무라 유이치

OpenID Foundation에서 책정이 진행되는 프로필인 「Financial-grade API(FAPI)」에의 Keycloak의 대응을 위한 개발을 필자의 팀으로 진행하고 있습니다. 작년(2018년 말 시점)의 상황에 대해서는 이전 기사를 봐 주세요.
본 기사에서는, Keycloak의 FAPI 대응 상황의 이 1년의 update를 기재합니다.

Keycloak의 FAPI 대응 상황 (기능면)



작년에 이어, 히타치의 @tnorimat씨가 중심이 되어 대응을 위한 개발이 행해지고 있습니다. 주로 기능면의 업데이트를 표에 적습니다.


지원되지 않는 항목의 JIRA
개요
Pull Request
지원 버전


KEYCLOAK-9756
요청 객체의 PS256/386/512 서명 알고리즘 지원
5974
6.0.0

KEYCLOAK-10747
PKCE 설정 항목 추가
6135
6.0.0

KEYCLOAK-6748
ID 토큰 암호화

7.0.0


많은 사람에 관계한다고 생각되는 것이 PKCE(RFC7636)의 설정 항목의 추가입니다. Keycloak6.0.0 이전에는, 허가 코드를 취득할 때, PKCE 관련의 파라미터가 없어도 인가 코드가 불출되고 있었습니다. 즉, PKCE 관련 파라미터를 클라이언트측이 붙여 잊는 것을 방지할 수 없었습니다.
Keycloak 7.0.0 이상에서는 관리 콘솔에 아래 그림과 같은 설정 항목이 추가되었습니다.



예를 들어 "S256"을 선택하면 권한 부여 엔드포인트에 대한 클라이언트의 요청에 code_challenge_method=S256 및 code_challenge가 포함되어 있지 않으면 요청이 오류로 돌아갑니다. 이것에 의해, 클라이언트측에서 확실히 PKCE를 사용할 수 있게 되었습니다.

Conformance Test 경로를 향한 상황



지난 1년 동안 OpenID Foundation에서 FAPI에 대해서도 Conformance Test이 출시되었습니다. Keycloak으로도 Conformance test를 통과하는 것이 바람직합니다. OSS보안기술회를 통해 관련하는 일본 기업의 협력을 얻어
결과를 하기 표에 정리했습니다. 에러 처리 등의 세세한 과제가 중심이 되고 있습니다. 13개가 있으며, 그 중 3건은 이미 Keycloak8.0.0에서 지원되었습니다.


지원되지 않는 항목의 JIRA
개요
Pull Request
지원 버전


@tnorimat
JWT에서 클라이언트 인증에 서명 알고리즘 ES256 또는 PS256 지원
KEYCLOAK-11251
8.0.0

6414 , KEYCLOAK-11252

well-known에서 서버 메타 데이터 반환 누수

KEYCLOAK-11253 , 6351

8.0.0

6354
Hybrid 흐름의 일부를 클라이언트로 강제



KEYCLOAK-11254 ~ KEYCLOAK-11255

요청 객체의 오류 처리



KEYCLOAK-11262

KEYCLOAK-11263 오류 처리




미래의 도전



Keycloak도 큰 레벨에서는 FAPI의 Part1과 Part2의 기능은 갖추고 있어 나머지는 conformance test의 경로라고 하는 상태입니다. 한편, 새로운 사양인 CIBA 플로우에 대한 대응에 대해서는, 아직 진행되지 않고, 공헌이 기다리고 있습니다.

좋은 웹페이지 즐겨찾기