Согласно вашему описанию, я предположил, что вы используете встроенную аутентификацию / авторизацию , предоставляемую службой приложений Azure.
AFAIK, Аутентификация службы приложений (Easy Auth) обеспечивает два потока: управляемый клиентом и управляемый сервером поток. Для потока, управляемого сервером, код сервера управляет процессом входа для вас, и ваш бэкэнд будет напрямую получать токен от соответствующего поставщика удостоверений (например, Google, AAD и т. Д.), А затем оба генерируют authenticationToken
для приложения без браузера и AppServiceAuthSession
cookie для приложений браузера. Подробности, за которыми вы можете следить Поток аутентификации .
Для вашего углового веб-приложения вы можете просто использовать поток, управляемый сервером, после того, как пользователь успешно вошел в систему, вам нужно позвонить https://<your-angular-app-name>.azurewebsites.net/.auth/me
, чтобы получить google access_token
, а затем отправить следующий запрос к конечной точке веб-API для получения. authenticationToken
следующим образом:
POST https://<your-webapi-app-name>.azurewebsites.net/.auth/login/google
Body {"access_token":"<the-google-access-token>"}
После успешного получения authenticationToken
с конечной точки веб-API вы можете отправить следующие последующие запросы на доступ к вашим API:
GET https://<your-webapi-app-name>.azurewebsites.net/api/values
Header x-zumo-auth:"<authenticationToken-generated-by-your-webapi>"
Кроме того, вы также можете использовать управляемый клиентом поток в своем угловом веб-приложении, вам может потребоваться напрямую связаться с вашим провайдером идентификации (Google), чтобы получить access_token в вашем клиенте через Auth0 или google-signin или другие сторонние библиотеки. Затем вам может потребоваться отправить запрос в ваше угловое веб-приложение и веб-приложение Web API для получения authenticationToken
в качестве примера запроса выше.
Нужен ли отдельный идентификатор клиента для веб-API или мне следует повторно использовать идентификатор клиента веб-приложения?
Насколько я понимаю, вы должны использовать то же приложение Google. Для проверки подлинности AAD можно настроить приложение AAD с правами доступа к другому приложению AAD.