웹 사용자에 대한 OIDC 기반 SSO 구성

브라우저 클라이언트에 대한 SSO(Single Sign-On) 옵션은 PKCE를 사용한 OIDC(Open ID Connect) 인증 코드 흐름을 통해 사용할 수 있습니다.

Domino의 OIDC 로그인 SSO 기능을 사용하면 브라우저 클라이언트가 OIDC 제공자에 인증하여 Domino 웹 서버에 액세스할 수 있습니다. 이 형식의 SSO는 웹 서버에 대한 기본 SAML 인증과 유사한 역할을 합니다. Domino 12.0.2에서 이 기능은 Notes ID 저장소에 인증하여 ID 파일을 가져오는 데 사용할 수 없으므로 웹 연합 로그인, Notes 연합 로그인 또는 Nomad 연합 로그인 대신 사용되지 않습니다. 신뢰할 수 있는 OIDC 제공자에 인증하면 사용자의 웹 브라우저는 후속 HTTP 요청을 해당 Domino 서버에 인증하는 데 사용되는 세션 쿠키를 받습니다.

프로시저

  1. HTTP Bearer 인증 사용에 설명된 대로 하나 이상의 인터넷 사이트에 대한 HTTP bearer 인증을 구성합니다.
    주: 인터넷 사이트에서 OIDC 로그인을 지원하려면 HTTP Bearer 인증을 사용 가능으로 설정해야 합니다.
  2. 신뢰할 수 있는 OIDC 제공자 구성에 나온 대로 하나 이상의 인터넷 사이트에 대해 신뢰할 수 있는 OIDC 제공자를 구성합니다.
  3. 인터넷 사이트 문서의 Domino 웹 엔진 탭에서 세션 인증을 사용으로 설정합니다.

    모든 웹 서버에서 단일 ID 제공자를 지원하도록 구성할 수 있는 환경에서는 SAML IdP 또는 OIDC 제공자를 사용하여 각 서버에 최종 사용자를 인증하고 LTPA 토큰과 같은 다중 서버 SSO 쿠키를 사용하는 대신 해당하는 각 백엔드 서버에서 단일 서버 세션 쿠키를 사용하여 보안을 향상할 수 있습니다. OIDC SSO와 SAML SSO는 함께 사용할 수 없습니다.

  4. OIDC 제공자에서 이 인터넷 사이트에 대한 새 OIDC/OAuth 2.0 클라이언트를 구성합니다. Domino를 인증 코드 흐름만 사용으로 설정하고 S256을 사용한 PKCE가 필요한 "기밀 클라이언트"로 구성하는 것이 좋습니다. myserver.example.com에서 수신 대기하는 Domino 서버의 리디렉션 URI는 https://myserver.example.com/names.nsf?OIDCLogin 형식입니다. 여러 인터넷 사이트에서 OIDC 로그인을 사용 가능으로 설정하려면 idpcat.nsf의 OIDC 제공자 문서에서 해당 인터넷 사이트를 모두 선택하고 OIDC 제공자에서 해당하는 각 호스트 이름에 대해 리디렉션 URI를 구성할 수 있습니다.

    KeyCloak 구성의 예는 Domino에 대한 OIDC 제공자로 KeyCloak 구성 샘플을 참조하십시오.

    1. OIDC 제공자에서 구성된 client_id를 OIDC_LOGIN_CLIENT_ID notes.ini에 설정합니다.
    2. OIDC 제공자에서 구성된 client_secret을 OIDC_LOGIN_CLIENT_SECRET notes.ini에 설정합니다.
      주: 지정된 Domino 서버에서 OIDC 로그인을 위해 OIDC 제공자와 관련 client_id 및 client_secret을 하나만 구성할 수 있습니다.
  5. Domino 서버의 엔드포인트에서 /names.nsf?OIDCLogin 엔드포인트로 인증되지 않은 사용자를 리디렉션하고 인증 후 다시 원래 대상 URI로 리디렉션할 수 있도록 OIDC_LOGIN_ENABLE_REDIRECT=1을 설정합니다.

기타 구성 설정

기본적으로 OIDC 인증 상태를 유지하는 데 사용되는 쿠키는 수명이 2분입니다. 이 기본값을 변경하여 최종 사용자가 OIDC 공급자에 더 빠르게 인증하도록 하거나 더 많은 시간을 제공하기 위해 OIDC_LOGIN_COOKIE_DURATION_SEC notes.ini를 30초에서 900초 사이의 값으로 설정할 수 있습니다.

HTTP Bearer 인증 문서에 설명된 notes.ini 변수 외에 두 개의 notes.ini 변수를 사용하여 서버 콘솔에서 추가 추적을 사용하도록 설정할 수 있습니다.

  • DEBUG_OIDCLogin=(0,1,2,3,4)
  • DEBUG_OIDC_LOGIN_REDIRECT=(0,1)

제한사항, 알려진 문제 및 참고

  • 현재 보안 우수 사례에 따으면 PKCE를 사용한 인증 코드 흐름만 OIDC 로그인 SSO에 사용할 수 있습니다.
  • Domino에서는 항상 "scope=openid email"을 요구합니다.
  • PKCE S256 및 nonce는 항상 사용되며 사용 불가능으로 설정할 수 없습니다.
  • 받은 id_token은 OIDC.Core에 명시된 요구사항을 준수해야 합니다. 단, Domino는 "email" 클레임이 없으면 "upn" 클레임을 확인하도록 장애 복구됩니다.
  • 여러 Domino 서버에 요청을 분배하는 웹 프록시는 세션 유사성을 구성하여 단일 OIDC 로그인 시도가 두 개의 Domino 서버에 분배되지 않도록 해야 합니다.
  • "client_secret_basic" 및 "none"만 지원되는 클라이언트 인증 방법입니다.
  • client_id 및 client_secret은 notes.ini를 통해 전체 Domino 서버에 대해 구성되므로 단일 Domino 서버에서 OIDC 로그인을 위해 OIDC 제공자를 하나만 사용할 수 있습니다.
  • OIDC 로그인 통계를 HTTP bearer 인증 통계와 결합할 수 있습니다.
  • OIDC 로그인은 Windows 및 Linux 서버에서만 지원됩니다.