Was ist ein Excel-Plugin – und wann ist es...

Read more

Wir expandieren, bringen Kunden und Talente besser...

Read more

Um HTML zum PDF zu konvertieren, werden wir...

Read more

Die Logic Apps-Plattform von Microsoft ermöglicht...

Read more

Du bist neugierig auf aktuelle KI-Technologien und...

Read more

Am 27.09. ab 12.30h starten die vierten QUIBIQ...

Read more

"Das Beste von SAP und Microsoft nutzen": auf dem...

Read more

Azure Bicep wird verwendet, um Ressourcen in Azure...

Read more

In einer Welt, die immer digitaler wird, ist es...

Read more

Dieser Artikel beschreibt wie JSON-Dateien anhand...

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

 

© QUIBIQ GmbH · Imprint · Data protection