Включение CORS в Azure Active Directory - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь получить токен доступа из Azure Active Directory программным способом, используя следующий метод в приложении Angular 6.

    let body1 = new FormData()
    body1.append("resource", environment.config.clientId)
    body1.append("grant_type", "client_credentials")
    body1.append("client_id", environment.config.clientId)
    body1.append("client_secret", "*****")

    return this._http.post("https://login.microsoftonline.com/" + environment.config.tenant + "/oauth2/token", body1)

Мне удалось получить токен доступа через этот URL в Postman, но язаблокирован CORS при вызове через мое приложение.Ошибка ниже.

    Failed to load https://login.microsoftonline.com/*****/oauth2/token: 
Response to preflight request doesn't pass access control check: No 'Access-
Control-Allow-Origin' header is present on the requested resource. Origin 
'http://localhost:4200' is therefore not allowed access.

Итак, как мне включить CORS в Azure Active Directory для всех доменов?

1 Ответ

0 голосов
/ 16 октября 2018

Просто, вы не делаете.

То, что вы делаете, - это обнародование секрета клиента вашего приложения.Помните, что запрос будет сделан с устройства пользователя .Чтобы они могли наблюдать и захватить твой секрет.Вот почему конечная точка токена не поддерживает CORS и, вероятно, никогда не будет.

Способ получения токенов из интерфейсного JS-приложения заключается в использовании Implicit Grant Flow.Или, если вам нужен токен только для приложения, то вы должны выполнить запрос, который вы пробовали из внутреннего приложения.

Поток неявного предоставления позволяет получать токены непосредственно из конечной точки авторизации, когда пользователь входит в систему.Вы можете использовать ADAL.JS / MSAL.JS, чтобы помочь в этом.Вы не можете иметь токены без идентификатора пользователя, поскольку ваше нативное приложение не может подтвердить его подлинность.

...