로밍 운영기관(RO) 운영 요건

고침 · v1.0

목차
목차

국가에듀롬 운영약관 1.2 가 RO 를 둘 수 있다고 정하지만, RO 가 무엇을 갖추어야 하는지는 적지 않습니다. 약관에 IdP(부록 A)·SP(부록 B)·NRO(부록 C) 의 준수 사항은 있어도 RO 의 것은 없습니다. 이 문서가 그 자리를 채웁니다.

누가 지켜야 하나

  • 대학 RO — 한국교육정보화재단(KREN). 2024년 11월부터 대학·대학교를 담당합니다
  • 앞으로 설립되는 부문 RO — 약관 1.2.1 에 따라 지리적·기능별·성격별로 설립될 수 있습니다

RO 는 자기 부문 안에서 NRO 를 대리합니다. 그래서 NRO 에게 요구되는 것(약관 부록 C)의 대부분이 부문 범위로 좁혀져 그대로 적용됩니다.

대학을 제외한 기관은 RO 없이 NRO 가 직접 담당합니다(약관 1.2.8). 그 기관은 이 문서가 아니라 고지문 게시 규정과 약관 4.5 를 봅니다.

기술 요구사항

1. RADIUS 기반시설

1.1. RO 는 부문에듀롬기반시설로 RADIUS 프록시를 운영한다. 참여기관과 NRO 양쪽에 붙는다.

1.2. RADIUS 프록시는 이중화한다. 한 대가 멎어도 부문 전체의 인증이 멎지 않아야 한다.

1.3. realm 라우팅은 명시한 realm 만 올려보낸다. 정규식으로 *.ac.kr 같이 싸잡아 넘기지 않는다. 목록에 없는 realm 을 되돌려 보내면 NRO 와 RO 사이에서 요청이 맴돈다(2017.12. 운영정책 세미나에서 실제로 겪은 문제다).

1.4. 참여기관이 realm 을 더하거나 뺀 날로부터 근무일 기준 3일 안에 자기 라우팅과 NRO 쪽 정보에 반영한다.

1.5. 서버 주소·공유키를 바꾸기 전에 참여기관과 NRO 에 최소 2주 전 알린다. 긴급 보안 조치는 예외로 하되 사후에 알린다.

1.6. 구현 예시는 nro-docker 에 있다.

2. Operator-Name

접속 요청이 어느 기관에서 왔는지는 Operator-Name(RFC 5580 4.1) 하나로 드러납니다. 이게 없으면 IdP 는 자기 이용자가 어디서 접속했는지 알 수 없고, 사고가 났을 때 되짚을 수 없습니다.

2.1. SP 는 자기가 보내는 Access-Request 에 Operator-Name 을 넣는다. 값은 네임스페이스 1(REALM) 뒤에 자기 realm 을 붙인 꼴이다.

Operator-Name = "1example.ac.kr"

2.2. 기관이 넣지 못하면 RO 가 자기 프록시에서 붙인다. 장비가 오래되었거나 설정을 바꿀 수 없는 기관이 적지 않다. 그런 기관 때문에 부문 전체의 추적이 끊기지 않게 한다.

2.3. RO 가 붙일 때는 요청을 보낸 그 기관의 realm 을 쓴다. RO 자신의 realm 을 쓰지 않는다. 그러려면 RADIUS 클라이언트마다 어느 기관인지 적어 두어야 한다.

2.4. 이미 들어 있는 Operator-Name 은 덮어쓰지 않는다. 기관이 제대로 넣은 값을 RO 가 지우면 거짓 정보가 된다.

2.5. RO 는 자기 부문에서 Operator-Name 이 빠진 기관을 파악하고, 기관이 직접 넣도록 안내한다. RO 가 대신 붙이는 것은 임시 조치다.

3. 로깅

3.1. RO 는 자기 RADIUS 프록시의 인증 로그를 6개월 이상 안전하게 보관한다.

3.2. 로그에는 다음을 남긴다 — timestamp, 바깥 identity, realm, 기기 MAC 주소, SP 서버, Operator-Name, 인증 결과.

3.3. 비밀번호는 어떤 형태로도 남기지 않는다.

3.4. NRO 가 사고 조사를 위해 요청하면 근무일 기준 3일 안에 해당 구간의 로그를 제공한다.

정책 요구사항

4. 연락처와 소통

4.1. RO 는 사람 이름이 아닌 역할 주소를 둔다. 담당자가 바뀌어도 주소는 그대로여야 한다.

4.2. 다음 세 창구를 각각 둔다.

창구 상대 쓰임
기술 연락처 NRO, 다른 RO 장애, realm 변경, 보안 사고
참여기관 창구 자기 부문의 참여기관 가입, 설정 문의, 장애 접수
공개 지원 연락처 최종 이용자 웹페이지에 싣는 주소

4.3. 근무일 기준 2일 안에 응답한다. 보안 사고는 당일 응답한다.

4.4. NRO 의 운영 메일링리스트에 가입하고, 자기 부문 참여기관에게도 전달한다.

4.5. 연락처가 바뀌면 바뀐 날 NRO 에 알린다.

5. 참여기관 연락처는 NRO 도 가진다

RO 를 통해 가입한 기관이라도 NRO 가 그 기관의 연락처를 알고 있어야 합니다. 글로벌에듀롬과 해외 NRO 는 국가 단위로 연락합니다. 보안 사고나 해외에서 온 조회가 들어왔을 때 NRO 가 RO 를 거쳐야만 기관에 닿을 수 있다면, 그 시간만큼 대응이 늦습니다. RO 가 응답하지 못하는 시간대나 상황도 있습니다.

5.1. RO 는 자기 부문 참여기관의 연락처를 NRO 에 전달한다. 약관 4.3 이 참여기관에게 요구하는 것과 같은 범위다 — 기술담당자 2인(하나는 그룹 주소 권장), 보안담당자 1인, 관리담당자 1인.

5.2. 기관이 가입한 날, 그리고 연락처가 바뀐 날 전달한다.

5.3. RO 를 거치는 것은 전달 경로일 뿐이다. RO 가 연락 창구를 독점하지 않는다. NRO 는 필요할 때 기관에 직접 연락할 수 있다.

5.4. 연락처는 공개하지 않는다. eduroam-kr-db 는 공개 저장소이므로 담당자 개인 주소를 그곳에 올리지 않는다. 전달 경로는 NRO 가 따로 정한다.

6. 참여기관 관리

6.1. RO 는 자기 부문의 가입 자격을 약관 2.3·2.4 에 따라 판단한다. 약관보다 느슨하게 적용할 수 없다.

6.2. 참여기관 정보는 eduroam-kr-db 에 제출한다. 기관명, realm, 서비스 지역, 안내 페이지 주소(info_url), 가입 연도를 포함한다. 담당자 연락처는 5.4 에 따라 여기에 넣지 않는다.

6.3. 참여기관이 약관을 어긴 것을 알게 되면 해당 기관에 알리고 기한을 정해 고치게 한다. 기한 내에 고쳐지지 않으면 NRO 에 알린다.

6.4. 참여기관이 탈퇴하거나 자격을 잃으면 그날 라우팅에서 빼고 NRO 에 알린다.

6.5. 참여기관의 안내 페이지가 약관 4.5 와 고지문 게시 규정을 지키는지 연 1회 이상 확인한다.

7. RO 웹페이지

7.1. RO 는 자기 eduroam 웹페이지를 둔다. 주소는 바뀌지 않는 곳으로 정하고 NRO 에 알린다.

7.2. HTTPS 로만 제공한다. HTTP 로 들어온 요청은 HTTPS 로 넘긴다.

7.3. 다음을 게재한다.

(1) 국가에듀롬 운영약관의 준수 — 약관 링크를 포함한다 (2) 자기 부문의 참여기관 목록 또는 서비스 지역 지도 — 각 기관의 안내 페이지로 링크한다 (3) 가입 절차와 가입 문의 창구 (4) 공개 지원 연락처 (4.2 의 셋째) (5) 대한민국 eduroam 공식 웹사이트 링크 (6) 참여 선언과 공통 고지문 — 고지문 게시 규정

7.4. 검색에 걸려야 한다. <meta name="robots" content="noindex"> 를 두거나 robots.txt 로 막지 않는다. 고지문을 읽히지 않게 만드는 것과 같은 일로 본다.

8. HTML <head> 요건

RO 와 참여기관의 eduroam 페이지는 아래를 갖춥니다. 사람이 읽는 본문만큼이나 기계가 읽는 머리도 맞아야, 검색과 메신저 미리보기에서 그 페이지가 무엇인지 드러납니다.

8.1. 필수

태그 값
<html lang> 국문 쪽은 ko, 영문 쪽은 en
<meta charset> utf-8
<meta name="viewport"> width=device-width, initial-scale=1
<title> <기관 이름> eduroam 안내 — 기관 이름을 반드시 넣는다
<meta name="description"> 한 문장. 누가 쓰는 서비스인지 밝힌다
<link rel="canonical"> 이 쪽의 정식 주소 (절대 주소)
<meta name="copyright"> 아래 공통 메타 그대로
<link rel="related"> 아래 공통 메타 그대로

8.2. 공통 메타 — 글자 그대로

<meta name="copyright" content="eduroam® is a registered trademark of the GÉANT Association. eduroam service in the Republic of Korea is operated by KREONET, the national research network of KISTI.">
<link rel="related" href="https://eduroam.kreonet.net" title="대한민국 eduroam 공식 웹사이트 (KREONET 운영)">

국문 쪽과 영문 쪽 모두 이 두 줄을 같게 둡니다. 번역하거나 기관 이름을 끼워 넣지 않습니다.

8.3. 권고

태그 값
<meta property="og:type"> website
<meta property="og:title"> <title> 과 같게
<meta property="og:description"> description 과 같게
<meta property="og:url"> canonical 과 같게
<meta property="og:image"> 1200×630 PNG 절대 주소. og:image:width, og:image:height, og:image:alt 를 함께 둔다
<meta property="og:site_name"> <기관 이름> eduroam
<meta property="og:locale"> ko_KR 또는 en_US
<meta name="twitter:card"> summary_large_image
<meta name="color-scheme"> light dark
<link rel="alternate" hreflang> 국·영문 두 벌을 둘 때. 서로를 가리키게 한다

8.4. 통째로 가져다 쓰기

onepage-html-site-theme 의 index.html 머리에 위 항목이 모두 들어 있습니다. 포크해서 기관 이름과 주소만 바꾸면 8장 전체를 만족합니다.

sed -n '/<head>/,/<\/head>/p' index.html

바꿀 값은 저장소 README.md 의 “수정할 값” 에 정리돼 있습니다.

9. 상표와 고지문

9.1. RO 는 eduroam 이름과 로고를 쓸 때 고지문 게시 규정을 지킨다. RO 용 참여 선언 문장이 그 문서에 있다.

9.2. RO 는 eduroam 을 자기 브랜드로 다시 포장하지 않는다. 별도 이름을 붙인 파생 브랜드를 만들지 않는다(연혁 2012–2015년 참조).

9.3. RO 는 자기 부문 참여기관이 9.1 을 지키는지 6.5 에 따라 확인한다.

점검표

  항목 근거
☐ RADIUS 프록시 이중화 1.2
☐ 명시한 realm 만 라우팅 1.3
☐ Operator-Name 이 모든 요청에 들어감 2.1, 2.2
☐ 기관 realm 으로 붙이고 기존 값은 보존 2.3, 2.4
☐ 인증 로그 6개월, 비밀번호 제외 3.1, 3.3
☐ 역할 주소 세 창구 4.1, 4.2
☐ 참여기관 연락처를 NRO 에 전달 5.1, 5.2
☐ 연락처를 공개 저장소에 올리지 않음 5.4
☐ 참여기관 정보를 eduroam-kr-db 에 제출 6.2
☐ 참여기관 안내 페이지 연 1회 점검 6.5
☐ RO 웹페이지 HTTPS, 여섯 항목 게재 7.2, 7.3
☐ noindex 없음 7.4
☐ <head> 필수 여덟 항목 8.1
☐ 공통 메타 두 줄 그대로 8.2
☐ 참여 선언과 공통 고지문 9.1