Azure API извлекает политику SAS, ошибка InvalidHostName - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь создать концентратор событий в Azure, используя REST APi (с почтальоном), но я получаю ошибку в процессе генерации токена SAS.

curl --location --request POST 'https://login.microsoftonline.com/0e3603bd-2f0b-43e2-b9b5-5d456791cf33/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=myclientid' \
--data-urlencode 'client_secret=myclientsecret' \
--data-urlencode 'resource=https://management.azure.com/'

Я храню токен на предъявителя и использовать его для аутентификации на следующем запросе: сначала создайте пространство имен концентратора событий:

'' 'curl --location --request PUT' https://management.azure.com/subscriptions/6fa11037-363b-4ff4-a5a2-f4e93efa527c/resourceGroups/easypeasybi/providers/Microsoft.EventHub/namespaces/easypeasybi?api-version=2017-04-01 '\ - заголовок 'Content-Type: application / json' \ --header 'Авторизация: Bearer mybearertoken' \ --data-raw '{"location": "francecentral"}'

'' 'Сейчас в Чтобы создать концентратор событий, мне нужно создать токен SAS, поэтому мне нужно сначала получить политику SAS: при создании пространства имен создается политика SAS с именем RootManageSharedAccessKey, я могу перечислить всю политику, используя этот вызов:

curl --location --request GET 'https://management.azure.com/subscriptions/6fa11037-363b-4ff4-a5a2-f4e93efa527c/resourceGroups/easypeasybi/providers/Microsoft.EventHub/namespaces/easypeasybi/AuthorizationRules?api-version=2017-04-01' \
--header 'Authorization: Bearer mybearertoken'

Наконец, я пытаюсь получить политику RootManageSharedAccessKey, но получаю сообщение об ошибке

{
    "error": {
        "code": "InvalidHostName",
        "message": "The provided host name 'easypeasybi.servicebus.windows.net' is not whitelisted. "
    }
}

Я использую следующий код

curl --location --request POST 'https://management.azure.com/subscriptions/6fa11037-363b-4ff4-a5a2-f4e93efa527c/resourceGroups/easypeasybi/providers/Microsoft.EventHub/namespaces/easypeasybi/AuthorizationRules/RootManageSharedAccessKey/listKeys?api-version=2017-04-01' \
--header 'Content-Type: application/atom+xml;type=entry;charset=utf-8' \
--header 'Host: easypeasybi.servicebus.windows.net' \
--header 'Authorization: Bearer mybearertoken' \
--data-raw '<entry xmlns='\''http://www.w3.org/2005/Atom'\''>  
  <content type='\''application/xml'\''>  
    <EventHubDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">  
    </EventHubDescription>  
  </content>  
</entry>  '

1 Ответ

1 голос
/ 17 февраля 2020

В заголовке Host должно быть management.azure.com.

Так что в вашей команде измените эту строку кода

--header 'Host: easypeasybi.servicebus.windows.net' \

на

--header 'Host: management.azure.com' \
...