【发布时间】:2020-04-25 18:36:17
【问题描述】:
我正在尝试从我的 Azure 函数访问已在 azure 中注册为应用程序的另一个自定义服务的 API 端点。我为我的天蓝色功能启用了托管身份。我使用以下代码获取令牌:
var tokenIssuerAddress = @"uriOfServiceThatImTryingToConsume";
var tokenProvider = new AzureServiceTokenProvider("RunAs=App");
var accessToken = await tokenProvider.GetAccessTokenAsync(tokenIssuerAddress);
这似乎很好,因为我得到了一个不记名令牌。但是当我尝试使用令牌调用服务本身时:
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", $"{accessToken}");
var response = await client.GetAsync($"{uriOfServiceThatImTryingToConsume}{path}");
}
我得到 200 OK,但响应是一个 HTML 页面,以以下内容开头:
<!-- Copyright (C) Microsoft Corporation. All rights reserved. -->
<!DOCTYPE html>
<html dir="ltr" class="" lang="en">
<head>
<title>Sign in to your account</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<link rel="preconnect" href="https://aadcdn.msftauth.net" crossorigin>
<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" href="//aadcdn.msftauth.net">
<link rel="dns-prefetch" href="//aadcdn.msauth.net">
为什么当我使用我得到的不记名令牌时,我得到一个 HTML 登录页面作为响应?我错过了一步吗?
【问题讨论】:
标签: azure authentication azure-active-directory bearer-token azure-managed-identity