gpt4 book ai didi

api - 使用 Microsoft Graph api 进行增量 OAuth 同意

转载 作者:行者123 更新时间:2023-12-02 07:29:37 28 4
gpt4 key购买 nike

我们在 Azure AD 中有一个使用 Microsoft Graph API 的应用。该应用程序使用 4 个基本权限成功运行:电子邮件、个人资料 User.Read User.ReadBasic.All

这些权限允许普通用户(非管理员)通过 OAuth 身份验证进入我们的应用程序。

我们现在正在为管理员用户构建一项功能,让他们可以查看自己的群组。组范围需要管理员同意,如下所示:http://graph.microsoft.io/en-us/docs/authorization/permission_scopes

棘手的一点是,如果我在 Azure AD 中的委派权限下添加 Group.Read.All 权限,这会导致普通用户能够登录并出现可怕的错误“AADSTS90093:由于缺乏权限,调用主体无法同意” ”。

我尝试手动制作明确请求范围的 OAuth 授权 URL,但这也不起作用。这是我使用的示例网址:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&redirect_uri=https%3A%2F%2Fl.xxxxxx.com%3A50000%2Fauth%2Fmicrosoft_graph%2Fcallback&client_id=xxxxxx-xxx-xxx-xxx-xxxx&scope=https%3A%2F%2Fgraph.microsoft.com%2Femail%20https%3A%2F%2Fgraph.microsoft.com%2Fprofile%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read%20https%3A%2F%2Fgraph.microsoft.com%2FUser.ReadBasic.All%20https%3A%2F%2Fgraph.microsoft.com%2FGroup.Read.All

如何要求所有用户获得基本权限,但让管理员稍后在应用程序中请求其他权限?

我已经查看过一些资源,但没有效果:

最佳答案

Azure AD V2.0 端点已支持增量和动态同意。您可以注册应用程序以使用 here 中的 Azure AD V2.0 身份验证终结点.

我们可以提供两个按钮供普通用户和管理员登录。以下是使用V2.0端点普通用户登录的步骤,供您引用:

1.登录并获取OAuth代码:

GET: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id={clientId}&scope=openid%20https%3A%2F%2Fgraph.microsoft.com%2FMail.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FUser.ReadBasic.All%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read&response_type=code+id_token&&redirect_uri={redirectUri}&nonce=678910

2.请求访问 token

POST: https://login.microsoftonline.com/common/oauth2/v2.0/token

client_id={clientId}&scope=openid%20https%3A%2F%2Fgraph.microsoft.com%2FMail.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FUser.ReadBasic.All%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read
&code={codeFromPreviousRequest}&redirect_uri={RedirectUri}&grant_type=authorization_code&client_secret={client_secret}

为了让管理员登录,我们只需添加上述请求的附加范围。以下是一些有关此主题的有用文章:

What's different about the v2.0 endpoint?

v2.0 Protocols - OpenID Connect v2.0 Protocols - OAuth 2.0 Authorization Code Flow

关于api - 使用 Microsoft Graph api 进行增量 OAuth 同意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39189427/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com