Keycloak
JBoss Keycloak 시스템은 SAML 및 OpenID Connect를 통한 애플리케이션과의 통합을 지원하는 널리 사용되는 오픈 소스 신원 관리 시스템입니다. 또한 LDAP 또는 다른 SAML 제공자와 SAML 또는 OpenID Connect를 지원하는 애플리케이션 간의 신원 브로커로 작동할 수 있습니다.
다음은 Keycloak에서 새 클라이언트 항목을 구성하고 Casdoor를 구성하여 Keycloak 구성을 통해 액세스 권한이 부여된 Keycloak 사용자가 UI 로그인을 허용하는 방법에 대한 예입니다.
Keycloak 구성
이 예제에서는 다음과 같은 구성 선택 사항과 가정을 합시다:
- 당신이 로컬에서 개발 모드로 Casdoor를 실행하고 있다고 가정합니다. Casdoor UI는
http://localhost:7001
에서 사용할 수 있고 서버는http://localhost:8000
에서 사용할 수 있습니다. 필요에 따라 적절한 URL로 교체하십시오. - 당신이 로컬에서 Keycloak를 실행하고 있다고 가정합니다. Keycloak UI는
http://localhost:8080/auth
에서 사용할 수 있습니다. - 그에 따라 이 배포를 위한 SP ACS URL은 다음과 같습니다:
http://localhost:8000/api/acs
. - 우리의 SP Entity ID는 같은 URL을 사용할 것입니다:
http://localhost:8000/api/acs
.
기본 영역을 사용하거나 새 영역을 만들 수 있습니다.
Keycloak에 클라이언트 항목 추가
Keycloak 클라이언트에 대한 자세한 내용은 Keycloak 문서를 참조하십시오.
메뉴에서 클라이언트를 클릭한 다음 생성을 클릭하여 클라이언트 추가 페이지로 이동합니다. 다음과 같이 필드를 채웁니다:
- 클라이언트 ID:
http://localhost:8000/api/acs
- 이것은 나중에 Casdoor 구성에서 사용될 SP Entity ID가 될 것입니다. - 클라이언트 프로토콜:
saml
. - 클라이언트 SAML 엔드포인트:
http://localhost:8000/api/acs
- 이 URL은 Keycloak 서버가 SAML 요청과 응답을 보낼 위치입니다. 일반적으로, 애플리케이션은 SAML 요청을 처리하기 위한 하나의 URL을 가지고 있습니다. 클라이언트의 설정 탭에서 여러 URL을 설정할 수 있습니다.
저장을 클릭합니다. 이 작업은 클라이언트를 생성하고 설정 탭으로 이동시킵니다.
다음은 설정의 일부입니다:
- 이름 -
Casdoor
. 이것은 오직 Keycloak UI에서 Keycloak 사용자에게 친숙한 이름을 표시하는 데 사용됩니다. 당신이 선호하는 어떤 이름이든 사용할 수 있습니다. - 활성화 -
on
을 선택합니다. - Authn 문장 포함 -
on
을 선택합니다. - 문서 서명 -
on
을 선택합니다. - 주장 서명 -
off
을 선택합니다. - 주장 암호화 -
off
을 선택합니다. - 클라이언트 서명 필요 -
off
을 선택합니다. - 이름 ID 형식 강제 -
on
을 선택합니다. - 이름 ID 형식 -
username
을 선택합니다. - 유효한 리디렉션 URI -
http://localhost:8000/api/acs
추가. - 마스터 SAML 처리 URL -
http://localhost:8000/api/acs
. - 세밀한 SAML 엔드포인트 구성
- Assertion Consumer Service POST 바인딩 URL -
http://localhost:8000/api/acs
. - Assertion Consumer Service Redirect 바인딩 URL -
http://localhost:8000/api/acs
.
- Assertion Consumer Service POST 바인딩 URL -
구성을 저장합니다.
authn 요청에 서명하려면 클라이언트 서명 필요 옵션을 활성화하고 직접 생성한 인증서를 업로드해야 합니다. Casdoor에서 사용되는 개인 키와 인증서, token_jwt_key.key
와 token_jwt_key.pem
은 object 디렉토리에 위치해 있습니다. Keycloak에서는 키 탭을 클릭하고, 가져오기 버튼을 클릭하고, 아카이브 형식을 인증서 PEM으로 선택하고 인증서를 업로드해야 합니다.
설치 탭을 클릭합니다.
Keycloak <= 5.0.0의 경우, 형식 옵션 - SAML 메타데이터 IDPSSODescriptor를 선택하고 메타데이터를 복사합니다.
Keycloak 6.0.0+의 경우, 포맷 옵션 - Mod Auth Mellon files를 선택하고 다운로드를 클릭합니다. 다운로드한 .zip을 압축 해제하고, idp-metadata.xml
을 찾아 메타데이터를 복사합니다.
Casdoor에서 구성
Casdoor에 새로운 제공자를 생성합니다.
카테고리를 SAML로, 유형을 Keycloak으로 선택합니다. 메타데이터의 내용을 복사하고 메타데이터 필드에 붙여넣습니다. 파싱 버튼을 클릭하면 엔드포인트, IdP, 발행자 URL의 값이 자동으로 생성됩니다. 마지막으로, 저장 버튼을 클릭합니다.
Keycloak에서 클라이언트 서명 필요 옵션을 활성화하고 인증서를 업로드하면, Casdoor에서 요청 서명 옵션을 활성화해야 합니다.
Casdoor에서 구성하려는 애플리케이션을 편집합니다. 방금 추가한 제공자를 선택하고 저장 버튼을 클릭합니다.
효과 검증
방금 구성한 애플리케이션으로 이동하면 로그인 페이지에 Keycloak 아이콘이 표시됩니다.
아이콘을 클릭하면 Keycloak 로그인 페이지로 리디렉션됩니다. 인증에 성공하면 Casdoor에 로그인됩니다.