Я создал новое веб-приложение 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 нам нужно добавить «Сертификат» или «Секреты»?
Спасибо
Но когда я проверил «Сертификат и секреты» на портале 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
.Да, я согласен с этим пунктом. Я обратил внимание на то, что вы пропустили Certificates & Secrets
даже после добавления Microsoft Identity Platform
.
Если вы хотите интегрировать Azure AD только для того, чтобы ваши пользователи входили в ваше приложение со своей учетной записью Microsoft, нет необходимости использовать здесь секрет клиента. Вы можете посмотреть этот раздел:
Учетные данные используются конфиденциальными клиентскими приложениями, которые обращаются к веб-API
API может быть API-интерфейсом Microsoft Graph или вашей пользовательской точкой доступа. Я надеюсь, вы увидите этот шаг, когда будете подключать свое приложение к платформе идентификации Azure в Visual Studio, это API:
Если вы выберете опцию Graph API, вы увидите этот шаг:
И на этот раз он создаст для вас секрет клиента на портале Azure AD.
Хорошо, спасибо за ответ. Итак, если я хочу аутентифицировать пользователей из моего веб-приложения asp.net core mvc с помощью платформы Microsoft Identity, мне не нужно добавлять какой-либо секрет или сертификат в соответствующее приложение Azure Ad?
да, если вы хотите аутентифицировать только пользователей, нет необходимости использовать секрет клиента. документ упоминал об этом. И я также тестирую его на своей стороне, ни один секрет не может заставить приложение работать хорошо, я имею в виду, что я могу войти в приложение с моей учетной записью Microsoft.
да, я знаю, что это сработает... но это безопасный подход? как в этом случае (если я не укажу секрет или сертификат клиента) мое приложение Azure Active Directory может быть вызвано анонимными пользователями? я прав?
это безопасный подход. Ваше приложение, я имею в виду, если вы просто используете шаблон для создания проекта и интеграции AAD, будет добавлен HomeController
[Authorize]
, что заставляет пользователей сначала войти в систему, чтобы посетить ваше представление. Это не связано с секретом клиента.
Кстати, неиспользование секрета клиента не означает отсутствие безопасности, после выполнения всех операций вы можете использовать свою учетную запись Microsoft для входа в свое приложение, но я не могу использовать свою учетную запись Microsoft для входа в ваше приложение. это связано с тем, что идентификатор приложения Azure Ad, который вы использовали в своем приложении, создается в вашем клиенте, поскольку я не в вашем клиенте, поэтому я не могу войти в ваше приложение. ваше приложение будет разрешать вход только пользователям вашего клиента.
полностью понял... но если мы рассмотрим безопасность по уровням, то определение секрета клиента будет хорошим подходом для подражания... по крайней мере, мы будем уверены, что наше приложение Azure AD не вызывается анонимными пользователями... но я не уверен, как я могу передать секрет клиента из моего веб-приложения aspnet core mvc в приложение Azure Ad?
Я ответил на него в вашем другом случае ...
но, основываясь на ответе Крошки Ванга, что «Если вы хотите интегрировать Azure AD только для того, чтобы ваши пользователи входили в ваше приложение со своей учетной записью Microsoft, нет необходимости использовать секрет клиента здесь. Вы можете увидеть этот раздел: «... любой совет ?