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

Suche

über alle News und Events

 

Alle News

 

Messaging mit dem Service Bus ermöglicht die...

Read more

Sebastian Meyer, Microsoft & SAP...

Read more

Für Entwickler, Architekten, Projektleiter und...

Read more

In der Welt der Softwareentwicklung ist die...

Read more

QUIBIQ spendet für den guten Zweck – und für...

Read more

Eine bestimmte Antwort auf einen HTTP Request zu...

Read more

In einer Welt, die von stetigem Wandel geprägt...

Read more

In einem unserer Kundenprojekte, war das Ziel eine...

Read more

QUIBIQ Hamburg wird mit dem Hamburger...

Read more

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Read more

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