#.net #angular #azure-active-directory #msal
#.net #angular #azure-active-directory #azure-ad-msal
Вопрос:
Мне удалось успешно использовать этот пример кода для работы с регистрациями приложений AAD. Я не понимаю, зачем нам нужны две отдельные регистрации приложений, одна для интерфейса, а другая для API. Могу ли я просто настроить это для использования одного приложения? Если да, то есть ли недостаток в этой настройке?
Спасибо
Ответ №1:
Вы можете сделать это, если хотите, но в целом это не рекомендуется. На это есть ряд причин, но вот краткий пример: при предоставлении разрешений приложению (либо через разрешения приложения, либо делегированные разрешения) вы должны следовать «принципу наименьших привилегий», т. е. предоставлять приложению ровно столько разрешений, сколько нужно, и не более. Вполне возможно, что клиентскому приложению и веб-API потребуются разные области / разрешения для выполнения необходимой им работы, но использование одной и той же регистрации приложений означает, что вы не сможете разделить области, требуемые для каждого.
Похожий случай может быть, когда вы больше заботитесь о защите вашего веб-API, чем вашего клиентского приложения. Допустим, вы используете сертификаты для своего веб-API, но для вашего клиентского приложения подойдет только клиентский секрет. Опять же, в этом случае наличие отдельных регистраций приложений позволило бы вам настроить каждое из них в соответствии с их потребностями в безопасности.
И последнее, но не менее важное: допустим, у вас есть несколько клиентских приложений (SPA, мобильное, настольное приложение и т.д.) И единый веб-API, все в рамках одной регистрации приложения. Для вашей бизнес-логики, возможно, вам нужно уметь отличать, от какого клиентского приложения поступает запрос. Хотя есть способы достичь этого с помощью регистрации одного приложения, опять же, гораздо проще иметь отдельные регистрации.
Комментарии:
1. спасибо, что нашли время для столь подробного ответа. Вы высказали несколько замечательных замечаний. Я обязательно разделю их в своем проекте.