5.11. 사용자 프로필 정의
Red Hat Single Sign-On에서 사용자는 속성 세트와 연결되어 있습니다. 이러한 속성은 Red Hat Single Sign-On 내의 사용자를 더 잘 설명하고 식별하며 애플리케이션에 대한 추가 정보를 전달하는 데 사용됩니다.
사용자 프로필은 사용자 특성을 나타내고 영역 내에서 관리되는 방법을 나타내는 잘 정의된 스키마를 정의합니다. 이를 통해 관리자는 사용자 정보에 대한 일관된 보기를 제공하여 속성 관리 방법에 대한 다양한 측면을 제어하고 추가 특성을 지원하기 위해 Red Hat Single Sign-On을 훨씬 쉽게 확장할 수 있습니다.
다른 기능 중에서 사용자 프로필을 사용하면 관리자가 다음을 수행할 수 있습니다.
- 사용자 속성에 대한 스키마 정의
- 컨텍스트 정보에 따라 속성이 필요한지 여부를 정의합니다(예: 사용자 또는 관리자만 필요한 경우 또는 요청된 범위에 따라 둘 다 필요한 경우)
- 사용자 속성 보기 및 편집에 대한 특정 권한을 정의하여 일부 속성을 보거나 변경할 수 없는 강력한 개인 정보 보호 요구 사항을 준수할 수 있습니다(관리자 포함)
- 사용자 정보가 항상 업데이트되고 속성과 관련된 메타데이터 및 규칙을 준수하도록 사용자 프로필 컴플라이언스를 동적으로 적용
- 기본 제공 유효성 검사기를 활용하거나 사용자 지정 항목을 작성하여 특성별로 유효성 검사 규칙을 정의합니다.
- 특성 정의에 따라 사용자가 등록, 업데이트 프로파일, 브로커링 및 개인 정보와 같이 상호 작용하는 양식을 동적으로 렌더링합니다.
사용자 프로필 기능은 User Profile SPI에 의해 지원됩니다. 기본적으로 이러한 기능은 비활성화되어 있으며 영역은 기존 동작과 역호환성을 유지하는 기본 구성을 사용하도록 구성됩니다.
레거시 동작은 사용자 이름, 이메일, 이름, 사용자 정의 속성 관리 방법에 대한 제한 없이 Red Hat Single Sign-On에서 사용하는 기본 제약 조건을 유지하는 것입니다. 계정 콘솔을 통한 계정 등록, 프로파일 업데이트, 브로커링 및 관리와 같은 사용자 흐름과 관련하여 사용자는 앞서 언급한 속성을 사용하여 추가 속성을 지원하기 위해 이전에 지정한 특성을 변경할 수 있습니다.
Red Hat Single Sign-On을 이미 사용 중인 경우 기존 동작으로 지금까지 사용 중인 것입니다.
기존 동작과 달리 선언적 공급자는 관리 콘솔 및 잘 정의된 JSON 스키마를 통해 영역에 사용자 프로필 구성을 정의할 수 있는 유연성을 제공합니다.
다음 섹션에서는 선언적 공급자를 사용하여 자체 사용자 프로필 구성을 정의하는 방법을 살펴보겠습니다.
향후 Red Hat Single Sign-On에서는 레거시 동작이 더 이상 지원되지 않습니다. 이상적으로 User Profile에서 제공하는 새로운 기능을 살펴보고 그에 따라 해당 영역을 마이그레이션해야 합니다.
5.11.1. 사용자 프로필 활성화
선언적 사용자 프로필은 기술 프리뷰 이며 완전히 지원되지 않습니다. 이 기능은 기본적으로 비활성화되어 있습니다.
-Dkeycloak.profile=preview
또는 -Dkeycloak.profile.feature.declarative_user_profile=enabled
를 사용하여 서버를 시작하려면 다음을 수행합니다. 자세한 내용은 프로필을 참조하십시오.
declarative_user_profile
기능을 활성화하는 것 외에도 영역에 대해 User Profile을 활성화해야 합니다. 이렇게 하려면 왼쪽 메뉴에서 CloudEvent Settings
링크를 클릭하고 User Profile Enabled
스위치를 켭니다.
활성화한 후 저장
버튼을 클릭하면 사용자 속성에 대한 구성을 관리할 수 있는 위치에서 User Profile
(사용자 프로필) 탭에 액세스할 수 있습니다.
영역의 사용자 프로필을 활성화하면 Red Hat Single Sign-On은 사용자 프로필 구성에 따라 속성을 관리하는 방법에 대한 추가 제약 조건이 적용됩니다. 요약하면 이 기능이 활성화될 때 예상되는 사항 목록은 다음과 같습니다.
-
관리 관점에서 사용자 세부 정보 페이지의
속성
탭에는 사용자 프로필 구성에 정의된 속성만 표시됩니다. 특성별로 정의된 조건도 특성을 관리할 때 고려됩니다. - 계정 콘솔의 등록, 업데이트 프로파일, 브로커링 및 개인 정보와 같은 사용자 대면 양식은 사용자 프로필 구성에 따라 동적으로 렌더링됩니다. 이를 위해 Red Hat Single Sign-On은 서로 다른 템플릿을 사용하여 이러한 양식을 동적으로 렌더링할 예정입니다.
다음 주제에서는 사용자 프로필 구성을 관리하는 방법과 해당 구성이 귀하의 영역에 미치는 영향에 대해 살펴보겠습니다.
5.11.2. 사용자 프로필 관리
사용자 프로필 구성은 실제 기준으로 관리됩니다. 이를 위해 왼쪽 메뉴에서 CloudEvent Settings
링크를 클릭한 다음 User Profile
탭을 클릭합니다.
사용자 프로필 탭
특성
하위 탭에는 현재 사용자 프로필과 연결된 속성 목록이 있습니다. 기본적으로 구성은 사용자 루트 속성을 기반으로 생성되며 각 속성은 검증 및 권한 부여 측면에서 몇 가지 기본값으로 구성됩니다.
특성 그룹
하위 탭에서 특성 그룹을 관리할 수 있습니다. 특성 그룹을 사용하면 사용자가 폼을 렌더링할 때 속성의 상관 관계를 조정할 수 있습니다.An attribute group allows you to correlate attributes so that they are displayed together when rendering user facet forms.
현재 속성 그룹은 렌더링 목적에만 사용되지만 나중에 연결된 속성에 대한 최상위 구성을 정의할 수도 있어야 합니다.
JSON 편집기
하위 탭에서는 잘 정의된 JSON 스키마를 사용하여 구성을 보고 편집할 수 있습니다. 다른 탭에서 변경한 내용은 이 탭에 표시된 JSON 구성에 반영됩니다.
다음 섹션에서는 특성
하위 탭에서 구성을 관리하는 방법을 알아봅니다.
5.11.3. 속성 관리
특성
하위 탭에서 사용자 프로필과 연결된 특성을 생성, 편집 및 삭제할 수 있습니다.
새 속성을 정의하고 사용자 프로필과 연결하려면 속성 목록의 오른쪽 상단에 있는 만들기
버튼을 클릭합니다.
특성 구성
특성을 구성할 때 다음 설정을 정의할 수 있습니다.
- 이름
- 특성의 이름입니다.
- 표시 이름
- 속성의 사용자에게 친숙한 이름, 주로 사용자 방향 양식을 렌더링할 때 사용됩니다. 메시지 번들에서 값을 로드할 수 있도록 국제화를 지원합니다.
- 특성 그룹
- 속성이 속하는 속성 그룹(있는 경우)입니다.
- 범위 시 활성화됨
- 특성을 동적으로 사용하도록 범위 목록을 정의할 수 있습니다. 설정하지 않으면 속성이 항상 활성화되며 사용자 프로필을 관리할 때는 사용자용 양식을 렌더링할 때에도 해당 제한 조건이 항상 적용됩니다. 그렇지 않으면 클라이언트에서 목록의 범위를 요청하는 경우에만 동일한 제약 조건이 적용됩니다.
- 필수 항목
- 필요에 따라 속성을 설정합니다. 활성화되지 않은 경우 속성은 선택 사항입니다. 그렇지 않으면 사용자 및 관리자에게 특성을 제공해야 하며, 클라이언트가 요청한 범위를 기반으로 사용자 또는 관리자에게만 필요한 속성도 수행할 수 있습니다.
- 권한
- 이 섹션에서는 사용자와 관리자에 대한 읽기 및 쓰기 권한을 정의할 수 있습니다.
- 검증
- 이 섹션에서는 특성 값을 관리할 때 수행할 검증을 정의할 수 있습니다. Red Hat Single Sign-On에서는 자체적으로 추가할 수 있는 다양한 기본 제공 검증기를 제공합니다.
- 주석
- 이 섹션에서는 주석을 속성에 연결할 수 있습니다. 주석은 렌더링을 위해 추가 메타데이터를 프런트 엔드에 전달하는 데 주로 유용합니다.
5.11.3.1. 권한 관리
Permission
섹션에서 사용자 액세스 수준을 정의할 수 있으며 관리자는 특성을 읽고 쓸 수 있습니다.
속성 권한
이를 위해 다음 설정을 사용할 수 있습니다.
- 사용자가 볼 수 있습니까?
- 활성화된 경우 사용자가 특성을 볼 수 있습니다. 그렇지 않으면 사용자가 속성에 액세스할 수 없습니다.
- 사용자가 편집할 수 있습니까?
- 활성화된 경우 사용자는 특성을 보고 편집할 수 있습니다. 그렇지 않으면 사용자가 속성에 쓸 수 있는 권한이 없습니다.
- admin view 할 수 있습니까?
- 활성화된 경우 관리자는 속성을 볼 수 있습니다. 그렇지 않으면 관리자가 속성에 액세스할 수 없습니다.
- 관리자가 편집할 수 있습니까?
- 사용 가능한 경우 관리자는 특성을 보고 편집할 수 있습니다. 그렇지 않으면 관리자가 해당 속성에 쓸 수 있는 권한이 없습니다.
특성을 생성할 때 속성으로 설정된 권한이 없습니다. 결과적으로 사용자 또는 관리자가 속성에 액세스할 수 없습니다. 특성을 만든 후에는 대상 대상 사용자만 속성을 볼 수 있도록 권한을 설정해야 합니다.Once you create the attribute, make sure to set the permissions accordingly to that the attribute is only visible by the target audience.
권한 부여는 특성을 관리하는 방법과 사용자를 위한 양식에서 속성을 렌더링하는 방법에 대한 직접적인 영향을 미칩니다.
예를 들어, 사용자가 속성을 볼 수 있는 것으로 표시함으로써 관리자는 관리 콘솔(사용자 API에서)을 통해 사용자를 관리할 때 속성에 액세스할 수 없습니다. 또한 사용자는 프로필을 업데이트할 때 속성을 변경할 수 없습니다. 기존 ID 저장소(federation)에서 사용자 속성을 가져오고 소스 ID 저장소 이외의 속성을 업데이트하지 않고 사용자에게 속성을 표시하도록 하는 경우 흥미로운 구성입니다.
마찬가지로, 사용자에 대한 읽기 전용 액세스 권한이 있는 관리자에게만 속성을 쓰기 가능으로 표시할 수도 있습니다. 이 경우 관리자만 특성을 관리할 수 있습니다.
개인 정보 보호 요구 사항에 따라 사용자에 대한 읽기-쓰기 권한이 있는 속성에 관리자에 액세스할 수 없게 될 수도 있습니다.
사용자 프로필 구성에 새 속성을 추가할 때마다 올바른 권한을 설정해야 합니다.
5.11.3.2. 검증 관리
유효성 검사 섹션에서 다양한 형식의 유효성 검사를 선택하여 특성 값이 특정 규칙을 준수하는지 확인할 수 있습니다.In the Validation
section, you can choose from different forms of validation to make sure the attribute value conforms to specific rules.
특성 유효성 검사
Red Hat Single Sign-On은 즉시 다양한 검증기를 제공합니다.
이름 | 설명 | 설정 |
---|---|---|
길이 | 최소 및 최대 길이에 따라 문자열 값의 길이를 확인합니다. | min: 허용되는 최소 길이를 정의하는 정수입니다. 최대 허용 길이를 정의하는 정수입니다. Trim-disabled: 유효성 검사 전에 값을 제거할지 여부를 정의하는 부울입니다. |
integer | 값이 정수이고 낮은 범위 및/또는 상위 범위 내에 있는지 확인합니다. 범위를 정의하지 않으면 유효성 검사기에서 값이 유효한 숫자인지 여부만 확인합니다. | min: 더 낮은 범위를 정의하는 정수입니다. max: 상한 범위를 정의하는 정수입니다. |
double | 값이 double이고 더 낮은 범위 및/또는 상위 범위 내에 있는지 확인합니다. 범위를 정의하지 않으면 유효성 검사기에서 값이 유효한 숫자인지 여부만 확인합니다. | min: 더 낮은 범위를 정의하는 정수입니다. max: 상한 범위를 정의하는 정수입니다. |
uri | 값이 유효한 URI인지 확인합니다. | 없음 |
패턴 | 값이 특정 RegEx 패턴과 일치하는지 확인합니다. | 패턴: 값을 검증할 때 사용할 RegEx 패턴입니다. Error-message: i18n 번들의 오류 메시지 키입니다. 설정하지 않으면 일반 메시지가 사용됩니다. |
| 값에 유효한 이메일 형식이 있는지 확인합니다. | 없음 |
local-date | 영역 및/또는 사용자 로케일에 따라 값의 유효한 형식이 있는지 확인합니다. | 없음 |
person-name-prohibited-characters | 값이 스크립트 삽입과 같은 공격에 대한 추가 장벽으로 유효한 사람 이름인지 확인합니다. 유효성 검사는 사용자 이름에 일반이 아닌 문자를 차단하는 기본 RegEx 패턴을 기반으로 합니다. | Error-message: i18n 번들의 오류 메시지 키입니다. 설정하지 않으면 일반 메시지가 사용됩니다. |
username-prohibited-characters | 값이 스크립트 삽입과 같은 공격에 대한 추가 장벽으로 유효한 사용자 이름인지 확인합니다. 유효성 검사는 사용자 이름에서 일반적이지 않은 문자를 차단하는 기본 RegEx 패턴을 기반으로 합니다. | Error-message: i18n 번들의 오류 메시지 키입니다. 설정하지 않으면 일반 메시지가 사용됩니다. |
options | 값이 정의된 허용되는 값 집합에서 있는지 확인합니다. select 및 multiselect 필드를 통해 입력한 값을 확인하는 데 유용합니다. | options: 허용되는 값을 포함하는 문자열의 배열입니다. |
5.11.3.2.1. 주석 관리
추가 정보를 프런트 엔드에 전달하기 위해 속성을 주석으로 장식하여 속성을 렌더링하는 방법을 지정할 수 있습니다. 이 기능은 주로 Red Hat Single Sign-On 주제를 확장하여 속성과 관련된 주석을 기반으로 페이지를 동적으로 렌더링할 때 유용합니다. 이 메커니즘은 예를 들어 속성에 대해 양식 입력 filed를 구성하는 데 사용됩니다.
특성 주석
5.11.4. 특성 그룹 관리
특성 그룹
하위 탭에서 특성 그룹을 생성, 편집 및 삭제할 수 있습니다. 특성 그룹을 사용하면 사용자 쪽 양식에서 함께 렌더링되도록 관련 속성의 컨테이너를 정의할 수 있습니다.
특성 그룹 목록
속성에 바인딩된 특성 그룹을 삭제할 수 없습니다. 이를 위해 먼저 특성을 업데이트하여 바인딩을 제거해야 합니다.
새 그룹을 만들려면 속성 그룹 목록의 오른쪽 상단에 있는 만들기
버튼을 클릭합니다.
특성 그룹 구성
그룹을 구성할 때 다음 설정을 정의할 수 있습니다.
- 이름
- 그룹의 이름입니다.
- 표시 이름
- 그룹에 대해 사용자에게 친숙한 이름으로, 주로 사용자 연결 양식을 렌더링할 때 사용됩니다. 메시지 번들에서 값을 로드할 수 있도록 국제화를 지원합니다.
- 설명 표시
- 사용자 방향 양식을 렌더링할 때 툴팁으로 표시되는 사용자에게 친숙한 텍스트입니다.
- 주석
- 이 섹션에서는 주석을 속성에 연결할 수 있습니다. 주석은 렌더링을 위해 추가 메타데이터를 프런트 엔드에 전달하는 데 주로 유용합니다.
5.11.5. JSON 구성 사용
사용자 프로필 구성은 잘 정의된 JSON 스키마를 사용하여 저장됩니다. JSON 편집기
하위 탭을 클릭하여 사용자 프로필 구성을 직접 편집하도록 선택할 수 있습니다.
JSON 설정
JSON 스키마는 다음과 같이 정의됩니다.
{ "attributes": [ { "name": "myattribute", "required": { "roles": [ "user", "admin" ], "scopes": [ "foo", "bar" ] }, "permissions": { "view": [ "admin", "user" ], "edit": [ "admin", "user" ] }, "validations": { "email": {}, "length": { "max": 255 } }, "annotations": { "myannotation": "myannotation-value" } } ], "groups": [ { "name": "personalInfo", "displayHeader": "Personal Information" } ] }
스키마는 필요한 만큼의 속성을 지원합니다.
각 속성에 대해 필요한
,권한
및 주석
설정을 선택적으로 정의해야 합니다.
5.11.5.1. 필수 속성
required
설정은 속성이 필요한지 여부를 정의합니다. Red Hat Single Sign-On을 사용하면 다양한 조건에 따라 필요에 따라 속성을 설정할 수 있습니다.
필수
설정이 빈 오브젝트로 정의되면 항상 속성이 필요합니다.
{ "attributes": [ { "name": "myattribute", "required": {} ] }
반면 사용자 또는 관리자 또는 둘 다에 필요한 속성을 설정하도록 선택할 수 있습니다. 사용자가 Red Hat Single Sign-On에서 인증할 때 특정 범위가 요청되는 경우에만 속성을 필요에 따라 표시합니다.
사용자 및/또는 관리자에게 필요한 속성을 표시하려면 다음과 같이 roles
속성을 설정합니다.
{ "attributes": [ { "name": "myattribute", "required": { "roles": ["user"] } ] }
roles
속성에는 각각 사용자
또는 관리자에게 속성이 필요한지 여부에 따라 값이 사용자 또는 admin
일 수 있는 배열이 필요합니다.
마찬가지로 사용자를 인증할 때 클라이언트가 하나 이상의 범위를 요청할 때 필요한 속성을 만들 수 있습니다. 다음과 같이 scopes
속성을 사용할 수 있습니다.
{ "attributes": [ { "name": "myattribute", "required": { "scopes": ["foo"] } ] }
scopes
속성은 클라이언트 범위를 나타내는 모든 문자열 값이 될 수 있는 배열입니다.
5.11.5.2. permissions 속성
특성 수준 권한 속성을 사용하여 속성에 대한
읽기 및 쓰기 권한을 정의할 수 있습니다. 권한은 사용자 또는 관리자의 특성 또는 둘 다에서 이러한 작업을 수행할 수 있는지 여부에 따라 설정됩니다.
{ "attributes": [ { "name": "myattribute", "permissions": { "view": ["admin"], "edit": ["user"] } ] }
보기
및 편집
속성은 각각 속성을 볼 수 있는지 또는 관리자가 속성을 편집할 수 있는지에 따라 사용자
또는 관리자
의 값이 사용자 또는 관리자 중 하나일 수 있는 배열을 예상합니다.
편집
권한이 부여되면 뷰
권한이 암시적으로 부여됩니다.
5.11.5.3. annotations 속성
attribute-level 주석
속성을 사용하여 추가 메타데이터를 속성에 연결할 수 있습니다. 주석은 사용자 프로필 구성을 기반으로 특성을 프론트엔드에 렌더링하는 사용자 속성에 대한 추가 정보를 전달하는 데 주로 유용합니다. 각 주석은 키/값 쌍입니다.
{ "attributes": [ { "name": "myattribute", "annotations": { "foo": ["foo-value"], "bar": ["bar-value"] } ] }
5.11.6. 동적 양식 사용
User Profile의 주요 기능 중 하나는 속성 메타데이터에 따라 사용자용 양식을 동적으로 렌더링할 수 있다는 점입니다. 영역에 기능이 활성화되면 등록 및 업데이트 프로필과 같은 양식이 특정 topic 템플릿을 사용하여 렌더링되어 사용자 프로필 구성을 기반으로 페이지를 동적으로 렌더링합니다.
즉, 기본 렌더링 메커니즘이 요구 사항에 적합한 경우 템플릿을 전혀 사용자 지정할 필요가 없습니다. 여전히 이러한 문제에 대한 사용자 지정이 필요한 경우 다음을 확인해야 하는 템플릿은 다음과 같습니다.
템플릿 | 설명 |
---|---|
base/login/update-user-profile.ftl | 업데이트 프로필 페이지를 렌더링하는 템플릿입니다. |
base/login/register-user-profile.ftl | 등록 페이지를 렌더링하는 템플릿입니다. |
base/login/idp-review-user-profile.ftl | 브로커를 통해 사용자를 페더링할 때 사용자 프로필을 검토/업데이트하기 위해 페이지를 렌더링하는 템플릿입니다. |
base/login/user-profile-commons.ftl | 특성 구성에 따라 입력 필드를 양식으로 렌더링하는 템플릿입니다. 위에서 설명한 세 페이지 템플릿 모두에서 사용됩니다. 여기에서 새로운 입력 유형을 구현할 수 있습니다. |
기본 렌더링 메커니즘은 다음과 같은 기능을 제공합니다.
- 속성으로 설정된 권한에 따라 필드를 동적으로 표시합니다.
- 속성으로 설정된 제약 조건에 따라 필수 필드의 마커를 동적으로 렌더링합니다.
- 동적으로 필드 입력 유형(텍스트, 날짜, 번호, 선택, 다중 선택)을 속성으로 설정합니다.
- 속성으로 설정된 권한에 따라 읽기 전용 필드를 동적으로 렌더링합니다.
- 속성으로 설정된 순서에 따라 필드의 순서를 동적으로 정렬합니다.
- 동일한 특성 그룹에 속하는 필드를 동적으로 그룹화합니다.
5.11.6.1. 순서 지정 속성
특성 목록 페이지에서 위쪽 및 아래쪽 화살표를 클릭하여 속성 순서를 설정합니다.
속성 순서 지정
이 페이지에서 설정한 순서는 필드가 동적 형식으로 렌더링될 때 적용됩니다.
5.11.6.2. 특성 그룹화
동적 양식이 렌더링되면 동일한 특성 그룹에 속하는 속성을 그룹화하려고 합니다.
동적 업데이트 프로필 양식
특성이 특성 그룹에 연결되어 있는 경우 동일한 그룹 내의 속성이 동일한 그룹 헤더 내에서 함께 닫히도록 속성 순서도 중요합니다. 그렇지 않으면 그룹 내의 속성이 순차적 순서에 없는 경우 동일한 그룹 헤더가 동적 형식으로 여러 번 렌더링될 수 있습니다.
5.11.6.3. 속성에 대해 제출된 양식 입력 구성
Red Hat Single Sign-On은 동적 양식 및 시각화의 속성에 사용할 입력 유형을 구성하는 기본 주석을 제공합니다.
사용 가능한 주석은 다음과 같습니다.
이름 | 설명 |
---|---|
inputType | 형식 입력 필드의 유형입니다. 사용 가능한 유형은 아래 표에 설명되어 있습니다. |
inputHelperTextBefore |
입력 필드 이전에 렌더링된 도우미 텍스트입니다. 여기에서 직접 텍스트 또는 국제화 패턴(예: |
inputHelperTextAfter |
입력 필드 이후에 도움말 텍스트가 렌더링되었습니다. 여기에서 직접 텍스트 또는 국제화 패턴(예: |
inputOptionsFromValidation | select 및 multiselect 유형의 주석입니다. 사용자 정의 속성 검증의 선택적 이름으로 부터 입력 옵션을 가져옵니다. 자세한 설명은 아래를 참조하십시오. |
inputOptionLabelsI18nPrefix | select 및 multiselect 유형의 주석입니다. UI에서 옵션을 렌더링하는 국제화 키 접두사입니다. 자세한 설명은 아래를 참조하십시오. |
inputOptionLabels | select 및 multiselect 유형의 주석입니다. 옵션에 대한 UI 레이블을 정의하는 선택적 맵입니다(직접 또는 국제화 사용). 자세한 설명은 아래를 참조하십시오. |
inputTypePlaceholder |
필드에 적용되는 HTML 입력 |
inputTypeSize |
필드에 적용되는 HTML 입력 |
inputTypeCols |
필드에 적용되는 HTML 입력 |
inputTypeRows |
필드에 적용되는 HTML 입력 |
inputTypePattern |
클라이언트 측 검증을 제공하는 필드에 적용되는 HTML 입력 |
inputTypeMaxLength |
필드에 적용된 HTML 입력 |
inputTypeMinLength |
필드에 적용된 HTML 입력 |
inputTypeMax |
필드에 적용된 HTML 입력 |
inputTypeMin |
필드에 적용된 HTML 입력 |
inputTypeStep |
필드에 적용되는 HTML 입력 |
필드 유형에서는 HTML 양식 필드 태그와 적용되는 속성을 사용합니다. HTML 사양과 브라우저 지원에 따라 작동합니다.
또한 비주얼 렌더링은 사용된me에 적용된 css style에 따라 달라집니다.
사용 가능한 inputType
주석 값:
이름 | 설명 | 사용된 HTML 태그 |
---|---|---|
text | 단일 줄 텍스트 입력. | input |
textarea | 여러 줄 텍스트 입력. | textarea |
선택 사항 | 공통 단일 선택 입력. 아래 옵션을 구성하는 방법을 설명합니다. | 선택 사항 |
Select-radiobuttons | 라디오 버튼 그룹을 통해 단일 선택 입력. 아래 옵션을 구성하는 방법을 설명합니다. | 입력 그룹 |
MultiSelect | 일반적인 다중 선택 입력입니다. 아래 옵션을 구성하는 방법을 설명합니다. | 선택 사항 |
multiselect-checkboxes | 확인란 그룹을 통해 입력을 선택합니다. 아래 옵션을 구성하는 방법을 설명합니다. | 입력 그룹 |
html5-email | HTML 5 사양을 기반으로 한 이메일 주소에 대한 단일 줄 텍스트 입력. | input |
html5-tel | HTML 5 사양을 기반으로 전화 번호에 대한 단일 줄 텍스트 입력. | input |
html5-url | HTML 5 사양을 기반으로 하는 URL에 대한 단일 줄 텍스트 입력. | input |
html5-number |
HTML 5 사양에 따라 숫자( | input |
html5-range | HTML 5 사양을 기반으로 입력한 숫자의 축소입니다. | input |
html5-datetime-local | HTML 5 사양을 기반으로 하는 날짜 시간 입력. | input |
html5-date | HTML 5 사양을 기반으로 하는 날짜 입력입니다. | input |
html5-month | HTML 5 사양을 기반으로 한 월 입력입니다. | input |
html5-week | HTML 5 사양을 기반으로 하는 주 입력. | input |
html5-time | HTML 5 사양을 기반으로 하는 시간 입력. | input |
5.11.6.3.1. select 및 multiselect 필드에 대한 옵션 정의
select 및 multiselect 필드에 대한 옵션은 유효성 검사에서 가져와 검증에 적용되어 UI에 제공된 필드 옵션이 항상 일관되게 유지되도록 합니다. 기본적으로 옵션은 기본 제공 옵션
검증에서 가져옵니다.
select 및 multiselect 옵션에 대해 다양한 방법으로 사람이 읽을 수 있는 레이블을 제공할 수 있습니다. 가장 간단한 경우는 특성 값이 UI 레이블과 같은 경우입니다. 이 경우에는 추가 구성이 필요하지 않습니다.
UI 라벨과 동일한 옵션 값
특성 값이 UI에 적합하지 않은 경우 inputOptionLabelsI18nPrefix
주석에서 제공하는 간단한 국제화 지원을 사용할 수 있습니다. 국제화 키의 접두사를 정의합니다. 옵션 값은 이 접두사에 추가되는 점입니다.
i18n 키 접두사를 사용한 UI 라벨에 대한 간단한 국제화
옵션 값에 대한 로컬화된 UI 레이블 텍스트는 공통 로컬화 메커니즘을 사용하여 userprofile.jobtitle.sweng
및 userprofile.jobtitle.swarch
키를 통해 제공해야 합니다.
또한 inputOptionLabels
주석을 사용하여 개별 옵션에 대한 라벨을 제공할 수도 있습니다. 여기에는 옵션에 대한 레이블 맵이 포함되어 있습니다. 맵의 key는 옵션 값(Validation에서 정의됨)이며 맵의 값은 UI 라벨 텍스트 자체이거나 해당 옵션에 대한 국제화 패턴(예: ${i18n.key}
)입니다.
User Profile JSON 편집기
를 사용하여 map을 inputOptionLabels
주석 값으로 입력해야 합니다.
국제화가 없는 개별 옵션에 대해 직접 입력한 레이블의 예는 다음과 같습니다.
"attributes": [ ... { "name": "jobTitle", "validations": { "options": { "options":[ "sweng", "swarch" ] } }, "annotations": { "inputType": "select", "inputOptionLabels": { "sweng": "Software Engineer", "swarch": "Software Architect" } } } ... ]
개별 옵션에 대한 국제화된 레이블의 예:
"attributes": [ ... { "name": "jobTitle", "validations": { "options": { "options":[ "sweng", "swarch" ] } }, "annotations": { "inputType": "select-radiobuttons", "inputOptionLabels": { "sweng": "${jobtitle.swengineer}", "swarch": "${jobtitle.swarchitect}" } } } ... ]
지역화된 텍스트를 Jobtitle.swovn 및
키를 통해 제공한 다음 공통 현지화 메커니즘을 사용해야 합니다.
jobtitle.sw
architect
사용자 정의 검증기를 사용하면 inputOptionsFromValidation
속성 주석으로 옵션을 제공할 수 있습니다. 이 검증에는 다양한 옵션을 제공하는 옵션
config가 있어야 합니다. 국제화는 기본 제공 옵션 검증에서 제공하는 옵션과 동일한 방식으로 작동합니다.
사용자 정의 검증기에서 제공하는 옵션
5.11.7. 사용자 프로필 규정 준수 강제 적용
사용자 프로필이 구성을 준수하도록 하려면 관리자는 VerifyProfile
필수 조치를 사용하여 결국 사용자가 Red Hat Single Sign-On에 인증할 때 프로필을 업데이트하도록 할 수 있습니다.
VerifyProfile
작업은 UpdateProfile
작업과 유사합니다. 그러나 사용자 프로필에서 제공하는 모든 기능을 활용하여 사용자 프로필 구성의 준수를 자동으로 시행합니다.
활성화되면 사용자가 인증할 때 VerifyProfile
작업이 다음 단계를 수행합니다.
- 사용자 프로필이 영역으로 설정된 사용자 프로필 구성을 완전히 준수하는지 확인합니다.
- 그렇지 않은 경우 인증 중에 추가 단계를 수행하여 사용자가 누락되거나 유효하지 않은 속성을 업데이트할 수 있습니다.
- 사용자 프로필이 구성과 호환되는 경우 추가 단계가 수행되지 않으며 사용자는 인증 프로세스를 계속합니다.
기본적으로 VerifyProfile
작업이 비활성화됩니다. 활성화하려면 왼쪽 메뉴에서 Authentication
링크를 클릭한 다음 Required Actions
탭을 클릭합니다. 이 탭에서 Register
버튼을 클릭하고 VerifyProfile
작업을 선택합니다.
VerifyProfile 필수 작업 등록
5.11.8. 사용자 프로필로 마이그레이션
영역에 User Profile 기능을 활성화하기 전에 알아야 할 몇 가지 중요한 고려 사항이 있습니다. 특성 메타데이터를 관리할 수 있는 단일 환경을 제공하므로 이 기능은 사용자에게 설정할 수 있는 속성과 관리 방법에 대해 매우 엄격한 기능입니다.
사용자 관리 측면에서 관리자는 사용자 프로필 구성에 정의된 속성만 관리할 수 있습니다. 사용자로 설정하고 사용자 프로필 구성에 아직 정의되어 있지 않은 다른 속성에는 액세스할 수 없습니다. 사용자 또는 관리자에게 노출하려는 모든 사용자 속성으로 사용자 프로필 구성을 업데이트하는 것이 좋습니다.
사용자 정보를 쿼리하기 위해 User REST API에 액세스하는 사용자에게 동일한 권장 사항이 적용됩니다.
해당 속성에 액세스하려면 LDAP_ID
,LDAP_ENTRY_DN
, KERBEROS_PRINCIPAL
과 같은 Red Hat Single Sign-On 내부 사용자 속성에 대한 속성을 액세스할 수 있습니다. 관리 콘솔을 통해 사용자 속성을 관리하거나 사용자 API를 통해 사용자를 쿼리할 때 이러한 속성을 관리자에게만 볼 수 있도록 이러한 속성을 관리자에게만 표시하는 것이 좋습니다.
파일과 관련하여 기존 템플릿(사용자 루트 속성을 사용하여 하드 코딩됨)에 대한 사용자 지정이 이미 있는 경우 사용자 쪽 양식을 렌더링하지만 이러한 양식을 동적으로 렌더링하는 새 템플릿을 사용하지 않습니다. 이상적으로 템플릿에 사용자 정의를 사용하지 말고 이러한 새 템플릿에서 제공하는 동작을 계속하여 양식을 동적으로 렌더링하는 것이 좋습니다. 요구 사항을 해결하기에 아직 충분하지 않은 경우 새 템플릿을 개선하는 것이 적합한지 여부를 논의할 수 있도록 사용자 지정하거나 피드백을 제공할 수 있습니다.