2017-10-19 89 views
0

我有一個Django應用程序通過Keycloak進行身份驗證,如here所述。從這個Django應用程序,我現在要調用一個微服務也受到Keycloak保護使用相同的登錄名。我不希望suer必須重新登錄。我正在嘗試JavaScript adapter。我想配置它是這樣的:爲什麼在使用keycloak JavaScript適配器時不允許訪問?

<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身份驗證的功能?

回答

2

您必須在Keycloak控制檯中設置myclient的允許原點。 (檢查客戶詳情屏幕上的最後一個輸入框)

相關問題