CONNECTED Conference 2023 - Aufzeichnungen jetzt hier verfügbar +++                     

Suche

über alle News und Events

 

Alle News

 

Vom 5. bis 7. Juni findet in London wieder die...

Weiterlesen

Vom 5. bis 7. Juni findet in London wieder die...

Weiterlesen

Vom 5. bis 7. Juni findet in London wieder die...

Weiterlesen

Live Coding on stage in Hamburg - exklusiv für...

Weiterlesen

Um Azure Ressourcen von DevOps aus zu deployen,...

Weiterlesen

In diesem Artikel wird ein beispielhafter Aufbau...

Weiterlesen

Die QUIBIQ Gruppe wurde am 9. März 2023 von dem...

Weiterlesen

Der Schnelleinstieg in die Welt der Tests für den...

Weiterlesen

Wenn man eine, im Azure Portal, entwickelte Logic...

Weiterlesen

WinSCP für BizTalk wird für den SFTP-Adapter...

Weiterlesen

How-to: NuGet-Feeds von extern konsumieren

Dieser Artikel ergänzt die Beiträge meiner Kollegen zum Thema NuGet nuget-packages-mit-nuget-feeds und konsumieren-von-nuget-feeds.

 

Hier soll es darum gehen, wie NuGet Feeds von extern konsumiert werden können. D.h. durch Nutzer ohne Berechtigungen auf den Azure Tenant bzw. die Azure Subscription, in denen der Feed gehostet ist.

Grundsätzlich ist es natürlich möglich, den externen Nutzer einzuladen, und ihm Rechte zum Zugriff auf die Feeds zu geben. Oft ist es aber unerwünscht. Oder andere Szenarien erfordern eine Alternative.

Beispielsweise:

  • Der Nutzer soll das NuGet konsumieren können, aber sonst nicht auf den Tenant zugreifen.
  • Obwohl der Nutzer eigentlich bereits Rechte auf den Feed hat, treten Schwierigkeiten auf
    • beim Zugriff aus älteren Tools (z.B. Visual Studio 2015),
    • beim Zugriff aus neueren Tools (VS Code),
    • bei Nutzung von Multi-Faktor-Authentifizierung.
  • Zugriff aus Build-Agents, z.B. auf unterschiedliche Feeds.

Hierzu gibt es die Möglichkeit, mit einem „Personal Access Token“ („PAT“) zuzugreifen. Wie erstellt man diesen? Dazu benötigt man einen Nutzer, der auf den Feed berechtigt ist. Mit diesem Nutzer im DevOps Portal neben das Profil-Icon klicken und Personal access tokens auswählen:
 

Dann im Dialog einen sprechenden Namen vergeben. Bei Expiration ist der maximale Zeitraum mit „Custom defined“ auf ein Jahr einstellbar. Weiter einen „Custom defined“ Scope wählen und bei „Packaging“ Read auswählen. Das genügt. Nach dem Erstellen unbedingt den Token abspeichern (z.B. in KeePass), ein zweites Mal bekommt man diesen nicht zu sehen!


 

Wie nutzen wir diesen PAT? Er wird in der Nuget.config Datei gesetzt.

Wie bereits im konsumieren-von-nuget-feeds Artikel angedeutet, gibt es folgende Orte, wo eine Nuget.config Datei wirksam werden kann (Reihenfolge von allgemein zu speziell):

  • %ProgrammData%\NuGet\Config
    (für globale Konfiguration auf der Maschine, z.B. für einen Build Agent Server).
  • %AppData%\NuGet
    (für persönliche Einstellung, muss jeder selbst einstellen).
  • Solution-Verzeichnis
    (für alle Projekte in der Solution).
  • Projekt-Verzeichnis
    (für ein ausgewähltes Projekt).

Je nach Bedarf die Nuget.config Datei auswählen. Für die Einbindung gibt es nun zwei Möglichkeiten:

  1. Nicht so gut (Sicherheit) aber einfacher: PAT im Klartext:

    <thePackageSourceName>

      <addkey="Username"value="totalegal"/>

      <addkey="ClearTextPassword"value="DerPATimKlartext"/>

    </thePackageSourceName>
 

  1. Besser (Sicherheit) aber Nuget.exe benötigt (wenn nicht schon installiert, runterladen und installieren). In einer Kommandozeile folgendes Kommando ausführen, führt dazu, dass der PAT verschlüsselt in der Nuget.config landet (in der persönlichen, kann von dort nach Bedarf kopiert werden).

        <thePackageSourceName>

          <addkey="Username"value="totalegal"/>

          <addkey="Password"value="PATencryptetUndSoWeiterUndSoFort="/>

        </thePackageSourceName>

    Das war's.

    Zum Schluss noch ein paar Quell-Verweise und weiterführende Links zum Themenbereich:

  2. https://docs.microsoft.com/en-us/azure/devops/artifacts/get-started-nuget?view=azure-devops
  3. https://github.com/microsoft/artifacts-credprovider
  4. https://docs.microsoft.com/en-us/nuget/reference/extensibility/nuget-exe-credential-providers#creating-a-nugetexe-credential-provider
  5. https://docs.microsoft.com/en-us/nuget/consume-packages/consuming-packages-authenticated-feeds#nugetexe
  6. https://docs.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior
  7. https://blog.rsuter.com/how-to-use-a-private-vsts-nuget-package-feed-with-the-net-core-cli/
  8. https://docs.microsoft.com/en-us/nuget/reference/nuget-config-file
  9. https://github.com/NuGet/docs.microsoft.com-nuget/issues/1260
  10.  

    Viel Freude beim Programmieren mit NuGet Feeds!

    Plamen Petrow, Senior Solution Architect
    QUIBIQ Schweiz AG

 

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz