我正在使用Azure应用服务部署一个Web应用程序,该应用程序需要代表用户对API(也已部署为应用服务)进行授权。
根据我所遵循的各种教程,在设置Azure AD身份验证后,应该可以从/.auth/me端点访问以下令牌,并将其作为请求的标头传递:
X-MS-TOKEN-AAD-ID-TOKEN
X-MS-TOKEN-AAD-ACCESS-TOKEN
X-MS-TOKEN-AAD-EXPIRES-ON
X-MS-TOKEN-AAD-REFRESH-TOKEN
但是,我只收到X-MS-TOKEN-AAD-ID-TOKEN。
我已经添加了offline_access作用域,以访问应用上的刷新令牌,以及API://<API_ID>/user_impersonation作用域。我还配置了应用程序和API之间的访问权限。
1条答案
按热度按时间lbsnaicq1#
对于任何人来这与同样的问题,原因是我的IDP没有访问我的客户机密;我在应用服务之前创建了应用注册,而不是同时创建了应用注册。因此,客户端密钥没有存储为
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET
应用程序设置,也没有自动应用到我添加到应用程序服务的身份提供程序。为了解决这个问题,我采取了以下步骤:
1.从我的应用注册生成了新的客户端密码
1.已将其复制到名为
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET
的应用程序设置中1.转到我的应用服务的身份验证面板,并单击我的身份提供程序上的Edit图标
1.将客户端密码设置名称设置为
MICROSOFT_PROVIDER_AUTHENTICATION_SECRET
保存这些设置后,我现在可以访问完整的标题集。