JIT 사용자 프로비저닝
JIT(Just-in-Time) 사용자 프로비저닝을 통해 사용자가 SAML SSO 또는 OpenID Connect(OIDC) SSO를 통해 로그인할 때 자동으로 사용자를 생성하고 업데이트할 수 있습니다. Jira, Confluence 또는 Bitbucket과 같은 Atlassian 데이터 센터 애플리케이션에 연결합니다.
세부 사항
JIT가 없으면 사용자가 사용자 디렉토리(원격 LDAP 또는 내부 디렉토리) 중 하나에 없는 경우 SSO를 사용하여 로그인하지 못합니다. JIT를 사용하면 적시(just-in-time)로 사용자를 생성할 수 있으므로 사전에 사용자가 제품에 수동으로 생성될 필요 없이 즉시 로그인할 수 있습니다. 사용자를 프로비저닝하는 데 필요한 데이터는 사용자가 인증되면 SSO 응답에서 가져오며, 선택한 ID 제공자(IdP)에서 구성해야 합니다.
프로비저닝된 JIT 사용자는 애플리케이션의 내부 디렉토리에 생성됩니다. 사용자를 만들려면 사용자 이름, 표시 이름, 전자 메일 및 그룹 구성원 자격이 필요합니다. 이 필드는 SSO 응답의 데이터로 채워집니다. 이 데이터는 IDP에서 구성하고 속성(SAML 사용 시) 또는 클레임(OIDC 사용 시)을 통해 제공해야 합니다. 이 구성 방법에 대한 자세한 내용은 아래에서 확인할 수 있습니다.
이후 로그인 시(및 JIT 프로비저닝이 활성화된 상태로 유지됨) 사용자 데이터는 IDP에서 변경된 내용으로 최신 상태로 유지됩니다(JIT 프로비저닝 이전 내부 디렉토리의 사용자 포함). 사용자가 로그인할 때 원격 디렉토리가 활성화된 것과 동시에 JIT 프로비저닝을 사용하는 SSO가 활성화된 경우 원격 디렉토리에 우선 순위가 부여됩니다. 사용자가 로그인된 디렉토리에는 JIT 프로비저닝이 포함된 SSO가 로그인됩니다.
매핑 표현식
매핑 표현식은 JIT 프로비저닝 앱의 일부로 제공됩니다. 이것들은 리터럴 텍스트와 함께 변수들이 선언될 수 있는 단순한 표현식들이며, 이 표현식들은 평가될 때 제공된 값으로 대체됩니다. 이 구문은 "${variableName}"의 확립된 패턴을 따릅니다. 예를 들어, "some text ${conjunction} some more text"
conjunction = "and"
는 "일부 텍스트 및 추가 텍스트"로 평가될 것입니다.
SSO 및 JIT 프로비저닝을 구성하는 경우 선택한 IdP의 SSO 응답에서 변수 대체가 이루어집니다.
SAML의 경우 이 세부 정보는 사용자와 관련된 속성입니다.
OIDC의 경우, 이러한 세부 정보는 (요청된 범위에서) 사용자와 관련된 클레임입니다.
매핑 표현식이 필요한 필드는 다음과 같습니다.
사용자 이름 매핑
표시 이름(JIT 프로비저닝을 사용하도록 설정한 경우)
이메일(JIT 프로비저닝을 사용하도록 설정한 경우)
JIT 프로비저닝 필드 "그룹"은 매핑 표현식을 지원하지 않으며 그룹 이름 목록을 포함하는 속성/청구 이름만 필요합니다.
SAML로 사용자가 프로비저닝된 경우 표시 이름 매핑의 값이 ${firstName} ${lastName} 2020인 경우 상황에 맞는 예를 생각해 보십시오.
${firstName}이 firstName이라는 특성 값으로 바뀝니다.
${lastName}이 lastName이라는 특성 값으로 바뀝니다.
2020은 어떤 식으로도 수정되지 않습니다.
사용자 John Smith가 로그인하면 제품에 표시된 이름은 John Smith 2020이 됩니다.
SSO 응답에 이러한 속성/청구가 있어야 합니다. 그렇지 않으면 SSO로 로그인할 때 오류가 발생합니다.
사용자 이름 매핑 필드 구성
JIT 프로비저닝과 함께 제공되는 또 다른 변경 사항은 이전에 사용자 이름 클레임 필드에 대한 업데이트로, OpenID Connect에서만 사용할 수 있습니다. 이 필드를 사용하여 SSO 로그인 중 사용자 이름과 일치할 때 사용할 클레임을 지정할 수 있습니다. 이 필드는 이제 SAML에 사용할 수 있게 되었으며(이전에는 이름 소스로서의 NameID 사용으로 기본 설정됨), 다음과 같은 몇 가지 방법으로 업데이트되었습니다.
이제 사용자 이름의 소스를 지정할 때 활성 선택을 권장하는 필드가 필요합니다.
필드는 위의 절에서 설명한 대로 매핑 표현식입니다.
플러그인이 업그레이드된 후 그에 따라 이전 값(또는 이전 값 없음)이 마이그레이션됩니다.
이 필드가 JIT 프로비저닝에 미치는 영향
SSO로 로그인하면 필드의 매핑 표현식에 의해 사용자의 사용자 이름이 평가됩니다. JIT 프로비저닝을 사용하지 않으면 IDP에서 인증한 사용자를 제품(원격 디렉토리에서 나올 수 있음) 내의 사용자 항목과 일치시켜 로그인하는데 이 사용자 이름이 사용됩니다. JIT 프로비저닝을 사용하도록 설정하면 더 이상 사용자 이름만 제품 내에서 사용자를 고유하게 식별할 수 없습니다. 그 이유는 사용자의 데이터를 제공하기 위해 IdP를 사용하고 있으며 사용자 이름을 포함한 데이터가 변경될 수 있기 때문입니다. 따라서 사용자가 IdP에서 사용자 이름을 변경할 때마다 제품에 로그인하면 동일한 사용자라도 새 사용자 항목이 프로비저닝되는 시나리오가 생성됩니다. 이 시나리오를 방지하려면 사용자 이름 업데이트를 지원하도록 IDP 및 사용자 이름 매핑을 구성해야 합니다. 이것은 영구 ID를 사용하여 사용자를 고유하게 식별함으로써 수행되며, 이는 IDP가 제공해야 하는 사용자 기록의 전체 수명 동안 이 ID의 값이 변경되지 않음을 의미합니다.
SAML에서: SAML specification (section 8.3.7) 은 NameID에 대한 영구 ID 형식을 정의합니다. ID는 IDP에서 구성해야 합니다. 또한 IdP에서 변경 가능한 사용자 이름을 포함하는 새 특성을 생성하여 사용자 이름 매핑 표현식(예: "${preferredUsername}")에 사용해야 합니다. JIT 프로비저닝을 사용하도록 설정하면 NameID가 영구 ID로 간주됩니다.
OIDC에서: OIDC specification 응용 프로그램 내의 각 사용자에 대한 표준으로 주체 식별자(하위 클레임)를 정의합니다. 이 ID는 영구 ID이며 일반적으로 IdP에서 자동으로 생성 및 처리됩니다. 그런 다음 표준 claim preferred_username(프로파일 범위에 있음)을 변경 가능한 사용자 이름의 소스로 사용하는 것이 일반적이며, 따라서 사용자 이름 매핑 필드는 "${preferred_username}"으로 구성됩니다. JIT 프로비저닝을 사용하도록 설정하면 하위 클레임이 영구 ID로 간주됩니다.