Как управлять несколькими Арендаторами, ClientID и конечными точками с помощью ADAL js frontend? - PullRequest
2 голосов
/ 02 апреля 2019

Справочная информация:

  • Мы используем модель с одним арендатором для каждого приложения
  • Все арендаторы используют один и тот же код внешнего интерфейса и внутреннего интерфейса, который развертывается и размещается отдельно в разных поддоменах длякаждый арендатор
  • Мы предоставляем отдельные приложения AzureAD для каждого арендатора, в результате чего для каждого

создаются различные идентификаторы клиента:

Согласно вики ADAL js, найденной здесь: https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Config-authentication-context, наше клиентское приложение должно указывать конечные точки API ClientID и внутреннего интерфейса при инициализации ADAL.

Поскольку каждый из наших клиентов имеет свой собственный ClientID, мы закончили тем, что добавили все возможные ClientID и конечные точки в наш код и выяснили значения во время выполнения на основе текущего URL.Это, очевидно, не очень хорошо масштабируется, так как требует изменения кода для каждого нового арендатора.Мы думаем перенести эту работу на процесс CI / CD, но пытаемся понять, есть ли лучшее решение.

Есть ли лучший способ управления несколькими приложениями с одним арендатором с помощью ADALJS?

1 Ответ

0 голосов
/ 02 апреля 2019

Поскольку каждый экземпляр вашего приложения регистрируется отдельно (следовательно, имеет собственный ClientId), ADAL.js не предоставляет вам лучшего решения.

Вы можете работать с Angular Environment s, например,

environment.tenant1.ts
enviornment.tenant2.ts

И создать артефакт сборки для каждого арендатора, используя ng build --prod ---configuration=tenant1.Мне не нравится это решение, поскольку у вас есть несколько артефактов сборки.

Или вы предоставляете промежуточное программное обеспечение / REST API, которое возвращает конфигурацию для конкретного клиента по его URL-адресу.Это будет единственной конечной точкой, которую должен знать ваш клиент.Тем не менее, вы должны убедиться, что промежуточное ПО всегда работает (единая точка отказа).

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