Sdílet prostřednictvím


Ověřování informačních kanálů pomocí poskytovatelů přihlašovacích údajů nuget.exe

Podpora verzí 3.3 byla přidána pro nuget.exe konkrétní zprostředkovatele přihlašovacích údajů (v1). Od té doby byla přidána podpora verzí 4.8 pro poskytovatele přihlašovacích údajů (v2), kteří pracují ve všech scénářích příkazového řádku (nuget.exe, dotnet.exe, msbuild.exe).

Další podrobnosti o všech přístupech ověřování najdete v tématu Využívání balíčků z ověřených informačních kanálů.

nuget.exe zjišťování zprostředkovatele přihlašovacích údajů

nuget.exe zprostředkovatelů přihlašovacích údajů je možné použít 3 způsoby:

  • Globálně: Pokud chcete zpřístupnit zprostředkovatele přihlašovacích údajů všem instancím spuštění v profilu aktuálního nuget.exe uživatele, přidejte ho do %LocalAppData%\NuGet\CredentialProviderssouboru . Možná budete muset složku vytvořit CredentialProviders . Zprostředkovatelé přihlašovacích údajů je možné nainstalovat v kořenovém adresáři CredentialProviders složky nebo v podsložce. Pokud má poskytovatel přihlašovacích údajů více souborů nebo sestavení, můžete k uspořádání zprostředkovatelů použít podsložky.

  • Z proměnné prostředí: Zprostředkovatelé přihlašovacích údajů je možné ukládat kdekoli a zpřístupnit nuget.exe ho nastavením %NUGET_CREDENTIALPROVIDERS_PATH% proměnné prostředí do umístění zprostředkovatele. Tato proměnná může být seznam oddělený středníkem (například path1;path2), pokud máte více umístění.

  • Vedle nuget.exe: nuget.exe zprostředkovatelé přihlašovacích údajů lze umístit do stejné složky jako nuget.exe.

Při načítání zprostředkovatelů nuget.exe přihlašovacích údajů vyhledá výše uvedená umístění v uvedeném pořadí libovolný soubor s názvem credentialprovider*.exea pak tyto soubory načte v pořadí, ve kterém jsou nalezeny. Pokud ve stejné složce existuje více zprostředkovatelů přihlašovacích údajů, načtou se v abecedním pořadí.

Vytvoření poskytovatele přihlašovacích údajů nuget.exe

Zprostředkovatel přihlašovacích údajů je spustitelný soubor příkazového řádku pojmenovaný ve formuláři CredentialProvider*.exe, který shromažďuje vstupy, získává přihlašovací údaje podle potřeby a vrátí odpovídající stavový kód ukončení a standardní výstup.

Poskytovatel musí provést následující:

  • Určete, jestli může před zahájením získání přihlašovacích údajů zadat přihlašovací údaje pro cílový identifikátor URI. Pokud ne, měl by vrátit stavový kód 1 bez přihlašovacích údajů.
  • Neupravujte NuGet.Config (například tady nastavení přihlašovacích údajů).
  • Zpracování konfigurace proxy serveru HTTP samostatně, protože NuGet neposkytuje informace o proxy serveru modulu plug-in.
  • Vraťte přihlašovací údaje nebo podrobnosti o nuget.exe chybě zápisem objektu odpovědi JSON (viz níže) do stdoutu pomocí kódování UTF-8.
  • Volitelně můžete do stderru vygenerovat další protokolování trasování. Do stderru by nikdy neměly být zapsány žádné tajné kódy, protože na úrovních podrobností "normální" nebo "podrobné" jsou takové trasování ozvěny NuGetem na konzolu.
  • Neočekávané parametry by se měly ignorovat a zajistit tak kompatibilitu s budoucími verzemi NuGetu.

Vstupní parametry

Parametr nebo přepínač Popis
Identifikátor URI {value} Zdrojový identifikátor URI balíčku vyžadující přihlašovací údaje.
Neinteraktivní Pokud je k dispozici, poskytovatel nevyvolá interaktivní výzvy.
IsRetry Pokud je k dispozici, znamená to, že tento pokus je opakováním dříve neúspěšného pokusu. Poskytovatelé obvykle používají tento příznak, aby se zajistilo, že v případě potřeby obejití jakékoli existující mezipaměti a zobrazí výzvu k zadání nových přihlašovacích údajů.
Úroveň podrobností {value} Pokud je k dispozici, jedna z následujících hodnot: "normální", "tichý" nebo "podrobný". Pokud není zadána žádná hodnota, je výchozí hodnota "normální". Poskytovatelé by to měli použít jako označení úrovně volitelného protokolování, které se má generovat do standardního datového proudu chyb.

Ukončovací kódy

Kód Výsledek Popis
0 Success Přihlašovací údaje byly úspěšně získány a byly zapsány do stdout.
0 ProviderNotApplicable Aktuální zprostředkovatel neposkytuje přihlašovací údaje pro daný identifikátor URI.
2 Selhání Zprostředkovatel je správný zprostředkovatel pro daný identifikátor URI, ale nemůže zadat přihlašovací údaje. V tomto případě nuget.exe nebude opakovat ověření a selže. Typickým příkladem je zrušení interaktivního přihlášení uživatelem.

Standardní výstup

Vlastnost Notes
Username Uživatelské jméno pro ověřené požadavky.
Heslo Heslo pro ověřené žádosti.
Zpráva Volitelné podrobnosti o odpovědi, které slouží pouze k zobrazení dalších podrobností v případech selhání.

Příklad stdout:

{ "Username" : "freddy@example.com",
    "Password" : "bwm3bcx6txhprzmxhl2x63mdsul6grctazoomtdb6kfbof7m3a3z",
    "Message"  : "" }

Řešení potíží se zprostředkovatelem přihlašovacích údajů

NuGet v současné době neposkytuje velkou přímou podporu pro ladění vlastních zprostředkovatelů přihlašovacích údajů; problém 4598 sleduje tuto práci.

Můžete také provést následující akce:

  • Spuštěním nuget.exe s -verbosity přepínačem zkontrolujte podrobný výstup.

  • Přidejte do příslušných míst ladicí zprávy stdout .

  • Ujistěte se, že používáte nuget.exe verze 3.3 nebo vyšší.

  • Připojte ladicí program při spuštění pomocí tohoto fragmentu kódu:

    while (!Debugger.IsAttached)
    {
        System.Threading.Thread.Sleep(100);
    }
    Debugger.Break();