무언가 놓친 부분이 있는지 확인 중입니다. userinfo/picture 속성에 기반한 download_avatar_url은 해당 호출에 액세스 토큰이 포함되지 않아 실패할 것임을 알고 있습니다(Entra의 경우 graph/me 엔드포인트입니다). importer에 인증 로직을 추가하는 것은 조건문이 복잡해져서 취약할 것 같아 꺼려집니다.
저는 익명으로 접근 가능한 아바타 엔드포인트가 있으며, 이는 정상적으로 작동합니다(외부 URL 및 사용자 이름 기반 대체 방식으로 테스트 완료).
보통 이런 문제는 Entra의 선택적 클레임(optional claims)으로 처리하고, 앱에서 해당 클레임을 상대 측의 올바른 필드로 매핑하는 방식으로 해결합니다. 이 방법은 성공적으로 구현할 수 있으며, 상세한 OIDC 로그에서 클레임이 포함된 올바르게 포맷된 JWT를 확인할 수 있습니다. 하지만 기본 플로우에서는 access_token을 사용하여 userinfo를 가져오게 되는데, 이는 제가 추가하거나 수정할 수 없는 부분이며, 나머지 클레임은 폐기됩니다.
userinfo_endpoint가 정의되지 않은 경우 JWT의 클레임을 사용한다는 점을 발견했습니다. 문제는 이것이 discovery doc의 내용에 의해 트리거되는데, 이는 .wellknown의 일부이므로 제가 조정할 수 없다는 것입니다. Ruby 코드를 해킹해서 항상 JWT를 사용하도록 하는 것은 임시방편(클러지)에 불과합니다. 우리는 배포 환경의 public 디렉터리에서 discovery doc의 "포크"를 서빙하는 방법도 고려해 보았지만, 이것 역시 임시방편에 불과합니다.
discovery doc을 만지지 않고 변수를 설정(또는 편집)할 수 있는 메커니즘을 놓치고 있는 건가요? discovery를 사용하지 않고 값을 복제하는 방식에는 반대하지 않지만, 코드를 패치하지 않고 그렇게 할 수 있는 방법을 찾지 못하고 있습니다.