KanBo API für Entwickler

Inhaltsverzeichnis

This post is also available in: English

KanBo konfigurieren

Wenn Sie KanBo über KanBo verwenden möchten. Client.dll müssen Sie zunächst Ihr KanBo konfigurieren.
In der Datei web.config im Abschnitt Sie müssen ein X509-Zertifikat registrieren, das für die Authentifizierung verwendet wird (Sie können es sogar selbst mit makecert, IIS oder einem PowerShell-Commandlet generieren).

KanBo Sie KanBo-API-Dateien herunter.

KanBo Sie KanBo-API-Methoden herunter.

Anbietertypen für Zertifikate

Wie oben gezeigt, gibt es verschiedene Anbietertypen für Zertifikate:

  • Login“ – Wenn Sie diesen Anbietertyp verwenden, wird Ihr Dienst als Benutzer angezeigt, dessen Login Sie angeben, und er hat genau die gleichen Berechtigungen wie dieser Benutzer.

Die lokale Anmeldung sieht folgendermaßen aus:
‚i:0#.w|Domäne\Benutzer‘ ‚Domäne\Benutzer‘

Die O365-Anmeldung sieht folgendermaßen aus:
‚i:0#.f|Mitgliedschaft|user@exampledomain.onmicrosoft.com‘ ‚user@exampledomain.onmicrosoft.com‘

  • Benutzer“ – Wenn Sie diesen Anbietertyp verwenden, wird Ihr Dienst als von Ihnen im Code definierter Benutzer angesehen und verfügt über genau die gleichen Berechtigungen wie dieser Benutzer.
  • Service“ – Wenn Sie diesen Anbietertyp verwenden, wird Ihr Service als Service angesehen.
    KanBo behandelt dies wie einen fiktiven Benutzer, dessen Name aus der Konfiguration übernommen wurde.
    Dieser Benutzer verfügt erst dann über Berechtigungen, wenn er keine „Service“-Rolle in einem Token erhält.
  • E-Mail“ – dort verwenden wir eine E-Mail, die aus dem Benutzerprofil in KanBo entnommen wurde.

Hier sind die Rollen:

  • *“ – dieses Feld kann zu jedem Mapper hinzugefügt werden.
    Es ermöglicht Token, alle möglichen Tokenrollen hinzuzufügen.
  • Alarm-Erinnerung„, „Profiles-Sync„, „Security-Group-Sync-Source“ – Rollen für Dienste
  • templates“ – Rolle für Templates
  • security-groups-super“ – Rolle, die es ermöglicht, jede Gruppe zu ändern
  • Service“ – diese Rolle erlaubt alles, trotz der Berechtigungen
  • security:aad„, „security:sp„, „security:{issuer}“ – Rolle, die die Verwendung von Authentifizierungstoken jedes Typs ermöglicht, die sich in der SQL-Datenbank befinden, Sie sollten sie nicht für die Zuordnung von „service“ verwenden
  • external-services“ – Tole, der es ermöglicht, als App in SharePoint zu arbeiten, ermöglicht den Zugriff auf Dateien usw.

Beispiel:

				<auth.app issuer="some-issuer">
<signature algo="rs256">
<cert type="x509-file" file="D:\home\site\certs\some-cert.cer" />
</signature>
<mapper type="service" name="some-name" roles="service" />
<mapper type="user" />
<mapper type="email" roles="service" />
<mapper type="login" />
</auth.app>
			

Unterzeichner

Der ‚Signer‘ deklariert, welches Zertifikat verwendet wird, um die Signatur eines bestimmten Tokens zu validieren, mögliche Typen sind:

**x509-file** – enthält einen öffentlichen oder privaten Schlüssel, der über den angegebenen Pfad aus einer Datei gelesen wird (Sie können hier entweder .cer oder .pfx verwenden, die PFX-Datei benötigt einen Schlüssel).

				<auth.app issuer="issuer">
<signature algo="rs256">
<cert type="x509-file" file="D:\home\site\certs\cert.cer" />
</signature>
<mapper type="service" name="some-name" roles="service" />
<mapper type="user" />
<mapper type="email" roles="issuer" />
<mapper type="login" />
</auth.app>
			

**x509-store** – enthält einen öffentlichen oder privaten Schlüssel, der von einem Zertifikat in einem bestimmten Zertifikatspeicher durch die angegebene Eigenschaft gelesen wird.

				<auth.app issuer="issuer">
<signature algo="rs256">
<cert type="x509-store"
store-name="my"
store-location="currentuser"
key="thumbprint"
value="thumprint-value"
valid-only="false"
/>
</signature>
<mapper type="service" name="some-name" roles="service" />
<mapper type="user" />
<mapper type="email" roles="issuer" />
<mapper type="login" />
</auth.app>
			

Erforderliche Parameter für KanBo

				var kanboUrl = "https://my-new-kanbo.azurewebsites.net"; //url of kanbo - required for all security tokens
			
				var userId = 1; //user id - usually same as myBoard id
			
				var loginName = "i:0#.f|membership|my-user@mynewkanbo.com";// i:0#.w|developer\\administrator"; //login of kanbo user - required for login type security token
			

/* Abrufen desselben Zertifikats, das in KanBo web.config registriert ist */

				var cert = new X509Certificate2(_userCertPath, _userCertPassword); //(path, password) to generated certificate
			

Erstellen eines API-Objekts

Generieren des gewünschten Token-Dienstes und/oder Benutzertyps
				var userToken = new JwtTokenSource(new LoginToken.Transformer(loginName,"SP").WithRoles("external-services"), TimeSpan.FromMinutes(10),
			
Generieren des Tokens für den Anmeldebereich
				new KanBo.Jwt.Serializers.RS256AlgorithmSerializer(cert, "some-cert"));
			
Generieren von Diensten
				var serviceToken = new ServiceToken("some-cert", TimeSpan.FromMinutes(10), cert);
			
Generieren von Token für den Benutzerbereich
				var idToken = new JwtTokenSource(new UserToken.Transformer(userId).WithRoles("external-services"), TimeSpan.FromMinutes(10),
new KanBo.Jwt.Serializers.RS256AlgorithmSerializer(cert, "some-cert"));
			
Erstellen eines HTTP-Clients und Festlegen von Anmeldeinformationen, falls erforderlich
				var hc = new HttpClient();
			
Erstellen des Anforderers
				var jsonRequester = new JsonApiRequester(serviceToken, kanboUrl, hc);
			
Erstellen eines API-Objekts
				var api = new Api(jsonRequester);
			

Aufrufen von Methoden

Alle Methoden in unserer API können auf folgende Weise aufgerufen werden:

Abrufen des Standard-Home-Layouts
				var layout = await api.GetData(KanBoGetDataMethods.List, new { Id = 3222});
var jLayout = JObject.Parse(layout);
			
Neues Board hinzufügen
				var newBoard = await api.Action(KanBoActionMethods.AddBoard, new
{
Name = "TestApi2",
Color = 1,
});
var jNewBoard = JObject.Parse(newBoard);
			
Abrufen von Board-Berechtigungsgruppen
				var boardGroups = await api.GetData(KanBoGetDataMethods.GroupsInBoard, new { BoardId = (int)jNewBoard["Id"] });
var jBoardGroups = JObject.Parse(boardGroups);
			
Benutzer suchen
				var foundUser = await api.GetData(KanBoGetDataMethods.Users, new { Keyword = "my-user" });
var jFoundUser = JObject.Parse(foundUser);
			

Verfügbare Methoden

Es gibt 2 Arten von KanBo :

  • GetData-Methoden
  • Actions-Methoden

War dieser Beitrag hilfreich?

Bitte kontaktieren Sie uns, wenn Sie weitere Fragen haben.