gpt4 book ai didi

azure - 使用图形 api 对 Azure AD 中的 guest 用户进行身份验证

转载 作者:行者123 更新时间:2023-12-03 03:08:36 25 4
gpt4 key购买 nike

我正在尝试使用 Azure AD 存储用户记录来对 Web 应用程序中的用户进行身份验证。为了验证用户身份,我使用 ADAL4J API ( https://github.com/AzureAD/azure-activedirectory-library-for-java )。我正在使用 AuthenticationContext.acquireToken() 方法来获取用户的 token 。这适用于我的目录中的本地用户,但不适用于邀请到该目录的 guest 用户。

在验证 guest 用户身份时,我收到错误:“要登录此应用程序,必须将帐户添加到目录中”。但是,我确信用户已成功添加到通过 Azure 门户看到的目录中。另外,我已经使用图形 API 验证了相同的内容,我可以在目录的用户列表中看到 guest 用户。

所以问题是如何通过代码(而不是通过重定向到 Azure UI)对 Web 应用程序中的 guest 用户进行身份验证?

编辑:这是我将用户的用户名和密码传递给的方法:

 private static AuthenticationResult getAccessTokenFromUserCredentials(
String username, String password) throws Exception {
AuthenticationContext context = null;
AuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
context = new AuthenticationContext("https://login.windows.net/<tenant_name>", false, service);
Future<AuthenticationResult> future = context.acquireToken(
"https://graph.windows.net", CLIENT_ID, username, password,
null);
result = future.get();
} catch(Exception e){
e.printStackTrace();
} finally {
service.shutdown();
}

if (result == null) {
throw new ServiceUnavailableException(
"authentication result was null");
}
return result;
}

最佳答案

根据您提供的信息,我觉得这里的问题与登录端点有关。请记住,公共(public)端点使用登录用户来帮助“猜测”要向哪个租户端点进行身份验证。如果您正在做更棘手的事情,例如 guest 帐户,则公共(public)端点很可能无法找出所有正确的详细信息。

我建议您在整个过程中专门调用租户的登录端点,看看是否能解决您的问题。

请告诉我这是否有帮助!

关于azure - 使用图形 api 对 Azure AD 中的 guest 用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41934452/

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