Fiware Orion - pepProxy

Я часть команды, которая разрабатывает приложение, использующее Fiware GE имеет часть ускорителя Smart-AgriFood. Мы используем Orion Context Broker для сбора данных, предоставляемых сенсорной сетью, и мы намерены использовать Pep-Proxy для аутентификации сенсорного узла для доступа к экземпляру Orion. Мы пробовали следующие pepProxy:

https://github.com/telefonicaid/fiware-orion-pep

https://github.com/ging/fi-ware-pep-proxy

У нас есть успешная реализация только второй (fi-ware-pep-proxy) реализации прокси. С помощью fiware-orion-pep мы не смогли подключиться к экземпляру Keystone Global (account.lab.fi-ware.org), мы попробовали account.lab. .. и cloud.lab ..., мой вопрос:

1) является ли экземпляр keystone (IDM) для аутентификации account.lab или cloud.lab ?? и какой порт использовать или какой адрес?

2) подготовлен ли fiware-orion-pep для аутентификации на account.lab.fi-ware.org ?? вот как я спрашиваю это:

Этот работает с командой curl по адресу >> cloud.lab.fiware.org:4730/v2.0/tokens

{
    "auth": {
        "passwordCredentials": {

                   "username": "<my_user>",
                    "password": "<my_password>"
                }
            }
}'

Это не работает с командой curl по адресу >> account.lab.fi-ware.org:5000/v3/auth/tokens

{
    "auth": {
        "identity": {
            "methods": [
                "password"
            ],
            "password": {
                "user": {
                    "domain": {
                        "name": "<my_domain>"
                    },
                    "name": "<my_user>",
                    "password": "<my_password>"
                }
            }
        }
    } }'

3) какую реализацию я должен использовать для аутентификации устройств или других вызовов экземпляру Orion ???

Вот конфигурация, которую я использовал:

fiware-orion-pep

config.authentication = {
    checkHeaders: true,
    module: 'keystone',
    user: '<my_user>',
    password: '<my_password>',
    domainName: '<my_domain>',
    retries: 3,
    cacheTTLs: {
        users: 1000,
        projectIds: 1000,
        roles: 60
    },
    options: {
        protocol: 'http',
        host: 'account.lab.fiware.org',
        port: 5000,
        path: '/v3/role_assignments',
        authPath: '/v3/auth/tokens'
    }
};

fi-ware-pep-proxy (этот работает), я установил порт листинга на 1026 в исходном коде

var config = {};

config.account_host = 'https://account.lab.fiware.org';

config.keystone_host = 'cloud.lab.fiware.org';
config.keystone_port = 4731;

config.app_host = 'localhost';
config.app_port = '10026';

config.username = 'pepProxy';
config.password = 'pepProxy';

// in seconds
config.chache_time = 300;
config.check_permissions = false;

config.magic_key = undefined;

module.exports = config;

Заранее спасибо за уделенное время ... :)


person af-silva    schedule 10.04.2015    source источник


Ответы (2)


В настоящее время существуют некоторые различия в том, как оба прокси-сервера PEP аутентифицируют и проверяют соответствие глобальным экземплярам, ​​поэтому они не ведут себя одинаково.

Один в telefonicaid / fiware-orion-pep был разработан для выполнения требований прокси-сервера PEP (аутентификация и проверка по Keystone и контроль доступа) в отдельных проектах с их собственными установками Keystone и Keypass (разновидность контроля доступа), и поэтому он эволюционировал быстрее, чем в ging / fi-ware-pep-proxy, и в несколько ином направлении. Например, первая поддерживает мультиарендность с использованием заголовков fiware-service и fiware-servicepath, а вторая прозрачна для этих механизмов. Это направление развития означало также, что функциональность время от времени немного отличается от таковой в глобальном экземпляре.

При этом конкретный ответ: - Оба прокси PEP должны иметь возможность связываться с глобальным экземпляром. Если нет, пожалуйста, внесите ошибку в проблемы репозитория Github, и мы исправим ее в кратчайшие сроки. - ging / fi-ware-pep-proxy был специально разработан для доступа к глобальному экземпляру, поэтому вы должны иметь возможность использовать его должным образом.

Пожалуйста, если вы попытаетесь продолжить работу с telefonicaid / fiware-orion-pep, обратите внимание также на то, что: - флаг конфигурации authentication.checkHeaders должен иметь значение false, поскольку глобальный экземпляр в настоящее время не поддерживает многопользовательский режим. - текущая стабильная версия (0.5.0) собирается перейти на следующую версию (вероятно, сегодня), поэтому, возможно, некоторые проблемы будут решены с обновлением.

Надеюсь, это проясняет некоторые из ваших сомнений.

person Daniel Morán Jiménez    schedule 13.04.2015
comment
Спасибо за ответ, @Daniel, сегодня я попрошу обновить telefonicaid / fiware-orion-pep и протестировать, сможем ли мы пройти аутентификацию по экземпляру Keystone Global. В конце дня я дам свой отзыв о тесте. Еще раз спасибо за быстрый ответ. - person af-silva; 13.04.2015
comment
Я провел несколько тестов с версией 0.6.0 программы telefonicaid / fiware-orion-pep. Что я сделал: - person af-silva; 13.04.2015

[РЕДАКТИРОВАТЬ]

1) Я уже установил telefonicaid / fiware-orion-pep (v 0.6.0) из источников и из пакета rpm, созданного в соответствии с руководством, доступным в github. При создании пакета rpm он создается со следующим именем pep-proxy-0.4.0_next-0.noarch.rpm.

2) Вот конфигурация, которую я использовал:

/opt/fiware-orion-pep/config.js

 var config = {};
 config.resource = {
     original: {
         host: 'localhost', 
         port: 10026
     },
     proxy: { 
        port: 1026,
        adminPort: 11211
     } }; 

 config.authentication = {
     checkHeaders: false,
     module: 'keystone',
     user: '<##################>',
     password: '<###################>',
     domainName: 'admin_domain',
     retries: 3,
     cacheTTLs: {
         users: 1000,
         projectIds: 1000,
         roles: 60
     },
     options: {     protocol: 'http',
         host: 'cloud.lab.fiware.org',
         port: 4730,
         path: '/v3/role_assignments',
         authPath: '/v3/auth/tokens'
     } };  

 config.ssl = {
     active: false,
     keyFile: '',
     certFile: '' }

 config.logLevel = 'DEBUG'; // List of component
 config.middlewares = {
     require: 'lib/plugins/orionPlugin',
     functions: [
         'extractCBAction'
     ] };

 config.componentName = 'orion'; 
 config.resourceNamePrefix = 'fiware:';

 config.bypass = false;

 config.bypassRoleId = '';

 module.exports = config;

/ и т.д. / sysconfig / pepProxy

# General Configuration
############################################################################

# Port where the proxy will listen for requests
PROXY_PORT=1026

# User to execute the PEP Proxy with
PROXY_USER=pepproxy

# Host where the target Context Broker is located
# TARGET_HOST=localhost

# Port where the target Context Broker is listening
# TARGET_PORT=10026

# Maximum level of logs to show (FATAL, ERROR, WARNING, INFO, DEBUG)
LOG_LEVEL=DEBUG

# Indicates what component plugin should be loaded with this PEP: orion, keypass, perseo
COMPONENT_PLUGIN=orion

#
# Access Control Configuration
############################################################################

# Host where the Access Control (the component who knows the policies for the incoming requests) is located
# ACCESS_HOST=

# Port where the Access Control is listening
# ACCESS_PORT=

# Host where the authentication authority for the Access Control is located
# AUTHENTICATION_HOST=

# Port where the authentication authority is listening
# AUTHENTICATION_PORT=

# User name of the PEP Proxy in the authentication authority
PROXY_USERNAME=XXXXXXXXXXXXX

# Password of the PEP Proxy in the Authentication authority
PROXY_PASSWORD=XXXXXXXXXXXXX

В файлах выше я пробовал следующие параметры:

Экземпляр Keystone: account.lab.fiware.org или cloud.lab.fiware.org

Пользователь: pep или pepProxy или «пользователь из учетной записи fiware»

Pass: pep или pepProxy или «пароль пользователя от учетной записи»

Порт: 4730, 4731, 5000

Результат такой же, как и раньше ... telefonicaid / fiware-orion-pep не может аутентифицироваться:

log file at /var/log/pepProxy/pepProxy
time=2015-04-13T14:49:24.718Z | lvl=ERROR | corr=71a34c8b-10b3-40a3-be85-71bd3ce34c8a | trans=71a34c8b-10b3-40a3-be85-71bd3ce34c8a | op=/v1/updateContext | msg=VALIDATION-GEN-003] Error connecting to Keystone authentication: KEYSTONE_AUTHENTICATION_ERROR: There was a connection error while authenticating to Keystone: 500
time=2015-04-13T14:49:24.721Z | lvl=DEBUG | corr=71a34c8b-10b3-40a3-be85-71bd3ce34c8a | trans=71a34c8b-10b3-40a3-be85-71bd3ce34c8a | op=/v1/updateContext | msg=response-time: 50745 statusCode: 500

результат из клиентской консоли

{
    "message": "There was a connection error while authenticating to Keystone: 500", 
    "name": "KEYSTONE_AUTHENTICATION_ERROR"
}

Я тут что-то не так делаю ??

person af-silva    schedule 13.04.2015
comment
Прежде всего, что касается версии RPM, у нас есть проблема со сценарием выпуска, и я боюсь, что это ошибка. Сейчас делаю быстрый патч для скрипта. - person Daniel Morán Jiménez; 14.04.2015
comment
Что касается остальной части сообщения, проблема в том, что мы еще не тестировали наш PEP на новом глобальном экземпляре (мы используем его с частными экземплярами Keystone, которые мы можем легко отладить). В любом случае, я собираюсь связаться с людьми в главе о безопасности, чтобы получить некоторую информацию о том, как настроен Global Keystone, и почему он может давать сбой. Будьте на связи. - person Daniel Morán Jiménez; 14.04.2015
comment
Между прочим, сценарий create-rpm.sh может быть выполнен с двумя параметрами ‹release› и ‹version›, которые будут генерировать соответствующее имя RPM. Ошибка есть в документации. Я меняю это вместо сценария. - person Daniel Morán Jiménez; 14.04.2015
comment
Спасибо @ DanielMoránJiménez за ответ :) Я буду ждать дополнительной информации о процессе аутентификации в новом глобальном экземпляре, пока я не буду использовать экземпляр fi-ware-pep-proxy. Спасибо еще раз. - person af-silva; 20.04.2015
comment
Уважаемый @ af-silva, я знаю, что прошло некоторое время с тех пор, как вы столкнулись с этой проблемой, но мне было интересно, можете ли вы оставить отзыв на мое сообщение (stackoverflow.com/questions/43808743/setting-up-pep-proxy), поскольку, по-видимому, я столкнулся с аналогичными проблемами, как и вы. Заранее спасибо. - person netzahdzc; 05.05.2017