Calling Azure SQL Database REST API gives the error: The authentication scheme of Basic is not supported

北慕城南 提交于 2021-01-29 07:36:45

问题


In the following code of my WPF Core client app , I am trying to use this Azure SQL Database REST API to delete a database in my Azure subscription. But I am getting the error shown below:

Question: What I may be missing, and how can we resolve the issue?

Remark: I found a similar example here, and I'm not sure why my code is not working. The same user name (with SQL Admin access) and password works fine when I connect to the same Azure SQL Db from SSMS - 2019 on my laptop.

Code:

const string uri = "https://management.azure.com/subscriptions/a7686c7e8f-211d-45e5-8f5e-525015b1c881/resourceGroups/myResourceGroup/providers/Microsoft.Sql/servers/mysqlserver/databases/AdventureWorksLT2019?api-version=2019-06-01-preview";

using (var client = new HttpClient())
{
    var byteArray = Encoding.ASCII.GetBytes("mySQLAdminUserName:MySQLAdminPassword");
    var header = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
    client.DefaultRequestHeaders.Authorization = header;

    var result = await client.DeleteAsync(uri);
    System.Diagnostics.Debug.Write(result.Content.ReadAsStringAsync().Result);
}

error="invalid_token", error_description="The authentication scheme of Basic is not supported."

Error Details:

{StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
{
  Cache-Control: no-cache
  Pragma: no-cache
  WWW-Authenticate: Bearer authorization_uri="https://login.windows.net/96eafd5a-8ce3-4c0c-981c-8eac1f59ab96", error="invalid_token", error_description="The authentication scheme of Basic is not supported."
  x-ms-failure-cause: gateway
  x-ms-request-id: 43f41f28-5a18-42b7-8e70-d6599996ce0e
  x-ms-correlation-request-id: 43f41f28-5a18-42b7-8e70-d6599996ce0e
  x-ms-routing-request-id: EASTUS:20201010T035452Z:43f41f28-5a18-42b7-8e70-d6599996ce0e
  Strict-Transport-Security: max-age=31536000; includeSubDomains
  X-Content-Type-Options: nosniff
  Date: Sat, 10 Oct 2020 03:54:51 GMT
  Connection: close
  Content-Type: application/json; charset=utf-8
  Expires: -1
  Content-Length: 150
}}

回答1:


I think you may be mixing up the authentication.

When connecting using SSMS, you are connecting to the database and authenticating at the database.

To delete the database you need to be connecting to your Azure tenant with an Azure AD account that has sufficient rights to delete an Azure SQL Database.

Try authenticating with your Azure account.



来源:https://stackoverflow.com/questions/64289957/calling-azure-sql-database-rest-api-gives-the-error-the-authentication-scheme-o

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!