Я пытаюсь создать концентратор событий в 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> '
В заголовке Host должно быть management.azure.com.
Host
management.azure.com
Так что в вашей команде измените эту строку кода
--header 'Host: easypeasybi.servicebus.windows.net' \
на
--header 'Host: management.azure.com' \