#azure-devops #azure-pipelines #msal
Вопрос:
Я пытаюсь получить токен доступа с помощью MSAL. Я получил файлы CER и PFX (без пароля). Я преобразовал PFX в PEM, который содержит содержимое, подобное приведенному ниже:
-----BEGIN PRIVATE KEY----- [Content] -----END PRIVATE KEY----- -----BEGIN CERTIFICATE----- [Content] -----END CERTIFICATE-----
Я загрузил сертификат (файл PEM) как защищенный файл и загрузил его в свой собственный агент на базе ubuntu. Я могу получить доступ к сертификату, используя приведенную ниже команду:
$Certificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new("$env:AGENT_TEMPDIRECTORY/mycert.pem")
Однако во всех справочных документах для MSAL рекомендуется использовать путь к хранилищу сертификатов для получения сертификата
$ClientCertificate = Get-Item Cert:CurrentUserMy000000000000000000000000000000000000000
Как я должен использовать сертификат в среде на базе Linux, где у меня нет хранилища сертификатов? Когда я использую приведенную выше команду для извлечения сертификата и пытаюсь вызвать get-msaltoken, она выдает мне «Исключение, вызывающее «подтверждение» с аргументами «1»: «Сертификат не имеет закрытого ключа».
Любая помощь.