Я не могу говорить за Google Cloud, но для Azure причина установки соединения на стороне сервера заключается в контроле доступа к услуге Azure. Если вы выполняете аутентификацию на стороне клиента Azure, это означает, что пользователь может использовать эту аутентификацию, чтобы делать все, что он хочет в вашем сервисе, и вы застряли на счете. Не очень хорошая ситуация.
Правильный способ реализовать это - использовать ваш бэкэнд как go между ними. Пользователь аутентифицируется в вашем бэкэнде, а затем ваш бэкэнд аутентифицируется в Cognitive services. Хотя это дополнительный шаг, ваш пользователь никогда не получит прямой доступ к конечной точке API напрямую. Из-за проблемы безопасности это распространенный шаблон, не только для Cognitive Services.
Если вы понимаете, что это серьезный риск и по-прежнему хотите использовать приложение Angular, взгляните на Узел образцов . Хотя это все еще пример на стороне сервера, он будет довольно близок к тому, что вы бы реализовали в Angular.