2

响应状态码不表示成功:401(未授权)调用Azure区块链时

我在调用 Azure Blockchain RESTApi 时遇到了上述错误,我已经检查了所有权限并正确获取了访问令牌,但是当我调用获取应用程序时,我们得到了上述错误

4

2 回答 2

1

通过执行以下步骤,该问题已得到解决:

1)转到 Azure 门户-> 应用服务-> [您的应用服务]-Api

在此处输入图像描述

2)转到身份验证/授权刀片

Allow App Service Authentication 并选择 Allow anonymous requests(no action) 并选择 Azure Active Directory 作为 Authentication Providers 点击 Advanced -> 如下图所示填写选项:

客户端 ID 与 AzureAD 应用程序注册中的应用程序 ID 相同 客户端密钥与您从 AzureAD 应用程序注册颁发者 URL 中的密钥部分生成的 API 密钥相同https://sts.windows.net/ {AZUREADTENANTID} ß 您可以从 AzureAD 属性中获取 azuread 租户 ID 允许的令牌受众应该具有以下值:i。[ https://%7bYOURBLOCKCHAINAPIURL-API.azurewebsites.net/.auth/login/aad/callback] https://{YOURBLOCKCHAINAPIURL-API.azurewebsites.net/.auth/login/aad/callback

在此处输入图像描述 3)转到 Azure Active Directory 现在,转到 Azure AD 并导航到 App Registrations,然后单击 BlockChain API ß 或您在第一次配置区块链时为 Azure AD App Registration 选择的名称:

单击设置,然后单击回复 URL

在此处添加以下 URL:

Blockchain Workbench URL(应该已经存在) Blockchain API Base URL(其中包含 -API) Blockchain API Base URL with Callback(如下所示,但使用您自己的 URL 并添加 /.auth/login/aad/ callback) getpostman.com/oauth2/callback URL 稍后将用于使用 Postman App(用于测试 API 的 App)测试 API,请添加如下 在此处输入图像描述

4)保存您的设置,然后转到清单(在区块链 API AzureAD 应用程序属性中的设置旁边) 在此处输入图像描述

将清单条目oauth2allowimplicitflow设置为True Save Configuration。

就是这样,现在我们需要测试API,你可以下载Postman来测试API,Postman的配置有点长,我希望你免费注册这个服务:https://www.wintellectnow。 com/Videos/Watch?videoId=blockchain-on-azure

使用代码:FREETRIAL 注册 - 需要信用卡但不会收费,使用任何预付卡或后付卡,但强烈建议观看此视频,特别是在第 53 分钟,因为它解释了如何使用 API邮递员(记得禁用试用以防止卡在 7 天后被扣款)

这是使用 Gethub 上 Azure 区块链示例附带的内置身份验证示例代码生成的示例令牌(您可以从此处下载:https ://github.com/Azure-Samples/blockchain/tree/master/blockchain-workbench /auth-samples/bearer-token-retrieval/static),如果要使用它进行测试,则必须将http://localhost添加到上面的回复 URL 中,并且必须将其放置在 localhost IIS 上)

在此处输入图像描述

这是 Postman 的一个示例,它显示了如何将令牌添加到请求标头中:

在此处输入图像描述

这是授权令牌之前的响应: 在此处输入图像描述

一旦授权令牌可用,这是我调用上图中 GET 部分中指示的 API 时生成的响应:

在此处输入图像描述

此外,这是成功授权后的响应标头:

在此处输入图像描述

综上所述,#blockchain API 需要#OAuth2 身份验证令牌,此令牌不是使用 Swagger UI 或您构建的应用程序传递的,您需要修改您的应用程序以向 AAD OAuth2 进行身份验证以从 AzureAD 获取令牌,然后您需要在 API 的请求标头中使用此生成的令牌才能调用 API。

另一个提示,在创建工作台时不要选择默认机器大小,而是选择性能更好的机器,例如:VM 大小:标准 F2s_v2(2 vcpus,4 GB 内存)==> 每月大约 50 美元。

微软技术社区网站上的讨论

作者的原帖

于 2018-10-21T10:00:44.637 回答
0

我们目前在美国中南部遇到中断 https://azure.microsoft.com/en-us/status/

Azure AD 也受到影响。

您将需要监视 Azure 状态页面以获取进一步的更新。不幸的是,在问题通过工程解决之前,我们无法做任何事情。在问题得到缓解后,如果您仍然看到问题,请告诉我们。

于 2018-09-04T17:23:21.200 回答