AADSTS76020:具有登录证书的Azure AD SSO无法对图形客户端进行身份验证

8yoxcaq7  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(133)

我有一个Azure企业应用,它定义了具有验证证书的SAML SSO。同一应用具有API权限Graph User.Read.All和Group.Read.All。
SSO工作正常,我可以登录我的用户。但当我尝试通过图形API检索他们的组名时,我的图形客户端无法登录。我得到AADSTS76020:应用程序被配置为只使用带有签名请求的协议错误。据我所知,我应该签名我的图形身份验证请求,但我认为身份验证协议不允许这样做。
当我禁用证书验证时,我的图形客户机可以获得它的访问令牌,并且我设法获得组名。
我应该声明两个应用程序(一个用于SSO,另一个用于Graph)还是应该可以这样做?我是否遗漏了某个配置?

  • 注意:我的Graph客户端使用ClientId、ClientSecret和TenantId进行身份验证。我还尝试使用ClientId、Certificate和TenantId*
w80xi6nr

w80xi6nr1#

我尝试在我的环境中复制,结果如下:
注意:要实现您的场景,请创建两个应用程序,一个用于SSO,另一个用于Graph。

我创建了Azure AD应用程序并授予了API权限,如下所示:

我使用以下参数生成了访问令牌

https://login.microsoftonline.com/TenantID/oauth2/v2.0/token

client_id:ClientID
grant_type:authorization_code
code:code
redirect_uri:https://jwt.ms
client_secret:ClientSecret
scope:https://graph.microsoft.com/.default

通过使用上面生成的访问令牌,我能够成功获取用户组,如下所示:

GET https://graph.microsoft.com/v1.0/users/UserID/memberOf

参考:

List a user's direct memberships - Microsoft Graph v1.0 | Microsoft Learn

相关问题