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

Suche

über alle News und Events

 

Alle News

 

Azure Functions benötigen oft einen...

Weiterlesen

In der heutigen Zeit nehmen Erreichbarkeit,...

Weiterlesen

Viele unserer Kunden überlegen derzeit, was sie in...

Weiterlesen

Lösungsansatz – was benötigt man dafür:

  • Einen...
Weiterlesen

Es gibt im Preview die Möglichkeit Azure Blob...

Weiterlesen

In diesem Blogeintrag werden wir drei sichere und...

Weiterlesen

Im vergangenen Jahr war bei uns in Hamburg viel in...

Weiterlesen

Heutzutage werden Token für die Authentifizierung...

Weiterlesen

Versionsverwaltungssoftware gehört zu den...

Weiterlesen

Das Azure API Management self-hosted Gateway von...

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