How is your experience with the OutSystems Community?
18
Views
2
Comments
[From O11 to ODC] "Grant Access to Users" step 12: "Invalid credentials" on Personal

TL;DR (English)

Course: From O11 to ODC / Tutorial: Grant Access to Users (koKR).

Following the tutorial as written, app login fails with "Invalid

credentials" even after end-user roles are correctly assigned in Development.

The (System) User entity had 0 records. Login worked only after inviting the

user via Invite User and setting a password from the invitation email. The

tutorial never mentions this prerequisite, and its portal screenshots are

outdated. Details in Korean below.


Note: some Post context fields are left blank because they are O11-specific and

have no ODC equivalent. Environment: ODC (OutSystems Developer Cloud) Personal

Edition, ODC Studio 1.7.x, Development stage.


---


Post context 필드는 O11 기준이라 해당 값이 없어 일부를 비워 두었습니다. 환경은

ODC(OutSystems Developer Cloud) Personal Edition, ODC Studio 1.7.x,

Development 스테이지입니다.


---


From O11 to ODC 과정의 「사용자에게 액세스 권한 부여」(Grant Access to Users)

문서에 나온 모든 단계를 그대로 수행했는데도 Directory·Vacations 앱에 로그인할 수

없었습니다. 원인을 찾아 해결은 했지만, 문서에 빠진 내용이 있어 공유합니다.


- 강의: From O11 to ODC

- 문서: 사용자에게 액세스 권한 부여 (Grant Access to Users), 한국어(koKR)

  PDF 9페이지

- 환경: OutSystems Personal Edition / Development 스테이지 / ODC Studio 1.7.x

- 확인 일자: 2026-08-25 (KST)


■ 1. 무슨 일이 있었나


문서 12)단계는 "자격 증명으로 로그인합니다"라고만 안내합니다. 이 표현 때문에

OutSystems 계정 비밀번호로 앱에 로그인된다고 이해했는데, 실제로는 되지

않았습니다.


- 기대 동작 (문서 3p 시나리오): 로그인은 성공하고, 역할이 없으면

  "You need other permissions to view this screen" 화면이 뜬다

- 실제 동작: 로그인 자체가 "Invalid credentials"로 실패하여, 문서가 설명한

  화면에 도달조차 못 한다


확인한 내용은 이렇습니다.


- Directory·Vacations 두 앱의 end-user role을 Development 스테이지에 부여 완료.

  포털에서 "Directly assigned"와 "Assigned to group" 컬럼 모두 체크 확인

- 동일 계정으로 ODC 포털 로그인은 정상 ("Last login: 10 minutes ago")

- ODC Studio에서 (System) User > Entity Data 조회 결과 "No records to show".

  즉 역할은 있는데 앱 사용자 스토어에 계정 레코드가 아예 없는 상태

- 다른 주소를 Invite User로 초대하고 초대 메일에서 비밀번호를 설정한 뒤에야

  로그인 성공


특히 짚고 싶은 점은, 실패한 계정이 ODC 포털 로그인에 쓰는 제 주 OutSystems

계정이라는 것입니다. 즉 수강자가 12)단계에서 자연스럽게 쓸 바로 그 계정이

실패하고, 새로 초대한 계정은 성공합니다. 강의가 상정한 정상 경로가 곧 실패

경로인 셈입니다.


한 줄로 정리하면 이렇습니다. ODC 포털 로그인 계정(관리자)과 앱 로그인 계정

(end-user)은 서로 다른 저장소를 쓰며, 두 계정이 자동으로 동일 사용자로

프로비저닝되지 않습니다. 그래서 포털 계정으로 앱에 로그인하면 인증 단계에서

막힙니다. (System) User가 0건이었던 것이 그 증거입니다.



■ 2. 문서와 실제 동작의 차이


찾아보니 제품 문서와도 앞뒤가 맞습니다. Self-registration 문서는 내장 identity

provider에 사용자를 생성하려면 StartUserRegistration을 명시적으로 호출해야

하며, 해당 기능이 "내장 identity provider에서만" 동작한다고 설명합니다. 즉

역할 부여는 계정 생성이 아니고, 계정은 포털 초대나 self-registration으로 별도

프로비저닝되어야 합니다. 강의 문서에는 이 전제가 전혀 없습니다.


같은 문서는 ODC 포털의 이메일 제공자 설정을 인증 코드 발송의 선행 조건으로

명시합니다. 제 경우 앱의 "Forgot your password?"로 메일이 오지 않아 포털 초대만

동작했던 것도 이것으로 설명될 수 있어 보입니다.


■ 3. 강의용 앱에는 계정을 등록할 경로가 없습니다


내장 사용자 스토어에 계정이 등록되는 방법은 세 가지입니다.


- ODC 포털 Invite User + 초대 메일에서 비밀번호 설정 (초대 수락 시 생성)

- built-in community provider 로그인 (첫 인증 시 자동 생성)

- Self-registration, StartUserRegistration 사용 (사용자 직접 가입 시 생성)


그런데 Directory·Vacations 로그인 화면에는 이메일과 비밀번호 입력란만 있고

"Continue with Built-in community provider" 옵션이 없습니다. 스토어에 레코드가

없는 수강자는 그 화면에서 더 나아갈 방법이 없습니다.


그 결과가 이 포럼에 나타나 있습니다. 통용되는 우회책이, 로그인 화면에 그 버튼이

있다는 이유만으로 관련 없는 Forge 앱(Database Access)을 설치해 거기서 인증하고

강의용 앱으로 돌아오는 방식입니다. 공식 강의의 한 단계에 대한 사실상의 해법이

이것입니다.


올바른 방법은 이미 "Modify the built-in login screen for external provider

login" 문서에 나와 있습니다.


■ 4. 문서 갱신도 필요합니다


- 4p 3)단계: 문서는 "MANAGE > Users" 사이드바 기준이지만, 현재 포털은

  ADMIN(Organization, Subscription) / GOVERN(Users, End-user groups,

  API clients, Organization roles, Identity providers) / MAINTAIN / CONFIGURE

  구조입니다

- 5p 5)단계: 사용자 상세 화면이 "Organization access" / "End-user access"

  탭으로 분리되었고 역할 할당 패널도 캡처와 다릅니다

- End-user groups(그룹 단위 권한 부여)는 문서에 아예 언급이 없어, 실제 화면의

  "Assigned to group" / "Group name" 컬럼이 무엇인지 알 수 없습니다


■ 5. 문서 수정안 (그대로 반영 가능한 문장)


(1) 12)단계 앞에 전제 조건 추가


  "이 단계에서 사용하는 자격 증명은 ODC 포털 로그인 계정이 아닙니다. 앱에

  대해 미리 생성된 End-user 계정이 필요합니다. 계정이 없으면 GOVERN > Users

  에서 Invite user로 초대한 뒤, 초대 메일의 링크에서 비밀번호를 설정하십시오."


(2) 12)단계 설명 보강


  "로그인이 성공한 뒤 역할이 부여되지 않은 사용자에게는 'You need other

  permissions to view this screen'이 표시됩니다. End-user 계정 자체가 없으면

  로그인 단계에서 'Invalid credentials'가 발생합니다."


(3) 스테이지 주의 문구 추가


  "앱 URL이 -dev이면 Development 스테이지의 사용자와 역할이 적용됩니다. 계정

  초대와 역할 부여를 앱과 동일한 스테이지에서 수행하십시오."


(4) 역할 부여 경로를 두 갈래로 병기


  - 사용자 중심: GOVERN > Users > (사용자) > End-user access > Manage roles >

    Asset 선택

  - 그룹 중심: GOVERN > End-user groups > (그룹) > End-user roles / Users


(5) 랩 흐름 제안


  문서가 설명하는 시나리오를 그대로 재현하려면, 수강자 본인 계정이 아니라

  테스트용 end-user를 하나 만들어 진행하는 편이 안정적입니다. 이 랩의 주제가

  "다른 사용자에게 권한을 부여"하는 것이므로 관리자와 대상 사용자를 분리하면

  학습 목표도 더 선명해집니다.


  1) Invite user로 end-user 생성 (Development 스테이지)

  2) 역할을 부여하지 않은 상태로 -dev URL에 로그인

     -> "You need other permissions to view this screen" 확인

  3) 역할 부여 후 재로그인 -> 대시보드 진입 확인



■ 질문


1. 이 강의용 앱들에서 계정을 프로비저닝하는 지원 경로가 포털 초대뿐입니까?

   아니면 강의가 상정한 다른 경로가 있습니까?

2. 이 문서의 영문 원문도 동일한 내용입니까? 동일하다면 수정 대상은 한국어

   번역이 아니라 원문 문서일 것입니다.

3. 강의용 앱 로그인 화면에 built-in community provider 옵션을 포함시키거나,

   최소한 12)단계에서 관련 문서로 링크를 걸어주실 수 있습니까? 현재는 수강자가

   강의를 마치려고 제3의 앱을 설치하는 상황입니다.


참고로 로그인 실패는 항상 "Invalid credentials"로 고정이었고, Directory와

Vacations 두 앱 모두 동일했습니다. "You need other permissions to view this

screen" 화면에는 한 번도 도달하지 못했습니다. (System) User 레코드가 0건이면

인증 단계에서 조회할 계정이 없으므로 권한 검사 단계까지 진입하지 못하기

때문입니다. 즉 문서가 설명하는 시나리오는 현재 랩 흐름으로는 재현 자체가

불가능했습니다.


첨부한 스크린샷 3장은 각각 로그인 실패 화면, 역할 할당이 완료된 End-user access

탭, 그리고 레코드가 0건인 (System) User 엔티티입니다.






01-invalid-credentials.png
02-end-user-roles-assigned.png
03-user-entity-empty.png
UserImage.jpg
HyunHo Oh

Pinning the concrete doc-fix proposal and the state matrix here for visibility (details in section 5 of the post).

본문 ■5의 핵심을 요약하고, 상태별 재현 결과를 표로 정리합니다.

상태별 재현 결과

(System) User 레코드    역할       결과

없음                                  부여됨   Invalid credentials — 인증 단계에서 실패 (확인)

있음                                  부여됨   대시보드 진입 (확인, Invite user 계정)

있음                                  없음       You need other permissions to view this screen (미확인)

세 번째 상태가 문서 3p 시나리오가 설명하는 화면인데, 계정이 없으면 그 상태에 도달할 방법 자체가 없습니다. Directory와 Vacations 두 앱 모두 동일했습니다.

문서 수정 제안 — 12)단계 앞에 아래 순서를 추가

  1. GOVERN > Users > Invite user로 테스트 end-user 생성 (Development 스테이지)
  2. 역할 미부여 상태로 -dev URL 로그인 → 권한 부족 화면 확인
  3. 역할 부여 후 재로그인 → 대시보드 진입 확인

역할 부여 경로 (현행 IA)

  • 사용자 중심: GOVERN > Users > (사용자) > End-user access > Manage roles > Asset 선택
  • 그룹 중심: GOVERN > End-user groups > (그룹) > End-user roles / Users

스테이지 주의 — 앱 URL이 -dev이면 Development 스테이지의 사용자와 역할이 적용됩니다. 초대와 역할 부여를 앱과 같은 스테이지에서 수행해야 합니다.

핵심 — ODC 포털 로그인 계정과 앱 end-user 계정은 서로 다른 저장소를 씁니다.

2026-01-28 16-57-48
Mihai Melencu
Champion

Hi @HyunHo Oh ,

Probably the practice applications are outdated, please check this discussion for a fix: A solution for the PE Login Wall: End-User Access to Apps in Personal Edition .

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.