为什么在使用 keycloak JavaScript 适配器时不允许访问?
Why do I get not allowed access when using keycloak JavaScript adapter?
我有一个通过 Keycloak 进行身份验证的 Django 应用程序,如 here. From this Django app I now wants to call a microservice also protected by Keycloak using the same login. I don't want the suer to have to login again. I am trying to yse the JavaScript adapter 所述。我正在尝试将其配置为:
<script>
var keycloak = Keycloak({
url: "{{Keycloakurl}}/auth",
realm: 'myrealm',
clientId: 'myclient'
});
keycloak.init({ onLoad: 'login-required' }).success(function(authenticated) {
alert(authenticated ? 'authenticated' : 'not authenticated');
}).error(function() {
alert('failed to initialize');
});
</script>
但是当我加载页面时,我收到这样的错误消息:
Failed to load http://keycloak.FOO.com/auth/realms/toxhq/protocol/openid-connect/token: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://myapp.Foo.com' is therefore not allowed access.
我不完全确定这是为什么,但我开始怀疑这是否是因为 same-origin policy 在某种程度上。
如何使用共享一个 Keycloak 身份验证的受 Keycloak 保护的微服务来设置我想要的功能?
您必须在 Keycloak 控制台中为 myclient
设置允许的来源。 (检查客户详细信息屏幕上的最后一个输入框)
我有一个通过 Keycloak 进行身份验证的 Django 应用程序,如 here. From this Django app I now wants to call a microservice also protected by Keycloak using the same login. I don't want the suer to have to login again. I am trying to yse the JavaScript adapter 所述。我正在尝试将其配置为:
<script>
var keycloak = Keycloak({
url: "{{Keycloakurl}}/auth",
realm: 'myrealm',
clientId: 'myclient'
});
keycloak.init({ onLoad: 'login-required' }).success(function(authenticated) {
alert(authenticated ? 'authenticated' : 'not authenticated');
}).error(function() {
alert('failed to initialize');
});
</script>
但是当我加载页面时,我收到这样的错误消息:
Failed to load http://keycloak.FOO.com/auth/realms/toxhq/protocol/openid-connect/token: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://myapp.Foo.com' is therefore not allowed access.
我不完全确定这是为什么,但我开始怀疑这是否是因为 same-origin policy 在某种程度上。
如何使用共享一个 Keycloak 身份验证的受 Keycloak 保护的微服务来设置我想要的功能?
您必须在 Keycloak 控制台中为 myclient
设置允许的来源。 (检查客户详细信息屏幕上的最后一个输入框)