Что такое параметр ресурса в приложении Windows Azure AD, приложение oAuth 2.0

Я пытаюсь вызвать процесс аутентификации с помощью приложения Windows Azure AD tenant, используя oAuth 2.0, используя curl. Но я не мог понять, что представляет собой параметр "ресурс" в приведенном ниже примере кода:

curl -X POST https://login.windows.net/<<YOUR--AD-TENANT-ID>>/oauth2/token  \
  -F redirect_uri=http://google.com \
  -F grant_type=authorization_code \
  **-F resource=https://management.core.windows.net/ \**
  -F client_id=87a544fd-... \
  -F code=AwABAAAAvPM1...8sSAA

Ответ 1

Параметр ресурса отображает идентификатор WebAPI, который ваш клиент хочет получить от имени пользователя. В большинстве потоков в OAuth участвуют 4 участника, владелец ресурса (он же пользователь), клиент (ака-приложение), авторитет (также поставщик удостоверений) и ресурс (aka webapi). Аутентом токена доступа, который генерирует полномочие, является идентификатор ресурса.

В случае с Azure AD вы можете использовать идентификатор клиента или идентификатор идентификатора приложения ресурса WebAPI (найдите их на вкладке "Настройка" приложения Azure AD на портале Azure Management). Например, если я хочу, чтобы мой клиент получил маркер для доступа к API графиков Azure AD от имени пользователя, я бы запросил для токена ресурса "https://graph.windows.net". В вашем примере значение параметра ресурса идентифицирует API управления Azure Service.

Вот несколько примеров кода клиентских приложений с использованием Azure AD SDK для запроса токенов к WebAPI - разные способы использования параметра ресурса:

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

Ответ 2

В простых словах параметр ресурса содержит URI ресурса веб-API, к которому вы хотите получить доступ.

Протокол OAuth следует за доступом к ресурсам, основанным на токенах. Параметр "resource" помогает различать токены для разных WEB API.

Например, если вы хотите получить доступ к GRAPH API, тогда ресурс будет... https://graph.windows.net/"

Если вы хотите получить доступ к AZURE, параметр ресурса должен указываться как " http://management.azure.com".

Рекомендуется использовать этот параметр, хотя он не является обязательным.