Я сталкиваюсь с Challege, когда мигрируют, существуют пользовательские данные Google в KeyCloak. В настоящее время я работаю над проектом, включающим архитектуру микросервиса, и KeyCloak служит моим поставщиком аутентификации OpenID Connect (OIDC). И теперь я стремлюсь централизовать источник пользовательских данных путем переноса всех пользовательских данных в схему MySQL по умолчанию, сгенерированную KeyCloak. Похоже, нет простого способа отметить пользователя как пользователя Google в KeyCloak. Например, если я перемещаю пользовательские данные, которые ранее зарегистрированы в Login Google с помощью xxxx@google.com через API keycloak Rest, а затем пользователь пытается вход в Google, KeyCloak воспринимает его как нового пользователя и, следовательно, отображает ошибку
для дубликата, найденного. Использовать keyCloak "Создать пользователь" REST API. Это позволяет мне публиковать информацию пользователя, включая идентификаторы, в keycloak.w, но, кажется, не относится к пользователям входа в систему Google. /> Для контекста моя оригинальная база данных хранит электронную почту, имя пользователя и поставщик (Self или Google), и GoogleID не хранится.@NoArgsConstructor
@Data
@Document(collection = "User")
@AllArgsConstructor
@Builder
public class User implements UserDetails {
@Id
private String id;
@Field
private String auth_user_id;
@Field
private String encrypted_pwd;
@Field
private String username;
@Field
private String email;
@Field
private String region;
@Field
private LanguageEnum default_language=LanguageEnum.zh_HK;
@Field
private List prefer_cate=List.of();
@Field
private List prefer_grade=List.of();
@Field
private List prefer_tag=List.of();
@Field
private List role=List.of(RoleEnum.USER);
@Field
private IdentityEnum identity;
@Field
private String otp;
@Field
private boolean isEnable=false;
@Field
private LocalDateTime otpGeneratedTime;
@Field
private Authprovider provider;
@Field
private String profileUrl;
@Field
private String contact;
@Field
private String address;
@Field
private LocalDateTime created_at;
@Field
private LocalDateTime updated_at;
< /code>
Пример пользовательских данных как формат JSON в Mongo: < /p>
{
"_id": {
"$oid": "xxxxxxxx"
},
"username": "xxxxx",
"email": "xxxx@google.com",
"default_language": "**",
"prefer_cate": [],
"prefer_grade": [],
"prefer_tag": [],
"role": [
"USER"
],
"otp": "***",
"isEnable": true,
"otpGeneratedTime": {
"$date": "2024-06-13T14:18:05.548Z"
},
"provider": "google",
"profileUrl": "****",
"subscription_plan": "FREE",
}
< /code>
Учитывая, что в прошлом я использовал поле «поставщик», чтобы идентифицировать пользователя как логин Google и самостоятельный регистр. Заранее спасибо за помощь.
Подробнее здесь: https://stackoverflow.com/questions/795 ... oak-schema
Миграция данных пользователей социального поставщика в схему keycloak [закрыто] ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Мигрирование данных пользователей социального провайдера в схему KeyCloak
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Конфигурация Keycloak User Storage SPI для хранения пароля из внешней базы данных в keycloak
Anonymous » » в форуме JAVA - 0 Ответы
- 47 Просмотры
-
Последнее сообщение Anonymous
-