Azure Cloud Datenquelle

Einleitung

Die Azure Cloud Datenquelle ermöglicht den Abruf von Session-Daten aus einem oder mehreren Systemen über die Azure Virtual Desktop API. Die abgerufenen Session-Daten, einschließlich aller verknüpften Computer- und Benutzerobjekte, werden nahtlos in das Raptor System integriert.

Fakten

Name

Azure Cloud Data

Bezeichner

AzureCloudData

Version

1.2

Funktionen

Datenquelle

Abschnitte

  • Standard: primary

  • Es können beliebig viele Abschnitte konfiguriert werden.

Informationsblöcke

  • azureCloud

Features

Integration

  • Nahtlose Integration der Daten aus einer oder mehreren Azure Virtual Desktop API Schnittstellen in das Raptor System.

  • Unterstützung für mehrere Verbindungen, jede mit einem individuellen Objekt Kontext.

Konfiguration

  • Frei konfigurierbare Tabellenfelder zur Anpassung der angezeigten Informationen.

  • Flexibel anpassbare Objektfelder für die Darstellung auf jeder Objektseite.

  • Möglichkeit zur Konfiguration eines Proxyservers für die Verbindungen.

  • Anpassbare Auswahl der Quelle für den Benutzernamen.

Aktionen

  • Benutzerdefinierte Aktionsknöpfe für Zeilen in jeder Tabelle, um spezifische Aktionen zu ermöglichen.

  • Möglichkeit, Aktionsknöpfe auch auf Objektebene hinzuzufügen, um benutzerdefinierte Workflows zu unterstützen.

Konfiguration

Das Konfigurationsschema

Module

AzureCloudData

Value

SectionIdentifier

Optional

String

  • Must not be empty.

  • Minimum length: 1

  • Maximum length: 64

  • Must match this regular expression: [a-z]+

Default Value:

azureCloudData

Value

OrderIndex

Optional

Integer

  • Minimum value: 1

  • Maximum value: 1000

Default Value:

100

List

ObjectFields

Optional

Complex list definition

Value

ObjectType

String

  • Must be one of this: User, Computer

Default Value:

All

List

Fields

Complex list definition

Value

Identifier

String

  • Maximum length: 64

  • Must match this regular expression: [A-Z][A-Za-z0-9]+

Value

Title

Optional

String

  • Must not be empty.

  • Maximum length: 64

  • Must match this regular expression: [^\p{Zl}\p{Zp}\p{C}]+

Value

Section

Optional

Integer

  • Must not be empty.

  • Minimum value: 1

  • Maximum value: 64

  • Must match this regular expression: [a-z]+

Value

OrderIndex

Optional

Integer

  • Minimum value: 1

  • Maximum value: 1000

Value

IsVisible

Optional

Boolean

Default Value:

Yes

List

Actions

Optional

Complex list definition

Value

Label

String

  • Must not be empty.

  • Maximum length: 64

  • Must match this regular expression: [^\p{Zl}\p{Zp}\p{C}]+

Value

Arguments

StringList

Value

ProgramPath

Optional

String

List

Tables

Optional

Complex list definition

Value

TableName

String

  • Must be one of this: SessionList, SessionHostList

Value

ObjectType

Optional

String

  • Must be one of this: Any, Computer, User, Session

Default Value:

Any

Complex list definition

Value

Identifier

String

  • Minimum length: 2

  • Maximum length: 64

  • Must match this regular expression: [A-Z][a-zA-Z]+

Value

Title

Optional

String

  • Must not be empty.

  • Maximum length: 64

  • Must match this regular expression: [^\p{Zl}\p{Zp}\p{C}]+

Value

IsVisible

Optional

Boolean

Default Value:

Yes

Value

IsActionParameter

Optional

Boolean

Default Value:

No

Value

ActionParameterName

Optional

String

  • Must not be empty.

  • Maximum length: 64

  • Must match this regular expression: [a-z0-9]+

List

TableActions

Optional

Complex list definition

Value

Label

String

  • Must not be empty.

  • Maximum length: 64

  • Must match this regular expression: [^\p{Zl}\p{Zp}\p{C}]+

Value

Arguments

StringList

Value

ProgramPath

Optional

String

Complex list definition

Value

Name

String

  • Must not be empty.

  • Must match this regular expression: [-_a-z0-9]+

  • Maximum length: 50

Value

ObjectContext

String

  • Must not be empty.

  • Must match this regular expression: [-a-z0-9_\.]+

  • Maximum length: 50

Value

TenantId

String

  • Must not be empty.

  • Must match this regular expression: [-a-z0-9_\.]+

  • Maximum length: 50

Value

Scope

Optional

String

  • Must not be empty.

  • Must match this regular expression: https://[-._a-z0-9]+\.[a-z]{2,4}/.*

  • Maximum length: 250

Default Value:

https://management.azure.com/.default

Value

ClientId

String

  • Must not be empty.

  • Maximum length: 250

Value

ClientSecret

Password

  • Must not be empty.

  • Maximum length: 50

Value

SubscriptionId

String

  • Must not be empty.

  • Maximum length: 50

Value

StartupDelay

Optional

Integer

  • Minimum value: 1

  • Maximum value: 3600

Default Value:

10

Value

RetrievalInterval

Optional

Integer

  • Minimum value: 30

  • Maximum value: 86400

Default Value:

60

Value

DelayAfterError

Optional

Integer

  • Minimum value: 1

  • Maximum value: 3600

Default Value:

10

Value

ErrorCountToEscalate

Optional

Integer

  • Minimum value: 2

  • Maximum value: 100

Default Value:

10

Value

DelayAfterErrorEscalation

Optional

Integer

  • Minimum value: 60

  • Maximum value: 86400

Default Value:

600

Value

RequestTimeout

Optional

Integer

  • Minimum value: 60

  • Maximum value: 86400

Default Value:

300

Value

ManagementBaseURL

Optional

String

  • Must match this regular expression: https://[-._a-z0-9]+\.[a-z]{2,4}/

Default Value:

https://management.azure.com/

Value

AuthorizationBaseURL

Optional

String

  • Must match this regular expression: https://[-._a-z0-9]+\.[a-z]{2,4}/

Default Value:

https://login.microsoftonline.com/

Value

ApiVersion

Optional

String

  • Must be one of this: August2024

Default Value:

August2024

Value

UserNameSource

Optional

String

  • Must be one of this: Name, Sid, Guid, DistinguishedName, CanonicalName, SamName, SamAccountName, CommonName, PrincipalName

Default Value:

Name

Value

UserNameCharacterFilter

Optional

String

  • Must not be empty.

  • Must be a valid regular expression.

Group

Proxy

Optional

Value

Type

String

  • Must be one of this: None, Default, Socks5, Http

Value

Host

Optional

String

Default Value:

None

Value

Port

Optional

Integer

Default Value:

0

Value

Username

Optional

String

Default Value:

None

Value

Password

Optional

Password

Default Value:

None

Der Wert SectionIdentifier

Der optionale Wert SectionIdentifier legt fest, in welchem Abschnitt die Tabellen dieser Quelle angezeigt werden. Der angegebene Bezeichner wird automatisch als Titel des Abschnitts verwendet und darf maximal 64 Zeichen umfassen.

Felder mit dem gleichen Abschnittsbezeichner werden automatisch unter diesem Abschnitt gruppiert, unabhängig davon, ob der Abschnitt von dieser oder einer anderen Erweiterung erstellt wurde. Weitere Informationen zu den Abschnitten findest du im Kapitel Der Wert SectionOrder.

Wird der Wert SectionIdentifier nicht definiert, wird standardmäßig azureCloudData verwendet, der im Client als Azure Cloud Data angezeigt wird.

Beispielkonfiguration:

1<Module name="AzureCloudData">
2    ...
3    <Value name="SectionIdentifier">azureCloudData</Value>
4    ...
5</Module>
Darstellung der Abschnitte im Client

Die Abschnitte A, wie sie im Client angezeigt werden.

Der Wert OrderIndex

Mit dem optionalen Wert OrderIndex setzt du eine individuelle Position wo die Tabellen innerhalb des Abschnitts platziert werden. Dazu definierst du hier einen Reihenfolgeindex zwischen 1 und 1000. Lässt du den Wert weg, wird 100 verwendet.

1<Module name="AzureCloudData">
2    ...
3    <Value name="OrderIndex">700</Value>
4    ...
5</Module>

Die folgende Illustration zeigt ein Beispiel wie der Reihenfolgeindex des Felds die Reihenfolge innerhalb jedes Abschnitts definiert.

../../../_images/raptor-client-value-order.jpg

Die Reihenfolgeindexe definieren die Reihenfolge der Felder im Client

Die Liste ObjectFields

Mit der Liste ObjectFields konfigurierst du welche Felder für die einzelnen Objekte angezeigt werden. Weiter kannst du für jedes Feld individuell einen den Titel oder die Reihenfolge ändern, oder das Feld in einem anderen Abschnitt platzieren.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="ObjectFields">
 4        <ListEntry>
 5            <Value name="ObjectType">Computer</Value>
 6            <List name="Fields">
 7                ...
 8            </List>
 9        </ListEntry>
10    </List>
11    ...
12</Module>

Der Wert ObjectType

Mit dem Wert ObjectType definierst du für welchen Objekttyp du eine Konfiguration erstellst. Bei dieser Erweiterung kannst du zwischen Computer und User wählen.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="ObjectFields">
 4        <ListEntry>
 5            <Value name="ObjectType">Computer</Value>
 6            <List name="Fields">
 7                ...
 8            </List>
 9        </ListEntry>
10        <ListEntry>
11            <Value name="ObjectType">User</Value>
12            <List name="Fields">
13                ...
14            </List>
15        </ListEntry>
16    </List>
17    ...
18</Module>

Die Liste Fields

Die Listen Fields definiert die angezeigten Felder in dem konfigurierten Objekt. Alle Details findest du im Kapitel Objektkonfiguration.

Alle möglichen Felder für diese Konfiguration findest du im Kapitel Die Objektfelder weiter unten.

Konfigurationsbeispiel:

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="ObjectFields">
 4        <ListEntry>
 5            <Value name="ObjectType">Computer</Value>
 6            <List name="Fields">
 7                <ListEntry>
 8                    <Value name="Identifier">ObjectId</Value>
 9                    <Value name="IsVisible">No</Value>
10                </ListEntry>
11                <ListEntry>
12                    <Value name="Identifier">NameHost</Value>
13                    <Value name="Title">Host Name</Value>
14                </ListEntry>
15                <ListEntry>
16                    <Value name="Identifier">IdSubscription</Value>
17                    <Value name="Title">Subscription</Value>
18                </ListEntry>
19                <ListEntry>
20                    <Value name="Identifier">IdResourceGroup</Value>
21                    <Value name="Title">Ressource Group</Value>
22                    <List name="Actions">
23                        <ListEntry>
24                            <Value name="Label">Custom Action 1</Value>
25                            <Value name="Arguments">
26                                object-id={value}
27                                host={value}
28                            </Value>
29                        </ListEntry>
30                        <ListEntry>
31                            <Value name="Label">Custom Action 2</Value>
32                            <Value name="Arguments">
33                                object-id={value}
34                                host={value:NameHost}
35                            </Value>
36                        </ListEntry>
37                    </List>
38                </ListEntry>
39                <ListEntry>
40                    <Value name="Identifier">IdHostPool</Value>
41                    <Value name="Title">Host Pool</Value>
42                </ListEntry>
43                <ListEntry>
44                    <Value name="Identifier">LastHeartBeat</Value>
45                </ListEntry>
46                <ListEntry>
47                    <Value name="Identifier">StatusTimestamp</Value>
48                </ListEntry>
49                <ListEntry>
50                    <Value name="Identifier">LastUpdateTime</Value>
51                </ListEntry>
52                <ListEntry>
53                    <Value name="Identifier">OsVersion</Value>
54                </ListEntry>
55                <ListEntry>
56                    <Value name="Identifier">UpdateState</Value>
57                </ListEntry>
58                <ListEntry>
59                    <Value name="Identifier">SessionList</Value>
60                </ListEntry>
61            </List>
62        </ListEntry>
63    </List>
64    ...
65</Module>

Die Liste Tables

Mit der Liste Tables konfigurierst du die verschiedenen Tabellen der Erweiterung. In der aktuellen Version dieser Datenquelle gibt es nur ein Tabellentyp: Session.

Jeder Eintrag in dieser Liste wählt einen Tabellentyp mit dem Wert TableType, und ein Objekttyp mit dem Wert ObjectType. Dabei werden die Einträge in dieser Liste in der Reihenfolge in der sie definiert werden abgearbeitet. Passt sowohl der Tabellentyp wie auch der Objekttyp dann werden die Einträge der Tabellenspalten und Tabellenaktionen übernommen.

Der Wert TableName

Der Wert TableName definierst welche Tabelle du mit den folgenden Werten konfigurierst. Hier kannst du entweder SessionList oder SessionHostList angeben. Nur das Benutzerobjekt unterstützt beide Tabellen, das Computerobjekt enthält nur die SessionList.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Tables">
 4        <ListEntry>
 5            <Value name="TableName">SessionList</Value>
 6            <Value name="ObjectType">User</Value>
 7            ...
 8        </ListEntry>
 9        <ListEntry>
10            <Value name="TableName">SessionList</Value>
11            <Value name="ObjectType">Any</Value>
12            ...
13        </ListEntry>
14    </List>
15    ...
16</Module>

Der Wert ObjectType

Der optionale Wert ObjectType schränkt die Tabellenkonfiguration auf einen bestimmten Objekttyp ein. Möglich sind dabei alle gültigen Objekttypen des Raptor Systems, sowie dem Wert Any der auf alle Objekttypen passt.

  • Any

  • Computer

  • User

Lässt du den Wert weg, wird der Default Any verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Tables">
 4        <ListEntry>
 5            <Value name="TableType">Session</Value>
 6            <Value name="ObjectType">User</Value>
 7            ...
 8        </ListEntry>
 9        <ListEntry>
10            <Value name="TableType">Session</Value>
11            <Value name="ObjectType">Any</Value>
12            ...
13        </ListEntry>
14    </List>
15    ...
16</Module>

Die Listen TableColumns und TableActions

Die beiden Listen TableColumns und TableActions definieren die angezeigten Spalten und Aktionen in der Tabelle. Alle Details findest du im Kapitel Tabellenkonfiguration.

Alle möglichen Felder für diese Konfiguration findest du im Kapitel Die Tabellenfelder weiter unten.

Konfigurationsbeispiel:

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Tables">
 4        <ListEntry>
 5            <Value name="TableType">Session</Value>
 6            <Value name="ObjectType">User</Value>
 7            <List name="TableColumns">
 8                <ListEntry>
 9                    <Value name="Identifier">ObjectId</Value>
10                    <Value name="IsActionParameter">Yes</Value>
11                </ListEntry>
12                <ListEntry>
13                    <Value name="Identifier">SessionState</Value>
14                </ListEntry>
15                <ListEntry>
16                    <Value name="Identifier">UserName</Value>
17                </ListEntry>
18                <ListEntry>
19                    <Value name="Identifier">CreateTime</Value>
20                </ListEntry>
21                <ListEntry>
22                    <Value name="Identifier">Actions</Value>
23                </ListEntry>
24            </List>
25            <List name="TableActions">
26                <ListEntry>
27                    <Value name="Label">User Action</Value>
28                    <Value name="Arguments">action=usertest</Value>
29                </ListEntry>
30            </List>
31        </ListEntry>
32        <ListEntry>
33            <Value name="TableType">Session</Value>
34            <Value name="ObjectType">Any</Value>
35            <List name="TableColumns">
36                <ListEntry>
37                    <Value name="Identifier">ObjectId</Value>
38                    <Value name="IsActionParameter">Yes</Value>
39                </ListEntry>
40                <ListEntry>
41                    <Value name="Identifier">SessionState</Value>
42                </ListEntry>
43                <ListEntry>
44                    <Value name="Identifier">UserName</Value>
45                </ListEntry>
46                <ListEntry>
47                    <Value name="Identifier">Actions</Value>
48                </ListEntry>
49            </List>
50            <List name="TableActions">
51                <ListEntry>
52                    <Value name="Label">Common Action</Value>
53                    <Value name="Arguments">action=commontest</Value>
54                </ListEntry>
55            </List>
56        </ListEntry>
57    </List>
58    ...
59</Module>

Die Liste Connections

Mit der Liste Connections konfigurierst du die einzelnen Verbindungen zu der Azure Desktop Cloud API. Jeder Eintrag in dieser Liste definiert einen individuellen Verbindungsaufbau mit unabhängigen Tenant Identifier, Client Identifier, Client Secret und Subscription Identifier.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            <Value name="ClientId">...</Value>
 8            <Value name="ClientSecret">...</Value>
 9            <Value name="TenantId">...</Value>
10            <Value name="SubscriptionId">...</Value>
11        </ListEntry>
12        ...
13    </List>
14    ...
15</Module>

Der Wert Name

Mit dem Wert Name definierst du einen eindeutigen Namen für die Verbindung. Dieser Name wird in Logdateien und Fehlermeldungen verwendet, damit du ein Problem der Verbindung zuordnen kannst.

Der Verbindungsname muss eindeutig sein, aus maximal 50 Zeichen bestehen und nur Buchstaben, Zahlen, den Unterstrich und Bindestrich enthalten.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            <Value name="ClientId">...</Value>
 8            <Value name="ClientSecret">...</Value>
 9            <Value name="TenantId">...</Value>
10            <Value name="SubscriptionId">...</Value>
11        </ListEntry>
12        ...
13    </List>
14    ...
15</Module>

Der Wert ObjectContext

Mit dem Wert ObjectContext setzt du den Kontext für alle Objekte welche für diesen Active Directory. Hier kannst du maximal 50 Zeichen mit Buchstaben, Zahlen, dem Unterstrich _ oder Punkten . angeben.

Wir empfehlen das du einen einheitlichen Kontext für alle zusammengehörenden Objekte im Raptor Server konfigurierst. Verwende beispielsweise für die Domäne example.com den Kontext example in allen Erweiterungen.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            <Value name="ClientId">...</Value>
 8            <Value name="ClientSecret">...</Value>
 9            <Value name="TenantId">...</Value>
10            <Value name="SubscriptionId">...</Value>
11        </ListEntry>
12        ...
13    </List>
14    ...
15</Module>

Der Wert TenantId

Mit dem Wert TenantId setzt du den Bezeichner für den Azure AD-Mandant. Ein Azure AD-Mandant ist im Wesentlichen eine Instanz von Azure Active Directory, die eine Organisation und ihre Ressourcen repräsentiert.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            <Value name="ClientId">...</Value>
 8            <Value name="ClientSecret">...</Value>
 9            <Value name="TenantId">...</Value>
10            <Value name="SubscriptionId">...</Value>
11        </ListEntry>
12        ...
13    </List>
14    ...
15</Module>

Der Wert Scope

Mit dem optionalen Wert Scope, kannst du den Zugriff der Erweiterung auf die Cloud-Ressourcen weiter limitieren. Lässt du diesen Wert weg, wird der folgende Default verwendet:

https://management.azure.com/.default

Bemerkung

Wir raten dir von einer Veränderung dieses Wertes ab. Bitte verändere diesen Wert nur nach Rücksprache mit unserem Support Team.

Der Wert ClientId

Mit dem Wert ClientId definierst du den Client Identifier der für den Verbindungsaufbau verwendet wird.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            <Value name="ClientId">...</Value>
 8            <Value name="ClientSecret">...</Value>
 9            <Value name="TenantId">...</Value>
10            <Value name="SubscriptionId">...</Value>
11        </ListEntry>
12        ...
13    </List>
14    ...
15</Module>

Der Wert ClientSecret

Mit dem Wert ClientSecret legst du das Client-Secret für die Authentifizierung fest. Achte darauf, das Secret entsprechend zu schützen. Informationen zum Kodieren von Passwörtern und Secrets findest du im Kapitel Kodieren von Passwörtern.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            <Value name="ClientId">...</Value>
 8            <Value name="ClientSecret">...</Value>
 9            <Value name="TenantId">...</Value>
10            <Value name="SubscriptionId">...</Value>
11        </ListEntry>
12        ...
13    </List>
14    ...
15</Module>

Der Wert SubscriptionId

Mit dem Wert SubscriptionId setzt du den Bezeichner für die Abonnementinstanz. Ein Azure-Abonnement ist im Wesentlichen eine Abrechnungseinheit, die es ermöglicht, Azure-Ressourcen zu nutzen und dafür zu bezahlen.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            <Value name="ClientId">...</Value>
 8            <Value name="ClientSecret">...</Value>
 9            <Value name="TenantId">...</Value>
10            <Value name="SubscriptionId">...</Value>
11        </ListEntry>
12        ...
13    </List>
14    ...
15</Module>

Der Wert StartupDelay

Mit dem optionalen Wert StartupDelay kannst du die Verzögerung in Sekunden festlegen, die vor der ersten Anfrage nach dem Start der Erweiterung gewartet werden soll.

Lässt du den Wert weg, wird der Standardwert von 10 Sekunden verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="StartupDelay">60</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Der Wert RetrievalInterval

Mit dem optionalen Wert DelayAfterError kannst du das Intervall zwischen zwei Abfragen in Sekunden festlegen. Dieser Wert definiert die Zeit, die zwischen den Abfragen vergeht.

Lässt du den Wert weg, wird der Standardwert von 60 Sekunden verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="DelayAfterError">120</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Der Wert DelayAfterError

Mit dem optionalen Wert DelayAfterError kannst du die Verzögerung in Sekunden nach einem Fehler oder einer unerwarteten Antwort von der API festlegen.

Lässt du den Wert weg, wird der Standardwert von 10 Sekunden verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="DelayAfterError">120</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Der Wert ErrorCountToEscalate

Mit dem optionalen Wert ErrorCountToEscalate kannst du festlegen, wie viele Fehler auftreten dürfen, bevor das Problem als Fehler gemeldet wird. Dieser Wert stellt den Schwellenwert für die Eskalation des Problems dar.

Lässt du den Wert weg, wird der Standardwert 10 verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="ErrorCountToEscalate">5</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Der Wert DelayAfterErrorEscalation

Mit dem optionalen Wert DelayAfterErrorEscalation änderst du, wie lange bis zum nächsten Verbindungsaufbau nach einem Fehler gewartet werden soll. Der Wert ist die Anzahl der Sekunden der totalen Wartezeit.

Lässt du den Wert weg, wird der Default von 600 Sekunden verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="DelayAfterErrorEscalation">2400</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Der Wert RequestTimeout

Mit dem optionalen Wert RequestTimeout, änderst du wie lange die Erweiterung auf eine Antwort vom Cloud Server warten soll. Der Wert ist die Anzahl der Sekunden der totalen Wartezeit. Wird die Zeitspanne überschritten, wird der Verbindungsaufbau mit einem Fehler abgebrochen.

Lässt du den Wert weg, wird der Default von 300 Sekunden verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="RequestTimeout">1200</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Der Wert ManagementBaseURL

Mit dem optionalen Wert ManagementBaseURL kannst du den Basisteil der URL verändern, welche für die Abfrage der Daten verwendet wird.

Lässt du diesen Wert weg, wird der Default https://management.azure.com/ verwendet.

Bemerkung

Wir raten dir von einer Veränderung dieses Wertes ab. Bitte verändere diesen Wert nur nach Rücksprache mit unserem Support Team.

Der Wert AuthorizationBaseURL

Mit dem optionalen Wert ManagementBaseURL kannst du den Basisteil der URL verändern, welche für die Authentifizierung verwendet wird.

Lässt du diesen Wert weg, wird der Default https://login.microsoftonline.com/ verwendet.

Bemerkung

Wir raten dir von einer Veränderung dieses Wertes ab. Bitte verändere diesen Wert nur nach Rücksprache mit unserem Support Team.

Der Wert ApiVersion

Mit dem optionalen Wert ApiVersion kannst du auf eine ältere Version der Logik für Abfragen konfigurieren. Mögliche Werte sind:

  • August2024

Lässt du diesen Wert weg, wird automatisch die aktuellste Version der Logik verwendet.

Bemerkung

Wir raten dir von einer Veränderung dieses Wertes ab. Bitte verändere diesen Wert nur nach Rücksprache mit unserem Support Team.

Der Wert UserNameSource

Mit dem optionalen Wert UserNameSource wählst du, welches Feld aus der Benutzertabelle für den Objektnamen verwendet wird. Dabei kannst du zwischen folgenden Felder wählen:

  • Name

  • PrincipalName

  • ActiveDirectory

Lässt du den Wert weg, wird der Default Name verwendet.

Der in dem Feld enthaltene Name wird zuerst normalisiert und danach alle Sonderzeichen mit einen Unterstrich ersetzt. Falls du weitere Teile aus dem Feldinhalt entfernen möchtest, kannst du dazu den Wert UserNameCharacterFilter verwenden.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="UserNameSource">PrincipalName</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Der Wert UserNameCharacterFilter

Mit dem optionalen Wert UserNameCharacterFilter kannst du Elemente aus dem Feld für den Benutzernamen entfernen. Gib dazu einen gültigen regulären Ausdruck an. Jede Stelle auf den dein regulärer Ausdruck passt wird aus dem Namen entfernt.

Lässt du den Wert weg, wird nichts aus dem gewählten Feld entfernt.

 1<Module name="AzureCloudData">
 2    ...
 3    <List name="Connections">
 4        <ListEntry>
 5            <Value name="Name">ExampleAccess</Value>
 6            <Value name="ObjectContext">example.com</Value>
 7            ...
 8            <Value name="UserNameCharacterFilter">(?:lab-|beta-)</Value>
 9            ...
10        </ListEntry>
11        ...
12    </List>
13    ...
14</Module>

Die Gruppe Proxy

Mit der optionalen Gruppe Proxy kannst du einen Proxyserver definieren, über den alle Verbindungen zur Citrix Cloud aufgebaut werden. Lässt du die Gruppe weg, wird kein Proxyserver für die Verbindungen verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <Group name="Proxy">
 4        <Value name="Type">Socks5</Value>
 5        <Value name="Host">proxy.example.com</Value>
 6        <Value name="Port">8888</Value>
 7        <Value name="Username">example</Value>
 8        <Value name="Password">password</Value>
 9    </Group>
10    ...
11</Module>
Der Wert Type

Mit dem Wert Type setzt du den Typ des Proxyservers. Mögliche Werte sind:

  • None - Kein Proxyserver wird verwendet.

  • Default - Die Proxyeinstellungen des Betriebssystems werden verwendet.

  • Socks5 - Ein Socks 5 Proxy wird verwendet.

  • Http - Ein HTTP Proxy wird verwendet.

 1<Module name="AzureCloudData">
 2    ...
 3    <Group name="Proxy">
 4        <Value name="Type">Socks5</Value>
 5        <Value name="Host">proxy.example.com</Value>
 6        <Value name="Port">8888</Value>
 7        <Value name="Username">example</Value>
 8        <Value name="Password">password</Value>
 9    </Group>
10    ...
11</Module>
Der Wert Host

Mit dem Wert Host setzt du den DNS namen des Proxyservers, oder die IP-Adresse. Dieser Wert ist notwendig, falls du einen Socks 5 oder HTTP Proxy verwenden möchtest.

 1<Module name="AzureCloudData">
 2    ...
 3    <Group name="Proxy">
 4        <Value name="Type">Socks5</Value>
 5        <Value name="Host">proxy.example.com</Value>
 6        <Value name="Port">8888</Value>
 7        <Value name="Username">example</Value>
 8        <Value name="Password">password</Value>
 9    </Group>
10    ...
11</Module>
Der Wert Port

Mit dem optionalen Wert Port setzt du einen eigenen Port, falls dieser vom Defaultport des Protokolls abweicht.

 1<Module name="AzureCloudData">
 2    ...
 3    <Group name="Proxy">
 4        <Value name="Type">Socks5</Value>
 5        <Value name="Host">proxy.example.com</Value>
 6        <Value name="Port">8888</Value>
 7        <Value name="Username">example</Value>
 8        <Value name="Password">password</Value>
 9    </Group>
10    ...
11</Module>
Der Wert Username

Falls der verwendet Proxyserver einen Benutzernamen verlangt, setzt du ihn mit diesem Wert.

 1<Module name="AzureCloudData">
 2    ...
 3    <Group name="Proxy">
 4        <Value name="Type">Socks5</Value>
 5        <Value name="Host">proxy.example.com</Value>
 6        <Value name="Port">8888</Value>
 7        <Value name="Username">example</Value>
 8        <Value name="Password">password</Value>
 9    </Group>
10    ...
11</Module>
Der Wert Password

Wenn du einen Benutzernamen verwendest, dann kannst du mit dem Wert Password das dazugehörige Passwort setzen.

 1<Module name="AzureCloudData">
 2    ...
 3    <Group name="Proxy">
 4        <Value name="Type">Socks5</Value>
 5        <Value name="Host">proxy.example.com</Value>
 6        <Value name="Port">8888</Value>
 7        <Value name="Username">example</Value>
 8        <Value name="Password">password</Value>
 9    </Group>
10    ...
11</Module>

Konfigurationsbeispiel

Hier siehst du ein komplettes Konfigurationsbeispiel für die Erweiterung.

 1<?xml version="1.0" encoding="UTF-8" ?>
 2<Configuration
 3        version="1"
 4        xmlns="http://educateit.ch/software/BlueStone/Configuration/1">
 5
 6    <Module name="AzureCloudData">
 7        <List name="Connections">
 8            <ListEntry>
 9                <Value name="Name">TestAccess</Value>
10                <Value name="ObjectContext">educateit.test</Value>
11                <Value name="ClientId">***</Value>
12                <Value name="ClientSecret">***</Value>
13                <Value name="TenantId">***</Value>
14                <Value name="SubscriptionId">***</Value>
15            </ListEntry>
16        </List>
17
18        <List name="Tables">
19            <ListEntry>
20                <Value name="TableType">Session</Value>
21                <!-- Currently there is only Session available. -->
22                <Value name="ObjectType">User</Value>
23                <!-- Any, Computer, User, Application-->
24                <List name="TableColumns">
25                    <ListEntry>
26                        <Value name="Identifier">ObjectId</Value>
27                        <Value name="IsActionParameter">Yes</Value>
28                    </ListEntry>
29                    <ListEntry>
30                        <Value name="Identifier">SessionState</Value>
31                    </ListEntry>
32                    <ListEntry>
33                        <Value name="Identifier">UserName</Value>
34                    </ListEntry>
35                    <ListEntry>
36                        <Value name="Identifier">UserPrincipalName</Value>
37                    </ListEntry>
38                    <ListEntry>
39                        <Value name="Identifier">UserActiveDirectory</Value>
40                    </ListEntry>
41                    <ListEntry>
42                        <Value name="Identifier">CreateTime</Value>
43                    </ListEntry>
44                </List>
45                <List name="TableActions">
46                    <ListEntry>
47                        <Value name="Label">User Action</Value>
48                        <Value name="Arguments">action=usertest</Value>
49                    </ListEntry>
50                </List>
51            </ListEntry>
52            <ListEntry>
53                <Value name="TableType">Session</Value>
54                <Value name="ObjectType">Any</Value>
55                <List name="TableColumns">
56                    <ListEntry>
57                        <Value name="Identifier">ObjectId</Value>
58                        <Value name="IsActionParameter">Yes</Value>
59                    </ListEntry>
60                    <ListEntry>
61                        <Value name="Identifier">SessionState</Value>
62                    </ListEntry>
63                    <ListEntry>
64                        <Value name="Identifier">UserPrincipalName</Value>
65                    </ListEntry>
66                    <ListEntry>
67                        <Value name="Identifier">CreateTime</Value>
68                    </ListEntry>
69                </List>
70                <List name="TableActions">
71                    <ListEntry>
72                        <Value name="Label">Common Action</Value>
73                        <Value name="Arguments">action=commontest</Value>
74                    </ListEntry>
75                </List>
76            </ListEntry>
77        </List>
78
79    </Module>
80
81</Configuration>

Die Objektfelder

Die folgenden Tabellen zeigen dir alle möglichen Felder welche du für Objektdefinitionen verwenden kannst.

Die Felder für das Computerobjekt

Die folgende Tabelle listet alle möglichen Felder auf, die für die Definition eines Computerobjekts verwendet werden können.

Bezeichner

Typ

Beschreibung

ObjectId

Text

Der eindeutige Objektbezeichner des Computerobjekts.

Name

Text

Der vollständige Name des Computers.

NameHost

Text

Der Hostname des Computers ohne Domain-Anteil.

Id

Text

Der volle Bezeichner des Computers.

IdSubscription

Text

Die ID der zugehörigen Subscription.

IdResourceGroup

Text

Die ID der Ressourcen-Gruppe.

IdHostPool

Text

Die ID des Host-Pools.

IdSessionHostName

Text

Der verlinkte Name des Session-Hosts.

IdSessionHostDomain

Text

Die Domain des Session-Hosts.

Type

Text

Der Typ des Computers oder Hosts.

LastHeartBeat

Datum/Zeit

Zeit der letzten Aktivität des Hosts.

StatusTimestamp

Datum/Zeit

Zeit des letzten Statuswechsels.

LastUpdateTime

Datum/Zeit

Zeit der letzten Aktualisierung.

Sessions

Text

Informationen über die aktuellen Sessions auf dem Computer.

AgentVersion

Text

Die Version des Agents, der auf dem Computer läuft.

AllowNewSession

Text

Kennzeichnung, ob der Host neue Sessions zulässt.

AssignedUserName

Verknüpfung

Der zugewiesene Benutzername, verknüpft mit dem zugehörigen Benutzerkontext.

AssignedUserContext

Text

Der Kontext des zugewiesenen Benutzers.

Status

Text

Der aktuelle Status des Computers.

OsVersion

Text

Die Betriebssystemversion des Computers.

SxSStackVersion

Text

Die Version des SxS Stacks.

UpdateState

Text

Der aktuelle Update-Status des Computers.

ResourceId

Text

Bezeichner der zugeordneten Ressource.

VirtualMachineId

Text

Bezeichner der zugeordneten virtuellen Maschine.

SessionList

Tabelle

Liste der Sessions, die mit diesem Computerobjekt verknüpft sind.

Die UserObject Felder

Die folgende Tabelle listet alle möglichen Felder auf, die für die Definition eines Benutzerobjekts verwendet werden können.

Bezeichner

Typ

Beschreibung

Name

Text

Der Name des Benutzers.

ActiveDirectory

Text

Der Active Directory Name des Benutzers.

PrincipalName

Text

Der Principal-Name des Benutzers, oft als Benutzeranmeldename verwendet.

SessionList

Tabelle

Eine Tabelle mit allen Sessions, die diesem Benutzer zugeordnet sind.

SessionHostList

Tabelle

Eine Tabelle mit allen Session-Hosts, die diesem Benutzer zugeordnet sind.

Die Tabellenfelder

Die folgenden Tabellen zeigt dir alle möglichen Spalten welche du in Tabellen verwenden kannst.

Die SessionList Tabelle

Bezeichner

Typ

Beschreibung

Name

Text

Der Sessionname aus dem Feld name.

Id

Text

Der volle Bezeichner der Session.

IdSubscription

Text

Die ID der zugehörigen Subscription, abgeleitet von Id.

IdResourceGroup

Text

Die ID der Ressourcen-Gruppe, abgeleitet von Id.

IdHostPool

Text

Die ID des Host-Pools, abgeleitet von Id.

IdSessionHostName

Text

Der verlinkte Name des Session-Hosts, abgeleitet von Id.

IdSessionHostDomain

Text

Die Domain des Session-Hosts, abgeleitet von Id.

IdUserSession

Text

Die ID der Benutzersession, abgeleitet von Id.

Type

Text

Der Typ der Session.

ObjectId

Text

Der Objektbezeichner der Session.

ApplicationType

Text

Der Typ der Anwendung innerhalb der Session.

UserName

Text

Der verlinkte Benutzername.

UserPrincipalName

Text

Der verlinkte Principal-Benutzername.

UserActiveDirectory

Text

Der verlinkte Active Directory Benutzername.

SessionState

Text

Der Status der Session.

CreateTime

Datum/Zeit

Das Erstellungsdatum und die Uhrzeit der Session.

Actions

Aktionen

Die Knöpfe für deine Aktionen

Die SessionHostList Tabelle

Bezeichner

Typ

Beschreibung

ObjectId

Text

Der Objektbezeichner des Session-Hosts.

Name

Text

Der vollständige Name des Session-Hosts.

NameHost

Verknüpfung

Der verknüpfte Hostname des Session-Hosts.

Id

Text

Der volle Bezeichner des Hosts.

IdSubscription

Text

Die ID der zugehörigen Subscription, abgeleitet von Id.

IdResourceGroup

Text

Die ID der Ressourcen-Gruppe, abgeleitet von Id.

IdHostPool

Text

Die ID des Host-Pools, abgeleitet von Id.

IdSessionHostName

Verknüpfung

Der verlinkte Session-Host Name, abgeleitet von Id.

IdSessionHostDomain

Text

Die Domain des Session-Hosts, abgeleitet von Id.

Type

Text

Der Typ des Session-Hosts.

LastHeartBeat

Datum/Zeit

Zeit der letzten Aktivität.

StatusTimestamp

Datum/Zeit

Zeit des letzten Statuswechsels.

LastUpdateTime

Datum/Zeit

Zeit der letzten Aktualisierung.

Sessions

Text

Informationen über offene Sessions.

AgentVersion

Text

Version des Agents.

AllowNewSession

Text

Kennzeichnung, ob neue Sessions zugelassen sind.

Status

Text

Aktueller Status des Session-Hosts.

OsVersion

Text

Betriebssystemversion des Hosts.

SxSStackVersion

Text

SxS Stack Version des Hosts.

UpdateState

Text

Aktueller Update-Status.

ResourceId

Text

Bezeichner der zugeordneten Ressource.

VirtualMachineId

Text

Bezeichner der zugeordneten virtuellen Maschine.

AssignedUserName

Verknüpfung

Zugewiesener Benutzername, verknüpft mit dem Benutzerkontext.

Actions

Aktionen

Die Knöpfe für deine Aktionen

Diagnoseinformationen

Diese Erweiterung bietet die folgenden Bezeichner für erweiterte Diagnoseinformationen an.

Bezeichner

Beschreibung

AzDataDetails

Zeigt die grundlegende Informationen der Logik der Erweiterung an.

AzDataHttpDetails

Zeigt dir die individuellen Anfragen und Antworten welche via HTTPS gemacht werden.

AzDataWatchDog

Zeigt die Details des Überwachungssystems an.