根据在https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Config-authentication-context上找到的ADAL js Wiki,我们的前端应用程序在初始化ADAL时必须指定ClientID和后端API端点。
由于每个租户都有自己的ClientID,我们最终将所有可能的ClientID和Endpoint添加到我们的代码中,并在运行时根据当前URL确定值。这显然不能很好地扩展,因为它需要为每个新租户更改代码。我们正在考虑将这项工作移至CI / CD流程,但试图了解是否有更好的解决方案。
是否有更好的方法通过ADAL js管理多个单租户应用?
答案 0 :(得分:0)
由于应用程序的每个实例都是单独注册的(因此具有自己的ClientId),所以ADAL.js不能为您提供更好的解决方案。
您可以使用Angular Environment的e。 G。
environment.tenant1.ts
enviornment.tenant2.ts
并使用ng build --prod ---configuration=tenant1
为每个租户创建一个构建工件。我不喜欢这种解决方案,因为您有多个构建工件。
或者您公开一个中间件/ REST API,该API通过URL返回特定客户端的配置。这将是您的客户需要知道的唯一端点。但是,您必须确保中间件始终处于运行状态(单点故障)。