2018年5月31日,星期四,斯蒂安·托格森发布
在这篇文章中,您将看到如何在OpenShift上部署Keycloak。 您还将学习如何部署基于Node.js的REST服务和HTML5应用程序来OpenShift,并使用Keycloak保护这些服务。
还有一个截屏节目显示了这个例子https://youtu.be/9zUWqbK3BqI。
如果您还没有OpenShift可用,那么开始的好地方就是使用迷你。
首先,在OpenShift中创建一个新项目,使用oc运行:
oc新项目Keycloak
接下来要做的是通过运行将Keycloak模板导入到OpenShift中:
oc替换 -- force -f "https://raw.githubusercontent.com/jboss-dockerfiles/keycloak" \ "/master/openshift-示例/keycloak-https.json"
现在打开OpenShift控制台,打开keycloak项目。
单击添加到项目并浏览目录。 在目录中你应该找到Keycloak。 点击它。
在信息上单击下一步。 在 “配置” 下,设置可以在 “Keycloak管理员用户名” 和 “Keycloak管理员密码” 字段中记住的用户名和密码。 然后点击创建。 单击继续到项目概述。
等待部署完成,然后单击应用程序的链接。 您的浏览器会抱怨证书,因为它是自签名证书。 忽略这一点,继续。 单击管理控制台,然后使用之前输入的用户名和密码登录。 保持此选项卡打开,因为您稍后将需要它。
您现在已经将Keycloak部署到OpenShift上。
我们需要为服务和我们将保护的应用程序创建客户端。
使用Keycloak管理控制台打开选项卡。 单击客户端并创建。 对于客户端ID,请输入服务,然后单击保存。 在访问类型下选择仅承载,然后单击保存。
单击客户端,然后再次创建。 对于客户端ID,请输入应用程序并单击保存。 对于有效的重定向uri和Web原始输入 *。 在生产环境中,为您的应用程序输入正确的URL非常重要,但是由于这是一个演示,因此我们将简单地允许所有URL。 部署应用程序后,您可以轻松地将这些url更新为正确的url。
将Keycloak管理控制台选项卡保持打开状态,稍后将再次需要它。
使用OpenShift控制台返回选项卡,然后单击 “添加到项目并再次浏览目录”。 这次点击Node.js。 在信息上单击下一步,然后在配置下单击高级选项。
进行以下更改:
单击创建,然后继续到项目概述。 等待构建和部署完成,然后单击应用程序的链接。 你应该看到 “没找到!”。 在url中添加 “/service/public”,您应该在JSON中看到 “message: public”。
您现在已经部署并保护了服务。 保持此选项卡打开以及以后需要时。
使用OpenShift控制台返回选项卡,然后单击 “添加到项目并再次浏览目录”。 这次点击PHP。 在信息上单击下一步,然后在配置下单击高级选项。
进行以下更改:
单击创建,然后继续到项目概述。 等待构建和部署完成,然后单击应用程序的链接。 你应该已经登录了。 现在,您可以通过单击invoke Public来调用不安全的端点或调用Admin来调用受admin角色保护的端点来调用服务。 如果单击Invoke secred,它将失败,因为您登录的管理员用户没有用户角色。 为了能够调用此端点,请返回Keycloak管理控制台。 创建一个名为user的领域角色。 然后转到用户找到您的管理员用户,并在角色映射下将用户角色添加到用户。
现在,您已经部署并保护了应用程序,并了解了应用程序如何安全地调用以前部署的服务。