OIDC 인증 - KAFE 기반

국내 연구교육기관의 사용자 및 서비스 연계 이용 방법

예) 대학교 내부인을 위한 홈페이지에 SSO 손쉽게 붙이기

OIDC 인증 - auth0 기반 과 차이점을 기술함



국내 ID 연계 서비스 제공기관 확인

KAFE 에 연동된, IdP를 제공하는 국내 연구교육기관 목록을 확인한다. 해당 목록에 없는 기관은 ID 연계 서비스를 진행할 수 없다.

https://met.refeds.org/met/federation/kafe/?entity_type=IDPSSODescriptor


KAFE 계정 생성

SAML 또는 OIDC 서비스를 등록하기 위해서 KAFE IdP의 계정을 생성한다.

https://coreen-idp.kreonet.net


KAFE Trust Zone 에 서비스 등록

https://trust.kafe.or.kr 사이트에, 위에서 생성한 KAFE 계정으로 로그인 한다.

서비스 등록 → OIDC Client 생성 을 클릭한다.

하기 스크린샷과 같이 서비스를 등록한다.

서비스를 등록 후, Client ID, Client Secret, Client URL, Redirect URL을 참고하여 아파치 웹서버에 OIDC 설정을 진행한다. OIDC 인증 - auth0 기반 문서와 비슷하게 설정하면 된다.

다음은 예제에 적용한 설정이다.

/etc/httpd/conf.d/example_kreonet_net.conf
<VirtualHost *:443>
    ServerName example.kreonet.net
    Use RotateLogs example.kreonet.net
    #...
    Include conf.d/ssl-kreonet.cnf

    OIDCProviderMetadataURL https://oidc.kafe.or.kr/.well-known/openid-configuration
    OIDCClientID qnjNPcInoP
    OIDCClientSecret 'YOUR_CLIENT_SECRET'

    OIDCScope "openid email profile"
    OIDCRedirectURI https://example.kreonet.net/secure/redirected
    OIDCCryptoPassphrase <passwordToEncryptTheSessionInformationOnTheCookie>

    <Location /secure>
       AuthType openid-connect
       Require valid-user
       LogLevel debug
    </Location>
</VirtualHost>


Test IdP 에 사용자 등록

https://testidp.kreonet.net/idp/idp/user_create

KAFE 정책상 임의의 서비스를 처음부터 IdP 에 연동하는 것을 허용하지 않는다. 개발 단계에서는 Test IdP 에 테스트 사용자를 등록하고, 테스트를 하도록 한다.


웹사이트 접속

아파치 웹서버를 재기동 한 후, https://example.kreonet.net/secure 에 접속하면 KAFE의 Test IdP 사이트의 로그인 페이지로 redirect 된다.


로그인을 통해, IdP에서 SP로 전달되는 개인정보를 묻는다. Yes를 통해 진행한다.


로그인이 완료되면 redirected 본래의 웹사이트로 redirect 된다.

PHP를 통해 SERVER 변수를 읽으면 OIDC 세션을 확인할 수 있다. 해당 세션을 날리면 로그아웃 된다.


IdP 범위 설정

https://trust.kafe.or.kr → 대시보드 → 생성한 어플리케이션 → 이용가능 기관 및 조직 설정

IdP의 범위를 설정한다. 기관 내부 사용자만 허가할 경우, 해당 기관만 allow 하고 나머지를 block 하면 된다.


프로덕션 서비스 신청

https://trust.kafe.or.kr → 대시보드 → 생성한 어플리케이션 → Production 신청 을 통해 OIDC Client(SP)를 등록한다.

(중요) R&E 사용자 인증 및 서비스 연계체계 문서에서 언급한 바와 같이, IdP 에서 해당 SP 를 허가하지 않으면, IdP 와 연계되지 않는다.


제약조건 걸기

OIDC 인증 - auth0 기반 페이지의 제약조건 걸기를 참고한다.

KAFE의 OIDC scope 와 claim 은 다음에 기술되어 있다. https://oidc.kafe.or.kr/.well-known/openid-configuration