Интегрируйте Azure AD с AngularJS и вызывайте веб-интерфейс CORS - PullRequest
0 голосов
/ 29 октября 2019

После прочтения статьи https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-angularjs-spa, мы создали веб-приложение с именем ToDoSpa и веб-API с именем ToGoApi, зарегистрированное в Azure Active Directory и способное выполнять аутентификацию, но проблема заключается в использовании веб-API, включая конечные точки как

AADSTS65001: пользователь или администратор не дал согласие на использование приложения с идентификатором «2528e8f3» с именем «ToDoSpa». Отправьте интерактивный запрос авторизации для этого пользователя и ресурса. Идентификатор трассировки: df70a02e-6a53-4899-8319-0ba440540500 Идентификатор корреляции: 699515a6-dccb-421e-92ae-e9b5a700ad1b Метка времени: | необходимое_интерпретирование ".

В ToDoSpa мы определили области приложения ToDoSpa как «User.Read and Directory.Read.All» и авторизовали клиентское приложение, используя идентификатор клиента web api (815933a4) в Expose API. Разрешение приложения, мы включили ToDoSpa и получили разрешение на приложение.

app.js

var endpoints = {
"https://graph.microsoft.com": "https://graph.microsoft.com",
"https://localhost:44392/api/weather": "https://firstupconsultants.onmicrosoft.com/ToGoApi"<!--localhost:App Id Uri of Server-->
};
adalProvider.init({
instance: 'https://login.microsoftonline.com/',
tenant: '<tenant-id>',
clientId: '<client-id of server>',
endpoints: endpoints,
extraQueryParameter: 'prompt=admin_consent'
}, $httpProvider);
}]);

 //Get
weather1.getWeather = function () {
return $http.get("https://localhost:44392/api/weather").then(succeessCallback, failedCallback);

function succeessCallback(weather) {
    //$scope.weather = weather.data;    
    weather1.items = weather.data;
}

function failedCallback(error) {
    console.log("An error has occurred:", error);
}
}

web.config

<add key="ida:Tenant" value="<tenant-id>"/>
<add key="ida:Audience" value="https://firstupconsultants.onmicrosoft.com/ToGoApi"/>
<!--localhost:App Id Uri of Server-->

1 Ответ

0 голосов
/ 30 октября 2019

Как правило, при создании приложения, использующего разрешения приложения, приложению требуется страница или представление, на котором администратор утверждает разрешения приложения. Эта страница может быть частью процесса входа в приложение, частью настроек приложения или выделенным потоком «подключения».

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

Вот пример URL-адреса для того же самого:

GET https://login.microsoftonline.com/{tenant}/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions

Если вы хотите, чтобы пользователи другого арендатора могли использовать приложение, приложение должно дать согласие в первую очередь. Для этого вы можете сделать HTTP-запрос, чтобы легко дать согласие администратора, используя параметр prompt.

Подробнее об этом можно прочитать в следующих документах:

https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow#request-the-permissions-from-a-directory-admin

Дополнительная ссылка:

https://blog.mastykarz.nl/implementing-admin-consent-multitenant-office-365-applications-implicit-oauth-flow/

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...