gpt4 book ai didi

c# - 如何使用 AuthenticationContext.AcquireTokenAsync 强制 AdminConsent?

转载 作者:太空宇宙 更新时间:2023-11-03 23:10:50 24 4
gpt4 key购买 nike

我有一个在 Multi-Tenancy 场景中使用的 native 应用程序。为了对用户进行身份验证——并征得他们同意允许此应用程序代表他们访问 Azure——我只需实例化一个 AuthenticationContext 并调用 AcquireTokenAsync。但是我不知道这是否默认使用 AdminConsent?如果不是,我该如何实现?

下面是我使用的示例代码:

AuthenticationContext commonAuthContext = new AuthenticationContext("https://login.microsoftonline.com/common");
AuthenticationResult result = await commonAuthContext.AcquireTokenAsync(resource,
clientId, replyUrl,
new PlatformParameters(PromptBehavior.Always));

最佳答案

不,这不会自动调用管理员同意(即使管理员同意,他们只是为自己同意,而不是为整个租户同意)。

要调用管理员同意,您必须将 prompt=admin_consent 添加到身份验证请求中:

AuthenticationResult result = await commonAuthContext.AcquireTokenAsync(
resource,
clientId,
replyUrl,
new PlatformParameters(PromptBehavior.Auto), // <-- Important: use PromptBehavior.Auto
UserIdentifier.AnyUser,
"prompt=admin_consent"); // <-- This is the magic

当然,您不应该让所有用户都使用此登录,因为如果用户不是管理员,它将失败。

请参阅“在运行时触发 Azure AD 许可框架”:https://azure.microsoft.com/en-us/documentation/articles/active-directory-integrating-applications/#triggering-the-azure-ad-consent-framework-at-runtime

关于c# - 如何使用 AuthenticationContext.AcquireTokenAsync 强制 AdminConsent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39254758/

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