Skip to content

Instructions

ElbyFross edited this page Jan 25, 2020 · 11 revisions

Remarks

An instructions using into the RoutingTable instances for devine routing behavior and store some metadata.

  • Instructions can be serialized to an XML format
  • Normaly all instructions located at the PipesProvider.Networking.Routing namespace.
  • In the common cases instructions is a part of the RoutingTable instances.
  • Instruction defines is the TransmissionLine would be encrypted but an IEncryptionOperator defined by an app.

Query patterns

As was noted before instruction allows to configure a handling query by a query pattern that allows to describe necessary parts of the query and its value.

The following tables contains allowed query pattern formats. The part is a QueryPart key from a handling Query.

Sequence Description Example
!part Not allows existing of the part into a routing query. !USER
$part or part The part is must be included into a query. $USER or USER
part,part The , symbol allows to add next pattern part USER,LOGIN,PASSWORD
part=value The value of a part must be the same as defined at an instruction. ID=100
part!=value The value of a part must be the different to defined at an instruction. SERVERNAME!=queryserver

Logon config

The Instruction has implemented feature for impersonating of an app as an user on the defined remote device.

  • The logon params setting via the logonConfig field.
  • By default trying to logon as an anonymous guest user. To allowance of that action the server must has a LSA policy that permits such kind of connections.

Read more about LSA management into the General security article.

Overview

The following article provides that description for all implemented Instruction-like structures included to the package.

Instruction

The base struct that implements the common API for instructions management. Any other instructions inherited from that type.

  • Has the AsymmetricEncryptionOperator field with an EncryptionOperator that provides safe exchanging of the small secure data. In common cases using for encrypting of symmetric keys into a query.
  • By default the AsymmetricEncryptionOperator is an instance of the RSAEncryptionOperator.
  • AsymmetricEncryptionOperator must be the same type as an operator started on the binded server.

PartialAuthorizedInstruction

Provides a data and an API required for connections that demand partical authorization rights (guest rights) on a server.

  • Implemented by the DNFCore lib.
  • Derived from the Instruction.
  • Handles GET GUEST TOKEN query processor for receiving the guest token required for transmission lines started with the instruction. The current state of the token session available via the GuestTokenHandler property.
  • Provides an API to define a chanel on the server for guest connections.

AuthorizedInstruction

Provides a data and an API required for connection that requires authorization as an Authority Controller user.

  • Implemented by the Autthority Controller addon.
  • Derived from the PartialAuthorizedInstruction.
  • Handles USER LOGON query processor for receiving the full authorized token required for transmission lines started with the instruction. The current state of the token session available via the LogonHandler property.
  • Define auth params via the fields authLogin and authPassword.

RelayInstruction

An instruction that describes tunnel routing via servers chain.

  • Implemented by the DNFCore lib.
  • Derived from the PartialAuthorizedInstruction.
  • Has two relay behavior modes:
    • Duplex - in case if a destination server is a common one and can handles both Input and Output transmissions.
    • Broadcasting - in case if a desctination server is a BroadcaserServer-like. (Starts broadcasting immediately after connection and drops the connection after finish of transmission.)

Links

Related pages