Node Express.js
Используя keycloak-connect Промежуточное программное обеспечение Вы можете защитить свои конечные точки с помощью KeyCloak. Я освещаю это более подробно Здесь Анкет Вот основы установки KeyCloak-Connect в экспресс-проекте.
'use strict';
const Keycloak = require('keycloak-connect');
const express = require('express');
const session = require('express-session');
const expressHbs = require('express-handlebars');
const app = express();
// Register 'handelbars' extension with The Mustache Express
app.engine('hbs', expressHbs({extname:'hbs',
defaultLayout:'layout.hbs',
relativeTo: __dirname}));
app.set('view engine', 'hbs');
var memoryStore = new session.MemoryStore();
var keycloak = new Keycloak({ store: memoryStore });
//session
app.use(session({
secret:'thisShouldBeLongAndSecret',
resave: false,
saveUninitialized: true,
store: memoryStore
}));
app.use(keycloak.middleware());
//route protected with Keycloak
app.get('/test', keycloak.protect(), function(req, res){
res.render('test', {title:'Test of the test'});
});
//unprotected route
app.get('/',function(req,res){
res.render('index');
});
app.use( keycloak.middleware( { logout: '/'} ));
app.listen(8000, function () {
console.log('Listening at http://localhost:8000');
});
view raw
Я добавил стартовый скрипт в package.json.
"scripts": {
"start": "node app.js"
}
Затем выдвинули изменения в удаленное git Repo. Теперь я могу развернуть это в OpenShift от GIT. Нажмите на новый проект в OpenShift, просмотрите каталог и выберите Узел и укажите на свой репо.
Проект развернут, но порт по умолчанию OpenShift составляет 8080, так как Express Server обслуживает 8000, нам нужно изменить его, чтобы получить маршрут для разрешения. Нам нужно отредактировать конфигурацию развертывания, сервис и маршрут, чтобы изменить это.
Теперь вы должны иметь возможность нажать на ссылку, и она должна решить. Есть еще одна вещь, которая нам нужно сделать это приложение, но после того, как мы запустим и запускаем сервер KeyCloak.
KeyCloak
Существует контейнер для KeyCloak, предназначенный для работы с OpenShift, найденным Здесь который я буду использовать для развертывания KeyCloak. Нажмите «Добавить в проект» и развернуть изображение, добавьте jboss/keycloak-openshift к имени изображения и добавьте две переменные среды для имени пользователя администратора (KeyCloak_user) и пароль (KeyCloak_password) Анкет
Как только сборка будет закончена, вы увидите, что маршрут не был установлен. Просто нажмите «Создать маршрут» и, кроме дефолтов.
После создания маршрута вы можете нажать на него и добраться до целевой страницы KeyCloak
Нажмите на Административная консоль И вы можете войти в систему с именем пользователя администратора (keyCloak_user) и паролем (keyCloak_password). Что весь ваш сервер KeyCloak работает и работает на OpenShift.
Подключение сервера Express к KeyCloak
На сервере keyCloak нам нужно создать сферу и создать клиента в сфере, установить допустимый URL -адрес клиента, то есть указать его на нашем Express Server на OpenShift, создайте пользователя в сфере и установите пароль и загрузите KeyCloak .json файл в корень нашего Express App. Я освещаю это более подробно здесь. Это быстрый обзор.
Создайте файл в маршруте вашего проекта Express Server Callckcloak.json с содержимым из загрузки например
{
"realm": "express",
"auth-server-url": "http://keycloak-openshift-keycloak-project.192.168.42.240.nip.io/auth",
"ssl-required": "external",
"resource": "express",
"public-client": true,
"confidential-port": 0
}
Сделайте изменения и подталкивайте к своему удаленному репо. Затем запустите сборку для Express Pod, чтобы вытащить изменения из GIT и развернуть их.
Вот и все должно работать сейчас.
Мой блог
Оригинал: “https://dev.to/austincunningham/openshift-node-and-keycloak-2lan”