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\CredentialProviders
souboru . Možná budete muset složku vytvořitCredentialProviders
. Zprostředkovatelé přihlašovacích údajů je možné nainstalovat v kořenovém adresářiCredentialProviders
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říkladpath1;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*.exe
a 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();