Мне нужно получить доступ к веб-API, который защищен через Azure Active Directory. Я следовал этой документации https://msdn.microsoft.com/sv-se/library/azure/dn645542.aspxОшибка доступа к защищенному ресурсу Azure Active Directory
Первые шаги были успешными, но в конце я не могу получить доступ к требуемому ресурсу.
Что я сделал:
Сначала я называю эту ссылку
https://login.microsoftonline.com/mytenantname.onmicrosoft.com/oauth2/authorize?response_type=code&client_id=3eec...32e5
и попадаю к авторизации портала.
После успешной регистрации извлечь код из перенаправлены URL, который является чем-то вроде этого
https://localhost:8080/?code=AAABAAAAiL9Kn2Z27........RdzFpearqiAA
Затем я использую этот код, чтобы получить маркер доступа. Первая проблема здесь. Согласно документации (ссылка выше) ресурс является необязательным. Но это не работает, если я опускаю ресурс (error = Идентификатор ресурса не указан.), Поэтому я должен его предоставить. Во-вторых, если я поместил URI идентификатора APP моего приложения, зарегистрированного в Azure AD, в параметр регресса, я получил еще одну ошибку (клиент «3eec ... 32e5» и ресурс «myapp.azurewebsites.net» идентифицируют одно и то же приложение.) , Поэтому я поместил параметр resource.windows.net для параметра ресурса.
curl -s -X POST https://login.microsoftonline.com/akeliusdev.onmicrosoft.com/oauth2/token
-d grant_type=authorization_code -d client_id=3eec...32e5
-d client_secret=F%2BfpjpR............Wi8%3D
-d code=AAABAAAAiL9Kn2Z27........RdzFpearqiAA -d resource=https://graph.windows.net
Таким образом, я мог бы получить токен доступа. Но тогда я не могу получить доступ к ресурсу с помощью токена доступа. Я сделал это следующим образом:
curl https://myapp.azurewebsites.net/data
--header "Authorization:eyJ0eXAiOiJKV1QiLCJhbGciOiJ.............4WYr6xn"
Может кто-нибудь помочь мне по этому вопросу?
Спасибо.
На самом деле это решение не то, что я ищу. Мне нужно, чтобы пользователи могли входить в систему со своим собственным именем пользователя/pwd. –
@ArashTaheri Приношу свои извинения, кажется, я неправильно понял/пошел глупо! - Я исправлю ответ, чтобы заявить, что это сервис для обслуживания, если кому-то еще это понадобится в будущем. –
В любом случае я ценю ваше обязательство :) –