Приложение Active Directory, созданное с помощью Visual Studio, не имеет никаких «сертификатов и секретов»... это нормально?

Я создал новое веб-приложение ASP.NET Core 6.0 MVC и определил его для использования Azure AD для аутентификации следующим образом:

Затем меня попросили создать собственное приложение, поэтому я создал его с именем «ad» следующим образом:

Внутри моего приложения appsetting.json у меня есть следующие настройки:

{
    "AzureAd": {
        "Instance": "https://login.microsoftonline.com/",
        "Domain": "*****",
        "TenantId": "***",
        "ClientId": "***",
        "CallbackPath": "/signin-oidc"
    },
    ....
}

Кажется, Visual Studio сделала всю работу за нас.

Но когда я проверил «Сертификат и секреты» на портале Azure, я обнаружил, что ничего не назначено:

Итак, для аутентификации пользователей внутри моего веб-приложения ASP.NET Core MVC нам нужно добавить «Сертификат» или «Секреты»?

Спасибо

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
88
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Но когда я проверил «Сертификат и секреты» на портале Azure, я обнаружил, что ничего не назначено:

Сначала я добавил Microsoft Identity Platform, выбрав Authentication type из шаблона (так же, как вы показали на скриншоте).

  • Опубликуйте заявку на Azure App Service.
  • Во-первых, даже я не могу найти секреты под Certificate & Secrets в AAD.

  • Чтобы получить Certificates & Secrets в Azure Active Directory, нам нужно соединить Microsoft Identity platform под Service Dependencies из окна Publish.

  • Нажмите Connect и перейдите к следующим шагам.
  • Теперь проверьте Active Directory => App Registrations, вы увидите, что Client secret добавлено.

  • Другой вариант добавления Microsoft Identity platform: вместо выбора Authentication type в шаблоне добавьте непосредственно из Connected Services.

но, основываясь на ответе Крошки Ванга, что «Если вы хотите интегрировать Azure AD только для того, чтобы ваши пользователи входили в ваше приложение со своей учетной записью Microsoft, нет необходимости использовать секрет клиента здесь. Вы можете увидеть этот раздел: «... любой совет ?

John John 06.02.2023 08:09

Да, я согласен с этим пунктом. Я обратил внимание на то, что вы пропустили Certificates & Secrets даже после добавления Microsoft Identity Platform.

Harshitha 06.02.2023 08:20
Ответ принят как подходящий

Если вы хотите интегрировать Azure AD только для того, чтобы ваши пользователи входили в ваше приложение со своей учетной записью Microsoft, нет необходимости использовать здесь секрет клиента. Вы можете посмотреть этот раздел:

Учетные данные используются конфиденциальными клиентскими приложениями, которые обращаются к веб-API

API может быть API-интерфейсом Microsoft Graph или вашей пользовательской точкой доступа. Я надеюсь, вы увидите этот шаг, когда будете подключать свое приложение к платформе идентификации Azure в Visual Studio, это API:

Если вы выберете опцию Graph API, вы увидите этот шаг:

И на этот раз он создаст для вас секрет клиента на портале Azure AD.

Хорошо, спасибо за ответ. Итак, если я хочу аутентифицировать пользователей из моего веб-приложения asp.net core mvc с помощью платформы Microsoft Identity, мне не нужно добавлять какой-либо секрет или сертификат в соответствующее приложение Azure Ad?

John John 06.02.2023 08:05

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

Tiny Wang 06.02.2023 08:13

да, я знаю, что это сработает... но это безопасный подход? как в этом случае (если я не укажу секрет или сертификат клиента) мое приложение Azure Active Directory может быть вызвано анонимными пользователями? я прав?

John John 06.02.2023 08:15

это безопасный подход. Ваше приложение, я имею в виду, если вы просто используете шаблон для создания проекта и интеграции AAD, будет добавлен HomeController[Authorize], что заставляет пользователей сначала войти в систему, чтобы посетить ваше представление. Это не связано с секретом клиента.

Tiny Wang 06.02.2023 08:18

Кстати, неиспользование секрета клиента не означает отсутствие безопасности, после выполнения всех операций вы можете использовать свою учетную запись Microsoft для входа в свое приложение, но я не могу использовать свою учетную запись Microsoft для входа в ваше приложение. это связано с тем, что идентификатор приложения Azure Ad, который вы использовали в своем приложении, создается в вашем клиенте, поскольку я не в вашем клиенте, поэтому я не могу войти в ваше приложение. ваше приложение будет разрешать вход только пользователям вашего клиента.

Tiny Wang 06.02.2023 08:20

полностью понял... но если мы рассмотрим безопасность по уровням, то определение секрета клиента будет хорошим подходом для подражания... по крайней мере, мы будем уверены, что наше приложение Azure AD не вызывается анонимными пользователями... но я не уверен, как я могу передать секрет клиента из моего веб-приложения aspnet core mvc в приложение Azure Ad?

John John 06.02.2023 08:31

Я ответил на него в вашем другом случае ...

Tiny Wang 06.02.2023 08:32

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