blob: 8ebdc95e2208335991a85054571365af1e2cd60a [file] [log] [blame]
<!DOCTYPE html>
<html lang="dev" class="js csstransforms3d">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
<link rel="apple-touch-icon" sizes="180x180" href="/hono/docs/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="48x48" href="/hono/docs/favicon/favicon-48x48.png">
<link rel="icon" type="image/png" sizes="32x32" href="/hono/docs/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/hono/docs/favicon/favicon-16x16.png">
<link rel="manifest" href="/hono/docs/favicon/site.webmanifest">
<link rel="mask-icon" href="/hono/docs/favicon/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="/hono/docs/favicon/favicon.ico">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="/hono/docs/favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<title>Device Identity :: Eclipse Hono&trade; Vers.: dev</title>
<link href="/hono/docs/css/nucleus.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/fontawesome-all.min.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/hybrid.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/featherlight.min.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/perfect-scrollbar.min.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/auto-complete.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/atom-one-dark-reasonable.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/theme.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/hugo-theme.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/theme-hono.css?1626138739" rel="stylesheet">
<link href="/hono/docs/css/hono.css?1626138739" rel="stylesheet">
<script src="/hono/docs/js/jquery-3.3.1.min.js?1626138739"></script>
<style>
:root #header + #content > #left > #rlblock_left{
display:none !important;
}
:not(pre) > code + span.copy-to-clipboard {
display: none;
}
</style>
<link rel="stylesheet" href="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@EclipseHono">
<meta name="twitter:title" content="Device Identity :: Eclipse Hono&amp;trade; Vers.: dev">
<meta name="twitter:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png">
<meta name="twitter:description" content="A set of micro-services for connecting millions of devices.">
<meta property="og:title" content="Device Identity :: Eclipse Hono&amp;trade; Vers.: dev" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.eclipse.org/hono/docs/dev/concepts/device-identity//" />
<meta property="og:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png" />
</head>
<body class="" data-url="/hono/docs/dev/concepts/device-identity/">
<nav id="sidebar" class="">
<div id="header-wrapper">
<div id="header">
<a href="https://www.eclipse.org/hono/">
<img src="/hono/docs/images/HONO-Logo_Bild-Wort_quer-w-310x120px.svg" alt="Hono logo" class="logo-img">
</a>
</div>
<div class="searchbox">
<label for="search-by"><i class="fas fa-search"></i></label>
<input data-search-input id="search-by" type="search" placeholder="Search...">
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1626138739"></script>
<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1626138739"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/dev";
</script>
<script type="text/javascript" src="/hono/docs/js/search.js?1626138739"></script>
</div>
<div class="highlightable">
<ul class="topics">
<li data-nav-id="/hono/docs/dev/concepts/" title="Concepts" class="dd-item
parent
">
<a href="/hono/docs/dev/concepts/">
<i class="far fa-lightbulb"></i> Concepts
</a>
<ul>
<li data-nav-id="/hono/docs/dev/concepts/device-identity/" title="Device Identity" class="dd-item active">
<a href="/hono/docs/dev/concepts/device-identity/">
Device Identity
</a>
</li>
<li data-nav-id="/hono/docs/dev/concepts/tenancy/" title="Multi-Tenancy" class="dd-item ">
<a href="/hono/docs/dev/concepts/tenancy/">
Multi-Tenancy
</a>
</li>
<li data-nav-id="/hono/docs/dev/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
<a href="/hono/docs/dev/concepts/device-provisioning/">
Device Provisioning
</a>
</li>
<li data-nav-id="/hono/docs/dev/concepts/connecting-devices/" title="Connecting Devices" class="dd-item ">
<a href="/hono/docs/dev/concepts/connecting-devices/">
Connecting Devices
</a>
</li>
<li data-nav-id="/hono/docs/dev/concepts/device-notifications/" title="Device Notifications" class="dd-item ">
<a href="/hono/docs/dev/concepts/device-notifications/">
Device Notifications
</a>
</li>
<li data-nav-id="/hono/docs/dev/concepts/command-and-control/" title="Command &amp; Control" class="dd-item ">
<a href="/hono/docs/dev/concepts/command-and-control/">
Command &amp; Control
</a>
</li>
<li data-nav-id="/hono/docs/dev/concepts/resource-limits/" title="Resource limits" class="dd-item ">
<a href="/hono/docs/dev/concepts/resource-limits/">
Resource limits
</a>
</li>
<li data-nav-id="/hono/docs/dev/concepts/connection-events/" title="Connection Events" class="dd-item ">
<a href="/hono/docs/dev/concepts/connection-events/">
Connection Events
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/" title="User Guide" class="dd-item
">
<a href="/hono/docs/dev/user-guide/">
<i class="fas fa-book-reader"></i> User Guide
</a>
<ul>
<li data-nav-id="/hono/docs/dev/user-guide/mongodb-based-device-registry/" title="MongoDB Based Device Registry" class="dd-item ">
<a href="/hono/docs/dev/user-guide/mongodb-based-device-registry/">
MongoDB Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/jdbc-based-device-registry/" title="JDBC Based Device Registry" class="dd-item ">
<a href="/hono/docs/dev/user-guide/jdbc-based-device-registry/">
JDBC Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/file-based-device-registry/" title="File Based Device Registry" class="dd-item ">
<a href="/hono/docs/dev/user-guide/file-based-device-registry/">
File Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/http-adapter/" title="HTTP Adapter" class="dd-item ">
<a href="/hono/docs/dev/user-guide/http-adapter/">
HTTP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/mqtt-adapter/" title="MQTT Adapter" class="dd-item ">
<a href="/hono/docs/dev/user-guide/mqtt-adapter/">
MQTT Adapter
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/amqp-adapter/" title="AMQP Adapter" class="dd-item ">
<a href="/hono/docs/dev/user-guide/amqp-adapter/">
AMQP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/coap-adapter/" title="CoAP Adapter" class="dd-item ">
<a href="/hono/docs/dev/user-guide/coap-adapter/">
CoAP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/kura-adapter/" title="Kura Adapter" class="dd-item ">
<a href="/hono/docs/dev/user-guide/kura-adapter/">
Kura Adapter
</a>
</li>
<li data-nav-id="/hono/docs/dev/user-guide/sigfox-adapter/" title="Sigfox Adapter" class="dd-item ">
<a href="/hono/docs/dev/user-guide/sigfox-adapter/">
Sigfox Adapter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/" title="Admin Guide" class="dd-item
">
<a href="/hono/docs/dev/admin-guide/">
<i class="fas fa-sliders-h"></i> Admin Guide
</a>
<ul>
<li data-nav-id="/hono/docs/dev/admin-guide/common-config/" title="Common Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/common-config/">
Common Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/auth-server-config/" title="Auth Server Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/auth-server-config/">
Auth Server Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/mongodb-device-registry-config/" title="MongoDB Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/mongodb-device-registry-config/">
MongoDB Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/jdbc-device-registry-config/" title="JDBC Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/jdbc-device-registry-config/">
JDBC Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/file-based-device-registry-config/" title="File Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/file-based-device-registry-config/">
File Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/command-router-config/" title="Configuring the Command Router Service" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/command-router-config/">
Command Router Service Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/device-connection-config/" title="Configuring the Device Connection Service" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/device-connection-config/">
Device Connection Service Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/http-adapter-config/" title="HTTP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/http-adapter-config/">
HTTP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/mqtt-adapter-config/" title="MQTT Adapter Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/mqtt-adapter-config/">
MQTT Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/amqp-adapter-config/" title="AMQP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/amqp-adapter-config/">
AMQP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/coap-adapter-config/" title="CoAP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/coap-adapter-config/">
CoAP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/kura-adapter-config/" title="Kura Adapter Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/kura-adapter-config/">
Kura Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/hono-client-configuration/" title="Hono Client Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/hono-client-configuration/">
Hono Client Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/hono-kafka-client-configuration/" title="Hono Kafka Client Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/hono-kafka-client-configuration/">
Hono Kafka Client Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/amqp-network-config/" title="AMQP 1.0 Messaging Network Configuration" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/amqp-network-config/">
AMQP 1.0 Messaging Network Configuration
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/secure_communication/" title="Secure Communication" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/secure_communication/">
Secure Communication
</a>
</li>
<li data-nav-id="/hono/docs/dev/admin-guide/monitoring-tracing-config/" title="Monitoring &amp; Tracing" class="dd-item ">
<a href="/hono/docs/dev/admin-guide/monitoring-tracing-config/">
Monitoring &amp; Tracing
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/dev/dev-guide/" title="Developer Guide" class="dd-item
">
<a href="/hono/docs/dev/dev-guide/">
<i class="fas fa-tools"></i> Developer Guide
</a>
<ul>
<li data-nav-id="/hono/docs/dev/dev-guide/building_hono/" title="Building from Source" class="dd-item ">
<a href="/hono/docs/dev/dev-guide/building_hono/">
Building from Source
</a>
</li>
<li data-nav-id="/hono/docs/dev/dev-guide/amqp_adapter_client/" title="AMQP Adapter Client for Java" class="dd-item ">
<a href="/hono/docs/dev/dev-guide/amqp_adapter_client/">
AMQP Adapter Client for Java
</a>
</li>
<li data-nav-id="/hono/docs/dev/dev-guide/java_client_consumer/" title="Consuming Messages from Java" class="dd-item ">
<a href="/hono/docs/dev/dev-guide/java_client_consumer/">
Consuming Messages from Java
</a>
</li>
<li data-nav-id="/hono/docs/dev/dev-guide/custom_http_adapter/" title="Implement a Custom Hono HTTP Protocol Adapter" class="dd-item ">
<a href="/hono/docs/dev/dev-guide/custom_http_adapter/">
Implement a Custom Hono HTTP Protocol Adapter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/dev/api/" title="API" class="dd-item
">
<a href="/hono/docs/dev/api/">
&nbsp;<i class='fas fa-plug'></i>&nbsp;API
</a>
<ul>
<li data-nav-id="/hono/docs/dev/api/telemetry/" title="Telemetry API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/telemetry/">
Telemetry API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/event/" title="Event API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/event/">
Event API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/command-and-control/" title="Command &amp; Control API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/command-and-control/">
Command &amp; Control API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/kafka-api/" title="Kafka-based APIs" class="dd-item ">
<a href="/hono/docs/dev/api/kafka-api/">
Kafka-based APIs
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/telemetry-kafka/" title="Telemetry API for Kafka Specification" class="dd-item ">
<a href="/hono/docs/dev/api/telemetry-kafka/">
Telemetry API for Kafka
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/event-kafka/" title="Event API for Kafka Specification" class="dd-item ">
<a href="/hono/docs/dev/api/event-kafka/">
Event API for Kafka
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/command-and-control-kafka/" title="Command &amp; Control API for Kafka Specification" class="dd-item ">
<a href="/hono/docs/dev/api/command-and-control-kafka/">
Command &amp; Control API for Kafka
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/tenant/" title="Tenant API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/tenant/">
Tenant API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/command-router/" title="Command Router API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/command-router/">
Command Router API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/device-connection/" title="Device Connection API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/device-connection/">
Device Connection API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/device-registration/" title="Device Registration API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/device-registration/">
Device Registration API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/credentials/" title="Credentials API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/credentials/">
Credentials API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/authentication/" title="Authentication API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/authentication/">
Authentication API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/management/" title="Device Registry Management API Specification" class="dd-item ">
<a href="/hono/docs/dev/api/management/">
Device Registry Management API
</a>
</li>
<li data-nav-id="/hono/docs/dev/api/metrics/" title="Metrics" class="dd-item ">
<a href="/hono/docs/dev/api/metrics/">
Metrics
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/dev/deployment/" title="Deployment" class="dd-item
">
<a href="/hono/docs/dev/deployment/">
<i class="fas fa-shipping-fast"></i> Deployment
</a>
<ul>
<li data-nav-id="/hono/docs/dev/deployment/helm-based-deployment/" title="Helm based Deployment" class="dd-item ">
<a href="/hono/docs/dev/deployment/helm-based-deployment/">
Helm based Deployment
</a>
</li>
<li data-nav-id="/hono/docs/dev/deployment/openshift/" title="OpenShift / OKD" class="dd-item ">
<a href="/hono/docs/dev/deployment/openshift/">
OpenShift / OKD
</a>
</li>
<li data-nav-id="/hono/docs/dev/deployment/create-kubernetes-cluster/" title="Setting up a Kubernetes Cluster" class="dd-item ">
<a href="/hono/docs/dev/deployment/create-kubernetes-cluster/">
Setting up a Kubernetes Cluster
</a>
</li>
<li data-nav-id="/hono/docs/dev/deployment/resource-limitation/" title="Limiting Resource Usage" class="dd-item ">
<a href="/hono/docs/dev/deployment/resource-limitation/">
Limiting Resource Usage
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/dev/architecture/" title="Architecture" class="dd-item
">
<a href="/hono/docs/dev/architecture/">
<i class="fas fa-landmark"></i> Architecture
</a>
<ul>
<li data-nav-id="/hono/docs/dev/architecture/component-view/" title="Component View" class="dd-item ">
<a href="/hono/docs/dev/architecture/component-view/">
Component View
</a>
</li>
<li data-nav-id="/hono/docs/dev/architecture/auth/" title="Authentication/Authorization" class="dd-item ">
<a href="/hono/docs/dev/architecture/auth/">
Authentication/Authorization
</a>
</li>
</ul>
</li>
</ul>
<section id="shortcuts">
<h3></h3>
<ul>
<li>
<a class="padding" href="https://www.eclipse.org/hono/" title="Hono&#39;s Homepage"><i class='fas fa-home'></i> Hono Home</a>
</li>
<li>
<a class="padding" href="https://www.eclipse.org/hono/getting-started/" title="Getting started with Eclipse Hono"><i class='fas fa-plane-departure'></i> Getting Started</a>
</li>
</ul>
</section>
<section id="prefooter">
<hr/>
<ul>
<li>
<div id="select-box-wrapper">
<div id="select-box">
<a class="padding">
Version:&nbsp;
<div class="select-style">
<select id="select-language" onchange="location = this.value;">
<option id="stable" value="https://www.eclipse.org/hono/docs/concepts/device-identity/">stable (1.8)</option>
<option id="1.8" value="https://www.eclipse.org/hono/docs/1.8/concepts/device-identity/">1.8</option>
<option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/concepts/device-identity/">1.7</option>
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/concepts/device-identity/">1.6</option>
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/concepts/device-identity/">1.5</option>
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/concepts/device-identity/">1.4</option>
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/concepts/device-identity/">1.3</option>
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/concepts/device-identity/">1.2</option>
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/concepts/device-identity/">1.1</option>
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/concepts/device-identity/">1.0</option>
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/concepts/device-identity/" selected>dev</option>
</select>
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="255px" height="255px" viewBox="0 0 255 255" style="enable-background:new 0 0 255 255;" xml:space="preserve">
<g>
<g id="arrow-drop-down">
<polygon points="0,63.75 127.5,191.25 255,63.75 " />
</g>
</g>
</svg>
</div>
</a>
</div>
</div>
</li>
</ul>
</section>
<section id="footer">
<p>&copy; 2021 <a href="https://www.eclipse.org/hono/">The Eclipse Hono Project</a></p>
<p>
Documentation built with
<a href="https://gohugo.io/" target="_blank">Hugo</a>
using the
<a href="https://github.com/matcornic/hugo-theme-learn" target="_blank">Learn</a> theme.
</p>
<div class="eclipse-logo">
<a href="https://www.eclipse.org" target="_blank">
<img src="https://www.eclipse.org/hono/docs/images/eclipse_foundation_logo.svg"/>
</a>
</div>
</section>
</div>
</nav>
<section id="body">
<div id="overlay"></div>
<div class="old-version-hint">
<p>This page refers to version <em>dev</em>.
You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
</p>
</div>
<div class="padding highlightable">
<div>
<div id="top-bar">
<div id="top-github-link">
<a class="github-link" title='Edit this page' href="https://github.com/eclipse/hono/edit/master/site/documentation/content/concepts/device-identity.md" target="blank">
<i class="fas fa-code-branch"></i>
<span id="top-github-link-text">Edit this page</span>
</a>
</div>
<div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" data-sidebar-toggle="">
<i class="fas fa-bars"></i>
</a>
</span>
<span id="toc-menu"><i class="fas fa-list-alt"></i></span>
<span class="links">
<a href='/hono/docs/dev/'>Documentation</a> > <a href='/hono/docs/dev/concepts/'>Concepts</a> > Device Identity
</span>
</div>
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
<ul>
<li><a href="#tenant">Tenant</a></li>
<li><a href="#device-registration">Device Registration</a></li>
<li><a href="#device-authentication">Device Authentication</a></li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="head-tags">
</div>
<div id="body-inner">
<h1>
Device Identity
</h1>
<p>This page describes how devices are represented and identified throughout Hono and its APIs.</p>
<p>The main purpose of Hono is to provide a uniform API for applications to interact with devices,
regardless of the particular communication protocol the devices natively use.
In order to do so, Hono uses a unique <em>logical</em> identifier to refer to each device individually.</p>
<p>Hono does not make any assumptions about the format of a device identifier (or <em>device-id</em> for short).
It basically is a string which is defined at the time a device is being
<a href="/hono/docs/dev/concepts/device-provisioning/">provisioned</a>. Once created, the device can be referred
to by this identifier when using Hono&rsquo;s APIs until the device is being removed from the system.</p>
<h2 id="tenant">Tenant</h2>
<p>Hono supports the logical partitioning of devices into groups called <a href="/hono/docs/dev/concepts/tenancy/"><em>tenants</em></a>. Each tenant has a unique identifier, a string called the <em>tenant-id</em>, and can be used to provide a logical grouping of devices belonging e.g. to the same application scope or organizational unit. Each device can thus be uniquely identified by the tuple (<em>tenant-id</em>, <em>device-id</em>). This tuple is broadly used throughout Hono&rsquo;s APIs when addressing a particular device.</p>
<h2 id="device-registration">Device Registration</h2>
<p>Hono components use the <a href="/hono/docs/dev/api/device-registration/">Device Registration API</a> to access device registration information. The API defines the <em>assert Registration</em> operation for verifying a device&rsquo;s registration status.
In many real world scenarios there will already be a component in place which keeps track of devices and which supports the particular <em>provisioning process</em> being used to bring devices into life. In such cases it makes sense to simply implement the Device Registration API as a <em>facade</em> on top of the existing component.</p>
<p>In addition to that, Hono defines a <a href="/hono/docs/dev/api/management/">Device Registry Management API</a>, which can be implemented to take advantage of standardized operations for managing devices and credentials. This API is optional because Hono components do not require it during runtime.</p>
<p>Hono comes with a <a href="/hono/docs/dev/admin-guide/mongodb-device-registry-config/">MongoDB</a> and a <a href="/hono/docs/dev/admin-guide/file-based-device-registry-config/">simple file</a> based implementations of both APIs. The file based implementation, which keeps all data in memory, is to be used only for demonstration purposes and is not supposed to be used in production scenarios.</p>
<h2 id="device-authentication">Device Authentication</h2>
<p>Devices connect to protocol adapters in order to publish telemetry data or events. Downstream applications consuming this data often take particular actions based on the content of the messages. Such actions may include simply updating some statistics, e.g. tracking the average room temperature, but may also trigger more serious activities like shutting down a power plant. It is therefore important that applications can rely on the fact that the messages they process have in fact been produced by the device indicated by a message&rsquo;s source address.</p>
<p>Hono relies on protocol adapters to establish a device&rsquo;s identity before it is allowed to publish downstream data or receive commands. Conceptually, Hono distinguishes between two identities</p>
<ol>
<li>an identity associated with the authentication credentials (termed the <em>authentication identity</em> or <em>auth-id</em>), and</li>
<li>an identity to act as (the <em>device identity</em> or <em>device-id</em>).</li>
</ol>
<p>A device therefore presents an <em>auth-id</em> as part of its credentials during the authentication process which is then resolved to a <em>device identity</em> by the protocol adapter on successful verification of the credentials.</p>
<p>In order to support the protocol adapters in the process of verifying credentials presented by a device, the <a href="/hono/docs/dev/api/credentials/">Credentials API</a> provides means to look up <em>secrets</em> on record for the device and use this information to verify the credentials.</p>
<p>The Credentials API supports registration of multiple sets of credentials for each device. A set of credentials consists of an <em>auth-id</em> and some sort of <em>secret</em> information. The particular <em>type</em> of secret determines the kind of information kept. Please refer to the <a href="/hono/docs/dev/api/credentials/#standard-credential-types">Standard Credential Types</a> defined in the Credentials API for details. Based on this approach, a device may be authenticated using different types of secrets, e.g. a <em>hashed password</em> or a <em>pre-shared key</em>, depending on the capabilities of the device and/or protocol adapter.</p>
<p>Once the protocol adapter has resolved the <em>device-id</em> for a device, it uses this identity when referring to the device in all subsequent API invocations, e.g. when forwarding telemetry messages downstream to the AMQP Messaging Network.</p>
<footer class="footline">
</footer>
</div>
</div>
<div id="navigation">
</div>
</section>
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
<script src="/hono/docs/js/clipboard.min.js?1626138740"></script>
<script src="/hono/docs/js/perfect-scrollbar.min.js?1626138740"></script>
<script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1626138740"></script>
<script src="/hono/docs/js/jquery.sticky.js?1626138740"></script>
<script src="/hono/docs/js/featherlight.min.js?1626138740"></script>
<script src="/hono/docs/js/highlight.pack.js?1626138740"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="/hono/docs/js/modernizr.custom-3.6.0.js?1626138740"></script>
<script src="/hono/docs/js/learn.js?1626138740"></script>
<script src="/hono/docs/js/hugo-learn.js?1626138740"></script>
<link href="/hono/docs/mermaid/mermaid.css?1626138740" rel="stylesheet" />
<script src="/hono/docs/mermaid/mermaid.js?1626138740"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5WLCZXC');
</script>
<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
</body>
</html>