Я следую руководству по защита моего API с помощью MS ID. Он работает, как предполагалось, и выдает код состояния 401, неавторизованный. Но вот в чем дело ...
Как авторизоваться ?! В руководстве об этом ничего не говорится, а следующий шаг полностью касается новой темы. Я говорю об отправке звонка через Swagger или Postman (возможно, последнее, поскольку проще предоставить учетные данные).
Исходный код элегантен и аккуратно упаковывает задачи и тому подобное (аналогично руководству по защита приложения с помощью MS ID. Предостережение - это ощущение черного ящика, где все работает, но я Не совсем уверен, как это сделать. В случае веб-приложения это немного волшебство, но есть графический интерфейс, и это приводит к тому, что принципал получает идентификацию, установленную Azure AD.
Но как мне это сделать в случае API? Это вообще выполнимо? Так должно быть, иначе нет смысла открывать API для начала. Я хотел бы продемонстрировать доступ и отказ от Posty (или Swaggy, если это не слишком сложно), прежде чем я продолжу возиться с безопасностью MS ID на основе SPA.
Есть руководство в MSDN, как получить токен. Запрос включает следующие заголовки (x-www-urlencoded).
grant_type = client_credentials
client_id = e91eecbf-680e-4e35-ac43-c93456a0a44e
client_secret = ljkh () / ¤ #% jL9jlk < / em>
Он выполняет GET на
https://login.microsoftonline.com/6d9c4356-1774-49f3-a6be-ff4c2ec4f2f4/oauth2/token
и создает маркер доступа для указанного ресурса (в их случае - автобусной службы). Я ищу что-то вроде этого, но чтобы пользователю нужно было предоставить свои учетные данные. Другими словами, токен ответа должен содержать GUID (или, по крайней мере, адрес электронной почты) пользователя.
Я нашел аналогичный вопрос, но он касается случая B2C (который, я не уверен, актуален для меня), а также не объясняет, как получить идентификатор API клиента для почтальона. Я также видел этот ответ, но он относится к графическому API, который в моем случае не актуален.