На портале Azure я создаю ресурс Microsoft Entra ID, а затем добавляю регистрацию приложения.
При регистрации приложения я могу указать URI перенаправления для входов Microsoft (SSO) через «Аутентификацию» для моего веб-приложения .NET:
Кнопка аутентификации на боковой панели
Чтобы использовать эту функцию на своем веб-сайте, я сейчас использую appsettings.json, где указываю идентификатор клиента, идентификатор клиента и секрет, который я генерирую через «Сертификаты и секреты»:
Секреты на кнопке на боковой панели
Однако срок действия секретов истекает, и мне нужно восстановить новые секреты клиента.
Я знаю, что в Azure есть управляемые удостоверения, но я не уверен, что они применимы в данном случае, и есть нечто, называемое «федеративными учетными данными». Есть ли способ развернуть веб-приложение и не управлять секретами/сертификатами по мере истечения срока их действия?
Что я пробовал: Пытался выяснить, могу ли я использовать управляемые удостоверения, но не смог понять, как это сделать.
Пытался использовать федеративные сертификаты, но в ответе об ошибке указано, что мне нужно загрузить сертификат?
@ZivWeissman, кто хочет использовать Saml? он мертв уже давно ^^ также сертификат следует обновлять максимум один раз в год
@user24802569 протокол oauth потребует секретный код клиента, если вы используете поток кода авторизации.
какой поток вы используете?
@Thomas Я верю в поток кода авторизации, но могу использовать любой поток, если мне не нужно управлять секретами и получать то, что я хочу, то есть позволить пользователям входить в мое приложение со своей рабочей электронной почтой. Это частное приложение только для рабочих учетных записей, управляемое Microsoft.
Как вы упомянули, в целом существует только два потенциальных варианта несекретного подхода: управляемая идентификация или федеративные учетные данные. Но оба они предназначены для Azure, а не для повторного использования за пределами Azure. Я бы хотел выяснить, как использовать Federated Credentials в вашем пользовательском приложении. По сути, это доверие вашего приложения к Entra ID.
@VladDX Я изучил Federated Credentials, но обнаружил, что вам нужно управлять сертификатом и предоставлять его в веб-приложении. Мне не нужны были сертификаты или секреты, поскольку срок их действия истекает.


Лучшее решение, которое я придумал, — это использовать его в своем веб-приложении C# ASP.NET:
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"));
и затем в моей конфигурации мне не нужно использовать секреты, и это позволяет мне войти в систему через регистрацию приложения, созданную в Entra ID на моем клиенте, используя только идентификатор приложения и идентификатор клиента.
Вы можете использовать единый вход SAML с EntraID, у которого есть сертификат (который может иметь долгосрочный срок действия более 3 лет).