问题标签 [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 回答
5144 浏览

azure - Office 365 v2 API Authorization code is malformed or invalid

I've the following auth code copied from the browser for a user who granted our app to use their Office 365 email.

Application works without a problem if we are using Microsoft Graph REST API v1 but the following problem happens when using version 2. It is registered with delegate permissions that grants us Read, Write/Send permission which work fine with V1 of the application.

For V2: authority =https://login.microsoftonline.com/common/oauth2/v2.0/token and to retrive auth code I use the following url

Code block causing the issue:

Exception when resultFuture.get() is called

I don't know what I am doing wrong as I am trying to migrate to v2. redirect_uri is same as defined in azure and it is HTTPS. I already made my local env't accept HTTPS by following this. FYI: I am using adal4 java library.

0 投票
1 回答
86 浏览

azure - 使用资源管理器模板创建 HDInsight 群集时列出头节点和工作节点的允许值

我需要在用于创建 HDInsight 群集的模板中加载可以为头节点和工作节点设置的可能值列表。有没有可用的java API?或任何其他获取列表的方式。此外,我无法找到任何描述模板参数列表或详细信息的文档。

例如模板:

0 投票
1 回答
976 浏览

azure - 阻止用户从 Azure 门户登录

是否可以阻止用户通过 Azure 门户登录,但同时允许用户通过 API(ADAL4J API)进行身份验证?

我有一个应用程序,我在其中使用管理员凭据对用户进行操作。但是,我想限制此用户通过 Azure 门户登录。如果我为用户设置 MFA,通过 API 进行的身份验证也会停止工作吗?

0 投票
1 回答
2145 浏览

azure-ad-graph-api - 如何使用 Azure AD Graph API 访问服务主体?

我有一个使用 adal4j 的有效 Azure AD/Azure 守护程序应用程序,该应用程序使用用户/密码身份验证。由于 ADFS 的问题,我希望也能够使用服务主体(客户端 ID/秘密)进行身份验证。这似乎适用于应用程序的 Azure(非 AD)部分,因为可以为相关订阅定义 SP 角色,但是对于 Azure AD 部分,我得到:

response code 403, error: Authorization_RequestDenied: Insufficient privileges to complete the operation.

...这发生在第一次调用 Graph API 时 - 我使用https://graph.windows.net范围从 AuthenticationContext.acquireToken() 获取有效令牌。

我的帐户是目录中的所有者。我尝试使用应用程序上的“授予权限”按钮,还尝试制作同意 URL(有效)并使用它来同意应用程序在目录中具有必要的权限。两者似乎都不会影响这一点。

该应用程序是一个本地应用程序,因为它是一个守护程序/服务应用程序,所以不能参与 OAuth2 同意。

如何使用 SP 访问 Azure AD Graph API 进行身份验证?提醒一下,未更改,该应用使用(非 ADFS)用户/密码,SP 使用 Azure API,而不是 Azure AD Graph API。

谢谢...

PS 我也尝试过使用 Azure Graph API,微软现在推荐它而不是 Azure AD Graph API。结果相同,并且同样适用于用户/密码凭据。

对此进行修改以将 adal4j 排除在外——这似乎更像是一个通用的 Azure AD 问题。这是使用 curl 的问题示例:

客户端凭据令牌请求:

客户端凭据令牌响应:

使用客户端凭据令牌的 Azure AD REST 查询:

使用客户端凭据令牌的 Azure AD REST 响应:

现在,将其与(注意相同的租户 ID/应用 ID)进行对比:

密码凭证令牌请求:

密码凭证令牌响应:

使用密码凭据令牌的 Azure AD REST 查询:

使用密码凭据令牌的 Azure AD REST 响应:

在这一点上,我的怀疑是在创建应用程序时由 Azure AD 默认创建的 SP 不包含必要的权限。我将尝试创建一个具有指定权限的新 SP。这样的例子比比皆是,但都集中在目标应用程序是一些神话般的 LOB 应用程序,而不是 Azure AD。而且,与半生不熟的门户网站一样,必须使用 CLI 来执行此操作。

此外,我已经验证任何具有 Reader 角色的人都应该能够执行该查询。我已将贡献者和所有者都添加到 SP,但没有任何效果。

此外,FWIW,我已验证 SP 在理论上具有我在门户中输入的 Azure AD(和其他)权限。我认为。

0 投票
1 回答
417 浏览

access-token - Adal4J 中的哪些类/方法验证 Azure AD 访问代码的签名

在 ADAL4J 中是否可以验证从 Azure AD 接收到的访问令牌的签名?

我编写了自己的代码来从 openid connect .wellknown 元文档中检索 jwks_uri,并从 jwks_uri 指向的文档中获取孩子指示的公钥。

现在我正在研究 Adal4J 是否可以为我做到这一点。是否有我可以传入 oAuth2 访问代码的类/方法,它会执行上述操作?

谢谢!

0 投票
1 回答
2790 浏览

azure - 使用客户端凭据从 Azure AD 获取访问令牌以进行本机应用注册 (PowerBI)

我正在使用来自后端应用程序的 adal4j(版本 1.2.0)来获取访问令牌,以便能够使用 PowerBI REST API 来嵌入报告(更具体地说,是 GenerateToken 方法)。我在 Azure 中注册了一个本机应用程序,并为其提供了必要的权限。我可以使用用户名/密码组合获取访问令牌,如下所示:

然后使用令牌成功地对 API 进行身份验证,并最终显示嵌入式报告。但是,就我而言,我当然想使用客户端凭据(客户端 ID、客户端密码)而不是用户帐户。我可以再次获取令牌,如下所示:

客户端 ID 是注册的原生应用程序的应用程序 ID,客户端密钥是通过向应用程序添加密钥来定义的。再次,我获得了令牌,但现在我无法再使用它来针对 API 进行身份验证(HTTP 403,没有任何进一步的细节)。

所以我的问题是,这是一个应该首先工作的有效场景,和/或我只是错过了 Azure 或使用 adal4j 中的一条技术信息?

编辑:下面是委派应用权限的屏幕截图。

在此处输入图像描述

0 投票
3 回答
1444 浏览

java - 使用手动下载的依赖项运行 Maven 构建

抱歉,如果这是一个简单的解决方法,我是 Java 和 Maven 的新手,并且正在努力让它工作。

我正在尝试在我的工作机器上实现ADAL4J 示例。不幸的是,由于各种安全原因,我的工作机器无法访问 Maven 存储库,并且无法暂时连接到下载和所需的包。

我已经在我的个人机器上启动并运行了示例,通过 Maven 生成了一个依赖项列表并手动将它们下载到我的工作机器(jar 文件)上,但这就是我卡住的地方。

如何配置 Maven 构建过程以使用本地 jar 文件,而不是尝试从 Maven 远程 repo 下载它们?

编辑:忘了提一下,任何解决方案都将与 VSTS 一起部署,它也无法访问 Maven 存储库,因此任何引用独立于 Maven 存储库的依赖项的方式都必须能够与构建过程捆绑在一起(它当前生成一个 WAR 文件)并部署到远程 Tomcat 服务器。

0 投票
1 回答
1160 浏览

java - Microsoft Graph API 访问令牌验证失败 (java)

我正在尝试设置一个本机 Java 应用程序,该应用程序将利用 MS Graph 的 API 在使用 ADAL4j 进行身份验证后访问用户 OneDrive。我正在使用这个库来获取我的访问令牌。到目前为止,我有这个代码:

当我运行它时,我输入帐户凭据,然后打印访问令牌、刷新令牌、ID 令牌和过期时间。然后,我使用 chromes “Advanced Rest Client”插件来测试身份验证令牌(下面的屏幕截图)。

截屏

然后我得到了屏幕截图底部显示的访问令牌验证错误。我不明白令牌不起作用的原因。我在 Azure AD 中注册的应用程序上设置了权限,并且用户已经授予了该应用程序的权限。我唯一能想到的可能是没有指定范围,但我不确定这是问题所在。如果是我如何指定它们?

0 投票
0 回答
728 浏览

java - Azure AD OAuth SSO 与 Spring 启动应用程序的集成

我正在使用 Spring Cloud(Eureka、Zuul)开发一些微服务。

我想将 Azure AD OAuth2 SSO 集成到我的应用程序中。我搜索了几篇博客和文章,但没有找到任何 Azure AD 教程。

请告诉我如何做到这一点。

0 投票
1 回答
2259 浏览

java - ADAL4j java - 使用带有用户名和密码的刷新令牌来获取访问令牌

我正在使用 java 后端服务器连接到启用 Azure AD 的 API。我可以通过以下 java 代码获取访问令牌。

请注意,API 提供者当前不支持客户端凭据。

我的问题是,使用上面代码中收到的刷新令牌来获取新的访问令牌。

ADAL4j java 库似乎没有任何方法支持这一点。 java库的文档

但是在 .NET 库中有一些方法,例如,

用于在不提供任何凭据的情况下刷新访问令牌。

为什么 Java 库中没有提供这些方法?有什么限制吗?什么是可能的解决方法?

提前致谢。