Ошибка «Предоставленное разрешение авторизации недопустимо» при попытке входа в докеризированное приложение с помощью wso2 - PullRequest
1 голос
/ 10 февраля 2020

Я подключил наше Angular приложение, которое использовало WSO2 в качестве менеджера API. После настройки я смог успешно запустить приложение и получить доступ ко всем существующим API. Единственная проблема возникает, когда я пытался использовать oath2 / token api для выполнения операции входа в систему нашего клиента. Несмотря на то, что тот же код раньше использовался для аутентификации (до докеризации) без каких-либо проблем, теперь я получаю сообщение об ошибке:

{
  "error": "invalid_grant",
  "error_description": "Provided Authorization Grant is invalid"
}

API для генерации токена для входа в систему:

https://<myapplicationurl>:9443/oauth2/token

Ошибки появляются в консоли docker при попытке входа в систему с именем пользователя 'devtest7@mailinator.com':

enter image description here

Примечания:

  • Версия WSO2 AM - 2.1.0 , версия WSO2 IS - 5.3.0
  • Аргументы (заголовки и параметры) для запрос такой же, как и ранее (за исключением имени пользователя и пароля).
  • Я могу создать новых пользователей, и соответствующий пользователь указан в списке пользователей Carbondb.
  • Проблема существует при попытке входа в систему с использованием существующего пользователя, а также только что созданных пользователей.
  • Я недавно создал новый ssl-сертификат для приложения.
  • Возможность входа только с использованием супер-администратора. Вход в систему с использованием только что созданной электронной почты и имени пользователя не работает.

Я пробовал решения, обнаруженные в stackoverflow, которые не устранили мои проблемы. Может ли кто-нибудь помочь, пожалуйста?

Ответы [ 3 ]

3 голосов
/ 13 февраля 2020

Согласно журналам, в нем говорится:

Домен клиента, не являющегося поставщиком услуг SaaS, не совпадает с доменом клиента пользователя; carbon.super! = mailinator.com

По логам SP находятся в арендаторе carbon.super . Но он считает пользователя как в арендаторе mailinator.com .

Когда мы указываем имя пользователя для предоставления пароля с электронной почтой в качестве имени пользователя, мы должны использовать полное имя пользователя с доменом клиента. (devtest7@mailinator.com@carbon.super).

2 голосов
/ 19 февраля 2020

Спасибо всем, кто прокомментировал и попытался найти решение для упомянутой мной проблемы. Я получил разрешение на проблему. Поскольку я несколько раз пытался войти в систему, выполняя перестановки и комбинации в конфигурациях, аутентификация была заблокирована для меня. По этой причине я не смог войти и сгенерировать токен доступа. Мне удалось решить эту проблему, изменив флаг в identity. xml file in IS . Изменено включение UserOperationEventListener с 'true' на 'false'.

До:

<EventListener enable="true" name="org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener" orderId="95" type="org.wso2.carbon.user.core.listener.UserOperationEventListener"/>

После:

<EventListener enable="false" name="org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener" orderId="95" type="org.wso2.carbon.user.core.listener.UserOperationEventListener"/>

Это изменение позволило мне заблокировать неверную аутентификацию чек об оплате. В любом случае мы добавляем эту проверку со стороны нашего кода.

1 голос
/ 13 февраля 2020

В журналах выше есть строка, в которой говорится, что SP-клиент не равен пользовательскому клиенту и SP не является SaaS. Являются ли SP и пользователи из разных арендаторов? Обычно пользователи не могут получить доступ к SP для разных арендаторов.

Если вы хотите сделать SP доступным для разных арендаторов, вам нужно включить опцию приложения SaaS в SP. Отметьте это, сделав c, чтобы узнать больше о приложении SaaS https://docs.wso2.com/display/IS530/Adding+and+Configuring+a+Service+Provider

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...