2017-10-05 2 views
0

저는 오픈 아이디 공급자이며이 제공자는 keycloak의 신원 브로커로 사용합니다. 나는 브로커에서 keycloak으로 보낸 역할 (클레임)을 매핑하려고한다. (그리고 keycloak은 jwt에서 매핑 된 역할을 보낸다.) 구현하고 키 맵에 사용자 정의 매퍼 (hardcodedmapper, keycloak의 attributemapper)를 추가하는 방법을 알고 싶습니다. 내가 할 수 있을까? 감사합니다.Keycloak는 사용자 정의 신원 제공 업체 매퍼를 만듭니다.

+0

[Keycloak 사용자 정의 OpenID Connect Identity 제공자 매퍼]의 가능한 복제본 (https://stackoverflow.com/questions/46584325/keycloak-custom-openid-connect-identity-provider-mapper) –

+0

제발, 질문 두 번 게시하지 마십시오. . 질문이나 기타 사항을 편집 할 수 있습니다. 대답이 오랜 시간이 걸리는 경우 keycloak 사용자 maillist에 문의하십시오. –

+0

그것에 대한 해결책이나 제안이 있습니까? – Batuhan

답변

1

provider 클래스를 새로 작성하여 기존 org.keycloak.broker.saml.mappers.AttributeToRoleMapper 클래스를 확장했습니다.

jar 파일을 만들 때 jar 파일에 META-INF 폴더라는 서비스 폴더가 있는지 확인하십시오.

이 폴더 내에 org.keycloak.broker.provider.IdentityProviderMapper이라는 간단한 텍스트 파일을 만들고이 파일에 새 제공자 클래스의 전체 이름 (예 : package.Classname)을 추가합니다.

일단 컴파일되면 Keycloak 루트 폴더 아래의 공급자 폴더에 파일을 놓습니다. 컨테이너를 다시 시작하십시오.

+0

안녕하세요, 답변 해 주셔서 감사합니다. 예제 코드 블록 또는 샘플 제공자 클래스 (및/또는 프로젝트)가 있습니까? 먼저 Java 라이브러리를 만들고 "org.keycloak.broker.saml.mappers.AttributeToRoleMapper"클래스를 확장 한 다음 빌드합니다. keycloak_root/provider에 놓으십시오. 내가 맞습니까? 명확하게 이해할 수 없습니다.이 문장을 설명하십시오. "항아리를 만들 때 항아리에 서비스라는 폴더가 있는지 확인하십시오. META-INF 폴더." – Batuhan