与and IdentityServer 4和Angular与oidc-client的多租户

时间:2018-11-28 12:58:03

标签: angular identityserver4 oidc-client-js

我们正在使用Angular 6开发一个多租户应用程序。每个租户都使用其子域(例如client1.app.comclient2.app.com等)访问该应用程序。

出于身份验证的目的,我们使用IdentityServer4。我们已按照与https://identityserver4.readthedocs.io/en/release/quickstarts/7_javascript_client.html中提到的步骤相似的步骤进行操作。

一切正常-我们遇到的问题是如何在Angular客户端应用程序中指定redirect_uri

您很清楚,身份服务器使用redirect-uri来返回认证结果和信息。根据{{​​1}}库,oidc-client是一个字符串,我们不能指定多个值。但是,在我们的案例中,根据客户的子域,redirect_uri会有所不同,并且必须是动态的。

有人遇到过类似情况吗?我有什么事吗?解决上述问题的任何指针都会有很大帮助。

谢谢 苏希尔

1 个答案:

答案 0 :(得分:0)

您将需要在客户端中设置redirect_uri以便从主机解析(使用window.location或您要在此处使用的任何解决方案)。然后,每个租户在访问Identity Server时都会传递此URI。

在Identity Server端的Client对象中,RedirectUris属性是一个集合,因此您应该在其中添加所有租户的重定向uri(也不要忘记PostLogoutRedirectUris)。