我有一个Azure企业应用,它定义了具有验证证书的SAML SSO。同一应用具有API权限Graph User.Read.All和Group.Read.All。
SSO工作正常,我可以登录我的用户。但当我尝试通过图形API检索他们的组名时,我的图形客户端无法登录。我得到AADSTS76020:应用程序被配置为只使用带有签名请求的协议错误。据我所知,我应该签名我的图形身份验证请求,但我认为身份验证协议不允许这样做。
当我禁用证书验证时,我的图形客户机可以获得它的访问令牌,并且我设法获得组名。
我应该声明两个应用程序(一个用于SSO,另一个用于Graph)还是应该可以这样做?我是否遗漏了某个配置?
- 注意:我的Graph客户端使用ClientId、ClientSecret和TenantId进行身份验证。我还尝试使用ClientId、Certificate和TenantId*
1条答案
按热度按时间w80xi6nr1#
我尝试在我的环境中复制,结果如下:
注意:要实现您的场景,请创建两个应用程序,一个用于SSO,另一个用于Graph。
我创建了Azure AD应用程序并授予了API权限,如下所示:
我使用以下参数生成了访问令牌:
通过使用上面生成的访问令牌,我能够成功获取用户组,如下所示:
参考:
List a user's direct memberships - Microsoft Graph v1.0 | Microsoft Learn