带有外部身份提供者的密钥隐藏失败

问题描述 投票:0回答:1

我使用kubernetes设置了密钥斗篷,并使用google和github作为外部身份提供者创建了新领域。我创建了一个简单的spring security app,用于使用keycloak配置授权。我可以向内部用户进行身份验证,并且该流程按预期工作。但是,当使用外部身份提供程序google或github时,它会失败,并出现类似的异常。在日志中,它显示

错误[org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider](默认任务33)无法使身份提供者oauth回调:java.net.UnknownHostException:oauth2.googleapis.com: 名称或服务未知 在java.base / java.net.Inet4AddressImpl.lookupAllHostAddr(本机方法) 在java.base / java.net.InetAddress $ PlatformNameService.lookupAllHostAddr(InetAddress.java:929) 在java.base / java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1515) 在java.base / java.net.InetAddress $ NameServiceAddresses.get(InetAddress.java:848) 在java.base / java.net.InetAddress.getAllByName0(InetAddress.java:1505) 在java.base / java.net.InetAddress.getAllByName(InetAddress.java:1364) 在java.base / java.net.InetAddress.getAllByName(InetAddress.java:1298) 在org.apache.httpcomponents.core // org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45) 在org.apache.httpcomponents.core // org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:112) 在org.apache.httpcomponents.core // org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:376) 在org.apache.httpcomponents.core // org.apache.http.impl.execchain.MainClientExec。建立路由(MainClientExec.java:393) 在org.apache.httpcomponents.core // org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236) 在org.apache.httpcomponents.core // org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) 在org.apache.httpcomponents.core // org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) 在org.apache.httpcomponents.core // org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) 在org.apache.httpcomponents.core // org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) 在org.apache.httpcomponents.core // org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) 在org.apache.httpcomponents.core // org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) 在org.apache.httpcomponents.core // org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) 在[email protected]//org.keycloak.broker.provider.util.SimpleHttp.makeRequest(SimpleHttp.java:222) 在[email protected]//org.keycloak.broker.provider.util.SimpleHttp.asResponse(SimpleHttp.java:180) 在[email protected]//org.keycloak.broker.provider.util.SimpleHttp.asString(SimpleHttp.java:172) 在[email protected]//org.keycloak.broker.oidc.AbstractOAuth2IdentityProvider$Endpoint.authResponse(AbstractOAuth2IdentityProvider.java:470) 在java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.base / java.lang.reflect.Method.invoke(Method.java:566) 在[email protected]//org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:138) 在[email protected]//org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:526)

是因为,密钥斗篷在kubernetes集群下运行?堆栈显示java.net.UnknownHostException:oauth2.googleapis.com,并且不确定如何克服此错误。请让我知道。

spring-boot kubernetes keycloak kubernetes-helm
1个回答
0
投票

此问题的背景很少。环境:Minikube使用在ubuntu 19.04上运行的现有退出的postgres-ha 11,从driver = none,kubernetes,带有头盔集群的密钥斗篷开始。

测试ping:我部署了kuberentes dnsutils,并按照调试步骤进行操作。我无法从Pod内ping任何google.com。也是命令

kubectl get pods --namespace = kube-system -l k8s-app = kube-dns

显示coredns尚未准备就绪或正在运行。这就是此问题的原因。在仔细研究了其他几篇文章之后,尤其是在此one之后,我修复了coredns的启动问题,其余所有工作都已完成。HTH。

© www.soinside.com 2019 - 2024. All rights reserved.