我目前正在设置一个带有keycloak集成的angular4项目。因此,当我按照keycloak github存储库(angular2-product-example)中的示例时,我创建了一个keycloak.json客户端配置文件并将其上传到我的web项目中,该项目可通过web url访问。我需要它,以便我可以初始化js适配器:
let keycloakAuth: any = new Keycloak('keycloak.json');
但是我对安全性有顾虑,可以从网址访问具有keycloak客户端密钥的配置。在这种情况下,它通常如何保障?
答案 0 :(得分:1)
坦率地说,这是不可能的,因为阻止它被用户读取将意味着阻止它被Keycloak-js读取(它们使用XMLHttpRequest,但是在授权之前,因此需要授权才能访问文件中的keycloak.json。不可能获得第一名。)
如this tutorial中所述(请注意,对于React而言),您必须为前端设置一个公共客户端,因为前端将以普通代码公开。根据{{3}}的说法,私有客户端可能可以在Firefox或Chrome上运行,但是它不可避免地会通过Internet Explorer生成400,并且不能保证以任何一种方式工作。
PS,因为我假设您使用的是标准Keycloak-js适配器,所以您也可以只使用const keycloak : Keycloak.KeycloakInstance = Keycloak();
,它应该自动获取位于同一文件夹中的keycloak.json
文件。这将使不熟悉Keycloak-js的人对文件名的了解减少。
答案 1 :(得分:-1)
您应该使用.htaccess
文件来阻止访问您的网络托管上的特定文件或文件夹。有关此事的更多信息可以在上找到
链接如下: