Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only

Die Seite wird erstellt Niclas Steinbach
 
WEITER LESEN
Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only
Central MSP &
Advanced
Moritz Wuerich // 16. Oktober 2018
Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only
Central MSP & Advanced

1. Überblick & Einordnung
2. MSP-Modus
  – Anwendungen
  – Demo
3. Arbeiten mit der API
  – Möglichkeiten & Grundlagen
  – Werkzeuge
  – Beispiel: Applikation zur Gästeverwaltung
4. Fragen

                                                2
Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only
Überblick & Einordnung

                         3
Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only
Central ist die SaaS-Managementlösung von Aruba für Switches und
Instant-AP

      MANAGEMENT

      INFRASTRUKTUR

                                                                   4
Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only
Switchunterstützung in Central 2.4.5 (Oktober 2018)

Gerätefamilie           Unterstützt mit Firmware      Stack unterstützt mit FW
2530                    16.05+                        ---
2540                    16.03+                        ---
2920                    16.03+                        16.04+, nur Template-Gruppe
2930F                   16.03+                        ---
2930M                   16.04+                        16.06+, nur Template-Gruppe
3810M                   16.03+                        ---
5400R                   16.04+, nur Template-Gruppe   16.06+, nur Template-Gruppe

                                                                                    5
Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only
MSP-Modus

            6
Central MSP & Advanced - Moritz Wuerich // 16. Oktober 2018 - Read-Only
Im MSP-Modus kann ein Central-Account mehrere untergeordnete
Kunden verwalten

                        Managed Service
                                          – Franchisegeber und –nehmer
                         Provider (MSP)
                                          – Kommunaler IT-Dienstleister und Schulträger
                                          – IT-Abteilung und andere Unternehmensteile
                          MSP-Kunde       – Systemhäuser und Endkunden

                                                                                          7
MSP kann Erscheinungsbild des Endkundenportals anpassen

                                                          8
Geräte und Lizenzen werden zentral vom MSP verwaltet und den Kunden
zugeordnet

                                                                      9
MSP kann zentrale Konfigurationselemente an Kunden vererben

     MSP             default         Holonet         High-Risk

     Kunde                           default

                                                                 10
11
Arbeiten mit der API

                       12
Mit der Central-API werden Daten und Funktionen für Drittsysteme
zugänglich
Anwendungsfälle
– Regelmäßiges Reporting in individuellem Format
– Gästetickets auf Knopfdruck in einem Schulverwaltungssystem
– Provisionierung von Geräten und MSP-Kunden
– Anbindung eines Ticket-Systems für Alarme
– Abrechnung von Lizenzen und Geräten

                                                                   13
Skripte können Aktualisierung per API übernehmen und große
Datenmengen umsetzen

    Konfigurations-datenbank

                                                      API-Call
                                  Skript für
                               Anpassungen und
                                   Parsing

          Angepasste
          Oberfläche
                                                                 14
REST ist ein Architekturstil für die Kommunikation in verteilten Systemen

Client                                              Server
                                                                                   URI (Uniform Resource Identifier)
                                                                              http://wetter.com/cities/Essen
         GET /cities/Essen

                                                                                                    Ressource

         {
                                                                Repräsentation HTML                                     Repräsentation JSON
             "city":"Essen",
             "temperatures":                                                                   {
             {                                                                                              "city":"Essen",
               "max":"25",                                                                                  "temperatures":
               "min":"12"                                 Wetter                                           {
             }                                                   Essen                                      "max":"25",
         }                                                                                                   "min":"12"
                                                         …                                           }
                                                                                                       }

         Hier gezeigt ist eine typische und im Folgenden relevante Implementierung mittels HTTP und JSON. Mehr Infos:
         Fielding (2000). Architectural Styles and the Design of Network-based Software Architectures. Irvine, CA.                            15
Verschiedene Methoden ermöglichen lesen, löschen, erstellen und ändern

Client                                              Server
                                                                                   URI (Uniform Resource Identifier)
                                                                              http://wetter.com/cities/Essen
         PUT /cities/Essen
         {                                                                                          Ressource
             "city":"Essen",
             "temperatures":
             {                                                  Repräsentation HTML                                     Repräsentation JSON
               "max":"27",
               "min":"18"                                                                      {
             }                                                                                              "city":"Essen",
         }                                                                                                  "temperatures":
                                                          Wetter                                           {
         DELETE /cities/                                         Essen                                      "max":"25",
                 Bielefeld                                                                                   "min":"12"
                                                         …                                           }
                                                                                                       }

         Hier gezeigt ist eine typische und im Folgenden relevante Implementierung mittels HTTP und JSON. Mehr Infos:
         Fielding (2000). Architectural Styles and the Design of Network-based Software Architectures. Irvine, CA.                            16
Applikationen müssen zuerst für den API-Zugriff registriert werden

                                                                     17
Für das Generieren eines Access-Token sind drei Aufrufe gegen die
Central-API notwendig

                        Benutzername, Passwort, Client-ID
                                                                         /oauth2/authorize/central/api/login
                               CSRF-Token, Session-ID

              CSRF-Token, Session-ID, Client-ID, Reponse-Type, Scope
   App                                                                   /oauth2/authorize/central/api
                                     Auth-Token

                  Client-ID, Client-Secret, Auth-Token, Grant-Type
                                                                         /oauth2/token
              Access-Token, Refresh-Token, Gültigkeitsdatum, Token-Typ

                                                                                                               18
Applikationen können Access-Token selbständig abrufen und erneuern

                                                                     19
Manche API-Aufrufe geben Ergebnisse blockweise aus, Applikation muss
dies abfangen
Beispiel: Abfrage einer Liste von Gästeaccounts erfordert Parameter offset und limit
àOffset = Anfangsposition
àLimit = Anzahl der auf einmal ausgegebenen Datensätze

                                                                                       20
IDE mit integrierten Debuggern und öffentliche Webhooks sind bei
Entwicklung und zum Testen hilfreich

                                                                   21
Die meiste Arbeit ist schon getan… Communities und Bibliotheken haben
viele fertige Bausteine

                                                                        22
Beispiel: Gästeverwaltung

– Konsolenapplikation
– Geschrieben in C#
– RestSharp für Request-Handling
– Json.NET für Parsing und (De-)Serialisierung
– Leicht overengineered J
– Funktionen: Gästeaccounts anschauen, anlegen, editieren und löschen

                                                                        23
Bibliotheken wurden genutzt, um Funktionen kurz und präzise zu fassen

public void UpdateVisitor(Visitor visitor)
        {
            // Prepare the request, place portal ID and visitor ID in the URL
            var request = new JsonRestRequest()
            {
                Resource = $"{apiUrl}/portals/{visitor.AssignedPortal.Id}/visitors/{visitor.Id}",
                Method = Method.PUT
            };

           // Add payload
           request.AddBody(visitor);

           var response = client.Execute(request);

           Debug.Print(response.StatusDescription);
           Debug.Print(response.Content);
       }

                                                                                                24
RestSharp bietet Funktionen zum Request-Handling, inklusive
Schnittstelle für Autorisierung

                       RestClient
                                                          IAuthenticator
             Execute(RestRequest) : RestResponse
                                                   Authenticate(RestClient, RestRequest)

                    RestResponse
                                                           Authenticator

                     RestRequest

                                                                                           25
Json.NET hilft bei der Übersetzung von Objekten in JSON-Daten und
andersrum
 class ApiToken
    {
        [JsonProperty(PropertyName = "refresh_token")]
        public string RefreshToken { get; set; }

       [JsonProperty(PropertyName = "token_type")]
       public string TokenType { get; set; }

       [JsonProperty(PropertyName = "access_token")]
       public string AccessToken { get; set; }

       [JsonProperty(PropertyName = "expires_in")]
       public int ExpirationTime { get; set; }
   }

                      apiToken = JsonConvert.DeserializeObject(response.Content);

                                        sessionRequest.AddBody(apiToken);

                                                                                              26
27
Fragen? Fragen!

                  28
Vielen Dank!
Moritz Wuerich // wuerich@hpe.com

                                    29
Sie können auch lesen