为了澄清您的理论问题.. ADAL.NET 库可以帮助您从 Azure AD 获取令牌,符合 OAuth 2.0 和 OpenID 连接协议。
更具体到您的情况.. 如果访问令牌是使用您在问题中提到的 Auth 代码授予流程并使用正确的参数获取的,它应该适用于您的 API。
要检查的两件事
确保获取访问令牌,将您的 API 指定为资源,然后它才会对您的 API 有效。
这是一个使用 openid 范围的访问令牌的示例请求。获取访问令牌
的值resource
应该与您的 Web 服务完全匹配App ID URI
。要查找 App ID URI,请在 Azure 门户中单击 Azure Active Directory,单击应用程序注册,打开应用程序的设置页面,然后单击属性。
GET https://login.microsoftonline.com/{tenant}/oauth2/authorize?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e // Your registered Application Id
&response_type=id_token+code
&redirect_uri=http%3A%2F%2Flocalhost%3a12345 // Your registered Redirect Uri, url encoded
&response_mode=form_post // `form_post' or 'fragment'
&scope=openid
&resource=https%3A%2F%2Fservice.contoso.com%2F // The identifier of the protected resource (web API) that your application needs access to
&state=12345 // Any value, provided by your app
&nonce=678910 // Any value, provided by your app
您可能会获得 ID 令牌和访问令牌,请确保使用正确的令牌