2017-03-29 9 views
0

WSO2 메시지 브로커를 사용하여 샘플 공개 및 등록 모델 프로젝트를 작성했습니다.MQTT 전송에서 인증 추가 방법 WSO2 메시지 브로커

import threading 
import paho.mqtt.client as mqtt 

def publish_1(client,topic): 
    message="on" 
    print("publish data") 
    client.publish(topic,message) 
    publish_1(client,topic) 


broker="localhost" 
topic_pub='/temperature123' 
topic_sub='$SYS/#' 

def on_connect(client, userdata, rc): 
    print("Connected with result code "+str(rc)) 
    client.subscribe(topic_sub) 


def on_message(client, userdata, msg): 
    print(msg.topic+" "+str(msg.payload)) 

client = mqtt.Client() 
client.on_connect = on_connect 
client.on_message = on_message 

client.connect(broker, 1883, 60) 
thread1=threading.Thread(target=publish_1,args=(client,topic_pub)) 
thread1.start() 

그러나이 구현에는 보안이 적용되지 않습니다.

누군가가 WSO2 Message Broker의 MQTT 가입 인증을 설정할 수 있습니까? 와 나는 https://localhost:9443/carbon

답변

0

내 경험하지 WSO2 MB와 Mosquitto에있는 WSO2 메시지 브로커 응용 프로그램에서 또한 모든 가입 노드 정보를 확인 해달라고하지만, WSO2 MB 문서 얼핏에서 표준 인 SSL을 지원하는 것 MQTT 보안 방법 (https://docs.wso2.com/display/MB310/Enabling+SSL+Support). 이렇게하는 과정은 매우 간단합니다. 적절한 키와 인증서를 배포 한 다음 tsl_set()을 사용하여 스크립트에서 구성하십시오.

사용자/주제 수준 컨트롤이 더 필요하지 않은 경우보다 큰 WSO2 프레임 워크 (https://docs.wso2.com/pages/viewpage.action?pageId=30540550#SecurityinWSO2MessageBroker/ApacheQpid-Auth)를 통해 제공되는 것처럼 보입니다. 그러나 WSO2에 대한 더 많은 경험을 가진 사람에게 옵션을 설명해 드리겠습니다.

편집 : 혼란스러운/레이어를 만들기 때문에 /를 사용하여 주제를 시작하는 것은 좋지 않은 습관으로 간주됩니다. 난 그냥 "temperature123"로 주제를 작성

+0

답변 주셔서 감사하지만, 나는 메시지 중개인에 몇 가지 역할 기반 인증을해야합니다. 예를 들어, user1은 topic/temperature에 메시지를 게시 할 수 있지만 user2는 그렇게 할 수 없습니다 –