Как настроить auth0 в angular, чтобы возвращаемый токен можно было использовать для MULTIPLE apis? - PullRequest
0 голосов
/ 25 августа 2018

Например, у меня есть приложение Angular 5.И 2 разных микросервиса, использующих ядро ​​asp.net 2.1.Как будет выглядеть конфигурация на стороне клиента, например, будет ли она выглядеть следующим образом?:

  auth0 = new auth0.WebAuth({
clientID: environment.clientID,
domain: environment.domain,
responseType: 'token id_token',
scope: "openid profile API1 API2",
redirectUri: environment.callbackURL

});

Может ли кто-нибудь предоставить и пример этого объекта конфигурации, удовлетворяющий критериям допустимости токена при отправке на два разных API-интерфейса?Проблема, с которой я сталкиваюсь, заключается в том, что я могу настроить ОДИН рабочий клиентский API, но для этого необходимо, чтобы я связал код auth0 углового клиента с одним API, так как он знает переменную «аудиторию», такую ​​как

* 1007.*

});

Но проблема в том, что конфигурация на клиенте теперь специфична для API (так как у нее есть аудитория), тогда как мне нужно настроить клиент, чтобы он мог делать запросыНЕСКОЛЬКО РАЗНЫХ АПИС.Любая помощь приветствуется.Я чувствую, что все, что нужно, - это действительный пример установки объекта

auth0.WebAuth

Красный флажок при настройке моего приложения был, когда я заметил, что на основе рекомендованного подхода было рекомендованоЯ жестко закодировал ОДНО свойство аудитории, которое не имеет смысла.Если я связываю клиента с 1 и только с 1 аудиторией, то я не могу добавить больше, верно?

Я прочитал следующие ссылки https://auth0.com/docs/quickstart/backend/aspnet-core-webapi/01-authorization https://auth0.com/docs/libraries/auth0js/v9

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

Я также задавал подобный вопрос здесь https://github.com/auth0-samples/auth0-aspnetcore-webapi-samples/issues/13#issuecomment-416036439

Другими словами, когда в угловом приложении указано одно свойство AUDIENCE, токен, полученный при обратном вызове, действителен только для1 api, 1 указан в аудитории недвижимости.Вызов конечной точки на 2-м интерфейсе API завершается неудачно с данным токеном.

Единственный способ обойти эту путаницу - это использовать одно и то же значение для параметров. Аудитория в ОБА ядре asp.net, особенно здесь, в файле startup.cs

            }).AddJwtBearer(options =>
        {
            options.Authority = Configuration["Auth0:Domain"];
            options.Audience = Configuration["Auth0:ApiIdentifier"];
        });

, который не выглядит правильным с тех порэто значение должно быть разным для микросервиса / API.

1 Ответ

0 голосов
/ 27 августа 2018

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

https://community.auth0.com/t/access-tokens-with-multiple-audiences/9911

https://auth0.com/docs/api-auth/tutorials/represent-multiple-apis

вот еще один хороший ответ

https://community.auth0.com/t/webauth-audience-multiple-apis-and-scopes/7063/2

...