Поток учетных данных клиента в надстройках Office - PullRequest
0 голосов
/ 26 апреля 2020

Я разрабатываю надстройку панели задач Outlook в Angular, и когда пользователь нажимает кнопку надстройки, я хочу использовать поток учетных данных клиента для вызова защищенного веб-API.

Я пытался используя обычный httpClient и выполните запрос POST, как показано ниже

 let body=new HttpParams();
    body=body.set("grant_type","client_credentials");
    body=body.set("client_id","xxxxxxx");
    body=body.set("client_secret","xxxxxx");
    body=body.set("scope","https://xxxxxx/.default");

    const url="https://login.microsoftonline.com/xxxxx/oauth2/v2.0/token";

    this.httpClient.post(url,body)

Я получаю сообщение об ошибке CORS, как показано ниже

Доступ к XMLHttpRequest по адресу https://login.microsoftonline.com/xxxx/oauth2/v2.0/token «from origin» https://xxxx.azurewebsites.net 'заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». .

Is Есть ли способ решить эту ошибку? Здесь также пытались использовать MSAL, но я не смог найти никакой документации по потоку учетных данных клиента для JS. Доступно только для. NET

1 Ответ

0 голосов
/ 27 апреля 2020

1.Вы никогда не должны помещать секрет клиента в интерфейс. Это очень небезопасно!

2. Мы предлагаем использовать https://github.com/AzureAD/azure-activedirectory-library-for-js. для интерфейса интегрировать AAD с легкостью. Вы можете обратиться к Нет заголовка «Access-Control-Allow-Origin» с Microsoft Online Auth для деталей.

client_credentials grant_type используется только в приложении сценарий. Если вы должны использовать поток учетных данных клиента, вам нужно получить токен доступа в бэкэнде вашего приложения и вернуть его во внешний интерфейс.

...