问题标签 [adal4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2894 浏览

java - 无法从 Office 365 门户打开我的应用程序。获取应用程序错误的未定义登录 url

我正在将 Azure AD 登录身份验证集成到我的 Web 应用程序中。我在 azure 开发门户中创建了一个帐户并将我的应用程序注册为 Web 应用程序。在应用注册设置中,我提供了如下所示的重定向 URL,

重定向 URL:https://mdb-dev-ext.xyzcde.com/my.dashboard/azureLogin.html

在我的 java web 应用程序中,我已经实现了在上述端点 (azureLogin.html) 中获取 azure 令牌的逻辑。我已经使用 ADAL java 库来实现以下代码逻辑

注意:我没有为“主页 URL”提供值我相信这不是强制性的

现在在执行以下步骤时,我遇到了错误

登录到portal.office.com

使用我的帐户凭据登录

登陆 office 365 主页后,我可以看到我的 web 应用程序的图标已列出

单击我的网络应用程序的图标/按钮时,我被重定向并最终抛出以下错误。我的网络应用程序的服务器日志中没有日志更新。我确定这还没有到达我的网络应用程序。

如果我为主页 URL 字段提供了我的 Web 应用程序的登录 URL,如下所示,

主页网址:https ://mdb-dev-ext.xyzcde.com/my.dashboard

然后在尝试从 office 365 打开我的应用程序时,它正在打开我的网络应用程序的登录页面(它将提示输入应用程序的数据库用户名和密码)。这不是我要找的。

我想要实现的是 -> 登录到 Office 365 -> 单击我的 Web 应用程序按钮 -> 在我的应用程序注册期间应该加载 azure 门户中提到的重定向 URL -> 最终将调用在我的 Web 应用程序中编写的代码逻辑获取 azure 令牌并使用会话中存储的 azure 返回令牌登录到我的应用程序。

请让我知道我在这里想念什么。为什么我会因为应用程序错误而收到此未定义的登录 URL?在 Office 365 门户中单击我的应用程序图标时,为什么它没有重定向到配置的重定向 URL?

0 投票
0 回答
46 浏览

java - 如何创建具有自定义属性的用户

我可以创建用户:

如何使用在 Azure AD B2C 中创建的自定义属性创建用户:https ://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-custom-attr ?

0 投票
1 回答
93 浏览

azure - 为 HTTPS 连接生成的 URL 在 Azure Web App 中以纯 HTTP 的形式出现

我有一个在部署到 Azure 应用服务的 Tomcat 上运行的 Java webapp。身份验证通过 Azure AD 处理。在本地环境中,一切似乎都运行良好。

当我们将应用程序部署到 Azure 时,无论调用是否来自 HTTPS 端点,httpRequest.getScheme() 始终返回 HTTP。

因此,重定向 URL 是使用 HTTP 终结点构造的,并且与 Azure AD 应用注册中指定的重定向 URL 不匹配。redirectUrl 的构造如下。

String currentUri = httpRequest.getRequestURL().toString(); String redirectUrl = authority + tenant + "/oauth2/authorize? response_type=code&scope=user.read.all&response_mode=form_post&redirect_uri=" + URLEncoder.encode(currentUri, "UTF-8") + "&client_id=" + clientId + "&resource=https%3a%2f%2fgraph.microsoft.com" + "&state=" + state + "&nonce=" + nonce;

我已经搜索并找到了这个 - https://creechy.wordpress.com/2011/08/22/ssl-termination-load-balancers-java/。负载均衡器可能会导致此类问题,我们需要修改 Tomcat配置。

如果我们在本地服务器上部署 WAR 文件,应用程序可以正常工作。问题仅出现在 Azure 中。

redirectUrl 始终包含http://xxxxx.azurewebsites.net,但在应用注册中,redirectUrl 指定为https://xxxx.azurewebsites.net

有没有其他人遇到过这个问题?如何避免这种情况?

0 投票
1 回答
487 浏览

azure - 使用 Azure Active Directory 时 Azure Devops REST API 身份验证失败

我正在使用 adal4j J​​ava 库通过 Azure Active Directory 对 Azure DevOps REST API 调用进行身份验证。我可以使用个人访问令牌进行身份验证,但不能使用 Active Directory。这是我一直在运行的代码:

我收到以下错误:

StatusCode: 203, ReasonPhrase: '非权威信息'

它尝试重定向到此登录页面:

https://spsprodsin1.vssps.visualstudio.com/_signin?realm= ...

我已经使用正确的目录/租户从 Azure DevOps 组织设置连接到 Azure Active Directory。而且我还在应用注册中添加了 Azure DevOps user_impersonation 权限(委托)。

我在这里做错了什么,我该如何解决这个问题?

0 投票
2 回答
6397 浏览

java - 如何使用 MSAL4J 获取守护程序的令牌?

我有一个用 Java 编写并在 AWS 上运行的守护程序。它使用基于客户端 ID、客户端密码和租户 ID 的令牌为我支持的 100 个用户帐户中的每一个调用多个 Microsoft API。使用 MS Azure Active Directory Library for Java (ADAL4J) 一切正常。但那是再见了,所以我被迫使用 MS Authentication Library for Java (MSAL4J)。

基本上,我需要使用客户端 ID、机密和租户来获取 MS API 所需的 accessToken。

经过大量的示例(其中许多编译)之后,似乎这是我能得到的最接近的代码:

因此,它编译(即使是 BAD 注释掉的代码也编译),它运行但它生成:

以上是在acquireToken调用上生成的(靠近底部)。

我无法弄清楚哪些代码需要默认构造函数(以使 JSON 快乐)。OTOH,我不知道这些是否是我应该拨打的电话;似乎有大约 47 种不同的方式通过和围绕这个 MSAL 的东西,我完全不确定我是否找到了“正确的道路”。

帮帮我,欧比旺·克诺比。你是我唯一的希望!

0 投票
0 回答
335 浏览

java - java的ADAL4j代理问题

我正在尝试使用adal4j@1.6.4java 库与 azure 连接以获取访问令牌。我的应用程序位于公司代理后面,因此我必须设置代理才能连接到 azure。

以下是代码片段

当我使用代理连接时,我收到证书错误。

0 投票
1 回答
527 浏览

java - onprem 机器到 Azure Active Directory,因此我们可以访问 ActiveDirectoryMSI 身份验证以及 I​​MDS SERVER

我们希望将 AzureSqlServer 与 ActiveDirectoryMSI 身份验证以及基于令牌的身份验证一起使用,并且我们能够从在 Azure 网络中创建并添加为 Azure AD 组成员的 VM 成功执行。为此,我们通过以下链接创建了包含用户

https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql

并按照此链接将 VM 添加为 AzureActiveDirectory 的一部分

com.microsoft.sqlserver.jdbc.SQLServerException:MSI 令牌失败:无法从 MSI 端点获取令牌

我们能够使用 IMDS 服务器在不提供用户名和密码的情况下访问 SQL 数据,并且能够使用 http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource检索令牌=https%3A%2F%2Fdatabase.windows.net%2F

ActiveDirectorMSI URIString jdbc:sqlserver://azuresqlserverNAME:1433;databaseName=DatabaseNAME;Authentication=ActiveDirectoryMsi; .

但是当涉及到从 Onprem Windows/Linux/Mac 机器访问时,我们无法访问 Azure SQL 服务器

有人可以就本地建议向我建议需要做什么,以便我们可以使用 ActiveDirectoryMSI 身份验证以及基于令牌的身份验证访问 AzureSqlServer?

0 投票
1 回答
193 浏览

scala - 尝试从 Spark Submit 连接到 Azure SQL DB 时,ADAL4J javax 邮件解析异常

我正在尝试使用用于 Azure SQL 数据库库 ( GitHub ) 的 Spark 连接器从 Spark 获取数据并将其批量插入 Azure 数据库。我正在尝试使用“ActiveDirectoryPassword”作为身份验证方法,但 adal4j 总是抛出一个 AuthenticationException 异常,指出抛出了 javax.mail.internet.ParseException。

我正在构建一个包含所有库的胖 jar,并使用 spark-submit 运行它。

Azure 组织有一个自定义域。

对于我尝试过的用户配置选项:

  • myUser@myDomain.com
  • 我的用户
  • myUser@myDomain.com@myDB.database.windows.net
  • myUser@myDomain.com@database.windows.net
  • myUser@organization.onmicrosoft.com

当我将该字段留空时,它会引发用户名为空的错误。

我可以使用该用户通过 Azure Active Directory 登录到 Azure Data Studio。

这是我用来加载数据的片段:

这里抛出的异常:

提前致谢

0 投票
1 回答
3035 浏览

azure-active-directory - “AADSTS700003:在租户中未找到设备对象”问题自 9 月初开始出现

当我们尝试获取令牌时,我们在许多租户中看到了很多问题(并且还在增加):AuthenticationContext.acquireTokenByRefreshToken:Sep 13 13:55:26 Caused by: com.microsoft.aad.adal4j.AuthenticationException: {"error_description ":"AADSTS700003: 在租户 'xxxx' 目录中找不到设备对象。\r\n跟踪 ID: 154e5983-63d2-4c61-bcc1-717dc2169400\r\n相关 ID: f8666b39-307e-4230-b6e5-64ee68c8e86c\r \n时间戳:2020-09-13

它在其他租户中不断增加,而我们这边(代码或应用程序配置)没有任何变化。

请告知该问题的可能解决方案是什么?

谢谢

0 投票
1 回答
1477 浏览

sql-server - 'java.lang.RuntimeException:驱动程序 com.microsoft.sqlserver.jdbc.SQLServerDriver 声称不接受 jdbcUrl,'

我正在使用以下依赖项。

当我形成如下连接网址时。

我收到如下错误:

' 'java.lang.RuntimeException: Driver com.microsoft.sqlserver.jdbc.SQLServerDriver 声称不接受 jdbcUrl, '

当我将密码括在如下大括号中时,我能够成功连接到 Azure sql 服务器。

仅供参考,密码有一个大括号 {,它会造成任何麻烦吗?是否必须将密码字符串括在花括号中?