Могу ли я иметь секреты, срок действия которых не истекает в системе единого входа Microsoft через Azure Microsoft Entra ID?

На портале Azure я создаю ресурс Microsoft Entra ID, а затем добавляю регистрацию приложения.

При регистрации приложения я могу указать URI перенаправления для входов Microsoft (SSO) через «Аутентификацию» для моего веб-приложения .NET:

Кнопка аутентификации на боковой панели

Чтобы использовать эту функцию на своем веб-сайте, я сейчас использую appsettings.json, где указываю идентификатор клиента, идентификатор клиента и секрет, который я генерирую через «Сертификаты и секреты»:

Секреты на кнопке на боковой панели

Однако срок действия секретов истекает, и мне нужно восстановить новые секреты клиента.

Я знаю, что в Azure есть управляемые удостоверения, но я не уверен, что они применимы в данном случае, и есть нечто, называемое «федеративными учетными данными». Есть ли способ развернуть веб-приложение и не управлять секретами/сертификатами по мере истечения срока их действия?

Что я пробовал: Пытался выяснить, могу ли я использовать управляемые удостоверения, но не смог понять, как это сделать.

Пытался использовать федеративные сертификаты, но в ответе об ошибке указано, что мне нужно загрузить сертификат?

Вы можете использовать единый вход SAML с EntraID, у которого есть сертификат (который может иметь долгосрочный срок действия более 3 лет).

Ziv Weissman 03.05.2024 15:34

@ZivWeissman, кто хочет использовать Saml? он мертв уже давно ^^ также сертификат следует обновлять максимум один раз в год

Thomas 07.05.2024 10:39

@user24802569 протокол oauth потребует секретный код клиента, если вы используете поток кода авторизации.

Thomas 07.05.2024 10:41

какой поток вы используете?

Thomas 07.05.2024 10:41

@Thomas Я верю в поток кода авторизации, но могу использовать любой поток, если мне не нужно управлять секретами и получать то, что я хочу, то есть позволить пользователям входить в мое приложение со своей рабочей электронной почтой. Это частное приложение только для рабочих учетных записей, управляемое Microsoft.

user24802569 07.05.2024 11:29

Как вы упомянули, в целом существует только два потенциальных варианта несекретного подхода: управляемая идентификация или федеративные учетные данные. Но оба они предназначены для Azure, а не для повторного использования за пределами Azure. Я бы хотел выяснить, как использовать Federated Credentials в вашем пользовательском приложении. По сути, это доверие вашего приложения к Entra ID.

Vlad DX 13.05.2024 22:42

@VladDX Я изучил Federated Credentials, но обнаружил, что вам нужно управлять сертификатом и предоставлять его в веб-приложении. Мне не нужны были сертификаты или секреты, поскольку срок их действия истекает.

user24802569 14.05.2024 00:02
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
7
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Лучшее решение, которое я придумал, — это использовать его в своем веб-приложении C# ASP.NET:

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
    .AddMicrosoftIdentityWebApp(builder.Configuration.GetSection("AzureAd"));

и затем в моей конфигурации мне не нужно использовать секреты, и это позволяет мне войти в систему через регистрацию приложения, созданную в Entra ID на моем клиенте, используя только идентификатор приложения и идентификатор клиента.

Другие вопросы по теме

Конфигурация Zabbix SAML с использованием ActiveDirectory WIN 2016-ADFS
Интеграция Moodle с ADFS — подключаемый модуль SAML2 Единый вход
Как включить Token_ID в новом интерфейсе Azure/Microsoft Entra
Okta SSO (разрешение другим пользователям из другой организации использовать единый вход с приложением OpenID, которое я создал на своей панели разработчика Okta)
Почему секрет клиента требуется при настройке единого входа Azure AD/Identity в Asp.net (устаревшая версия .Net Framework), но не требуется в ядре asp.net?
Получение отказа в доступе для всех маршрутов (с помощью PermitAll() ) в Vaadin 24 и Azure SSO
Python – реализация единого входа Authentik на веб-сервере с использованием Request_oauthlib
Самый простой способ разработки провайдера OIDC в ​​.NET Framework
Запретить пользователям входить в систему с их именем пользователя и паролем Snowflake
Как интегрировать приложение Azure AD с SAML SSO в Angular (не следует запрашивать разрешение у пользователя)

Похожие вопросы