2015-02-27 5 views
0

Я реализовал GAM (внешняя аутентификация) для моего проекта SmartDevices, который использует «Динамический URL» (в GeneXus).Требование аутентификации: N UserNames - 1 ExternalID

Я только что получил новое требование: - В среде по умолчанию (демонстрационная версия) приложение должно принять ЛЮБОЕ имя пользователя/пароль и присвоить ему внешний идентификатор «200» (этот номер будет использоваться в приложении для извлечения данных для учетной записи DEMO).

В моей демонстрационной среде, используя GamHome, я изменил «внешний веб-сервис», чтобы всегда возвращать «1» (пользователь и пароль в порядке) и «200» (внешний идентификатор). Когда я запускаю приложение и пытаюсь выполнить аутентификацию с любым случайным именем пользователя, я получаю сообщение: «Внешняя идентификация пользователя уже существует» (что-то вроде этого).

Можно ли мне изменить WebService аутентификации для того, чтобы либо:

  • Разрешить множественные Usernames разделять один и тот же внешний идентификатор?
  • Замените имя пользователя, предоставленное методом LoginExternal (устройство), чтобы обеспечить уникальное «ID-Username»?
  • Отмените процедуру входа в систему и создайте новую, автоматическую, с фиксированным пользователем?

Любые другие предложения?

(Я бы хотел изменить службы, чтобы избежать изменения приложений, если это возможно).

(Это требование только для нашей демонстрационной среды - в среде Live, каждый пользователь будет иметь свой собственный идентификатор и будет надлежащим образом аутентифицирован).

ответ

0

Внешние идентификаторы должны быть уникальными. Для демонстрационной среды вы можете просто войти всегда с фиксированным пользователем и паролем (независимо от учетных данных, введенных пользователем). В этом случае вы можете предоставить некоторые механизмы для фильтрации данных с помощью устройства в демонстрационном режиме, чтобы гарантировать, что пользователи с несколькими демонстрационными примерами получат правильный опыт.

+0

Вход с фиксированным пользователем будет решением. Но для этого требуется, чтобы я изменил клиентское событие в приложении, верно? (if & ServerURL = 'DemoEnvir' & User = 'DemoUser') – Jaime

+0

Есть ли что-нибудь, что я могу сделать в своей службе аутентификации WebService для этого, не меняя самого приложения? – Jaime

+0

При использовании External Authentication 2.0 http://wiki.genexus.com/commwiki/servlet/hwikibypageid?21555 вы можете добавить дополнительные параметры, чтобы служба затем идентифицировала пользователя как Демо-пользователя. –