问题标签 [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.
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.
azure - 使用资源管理器模板创建 HDInsight 群集时列出头节点和工作节点的允许值
我需要在用于创建 HDInsight 群集的模板中加载可以为头节点和工作节点设置的可能值列表。有没有可用的java API?或任何其他获取列表的方式。此外,我无法找到任何描述模板参数列表或详细信息的文档。
例如模板:
azure - 阻止用户从 Azure 门户登录
是否可以阻止用户通过 Azure 门户登录,但同时允许用户通过 API(ADAL4J API)进行身份验证?
我有一个应用程序,我在其中使用管理员凭据对用户进行操作。但是,我想限制此用户通过 Azure 门户登录。如果我为用户设置 MFA,通过 API 进行的身份验证也会停止工作吗?
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(和其他)权限。我认为。
access-token - Adal4J 中的哪些类/方法验证 Azure AD 访问代码的签名
在 ADAL4J 中是否可以验证从 Azure AD 接收到的访问令牌的签名?
我编写了自己的代码来从 openid connect .wellknown 元文档中检索 jwks_uri,并从 jwks_uri 指向的文档中获取孩子指示的公钥。
现在我正在研究 Adal4J 是否可以为我做到这一点。是否有我可以传入 oAuth2 访问代码的类/方法,它会执行上述操作?
谢谢!
简
azure - 使用客户端凭据从 Azure AD 获取访问令牌以进行本机应用注册 (PowerBI)
我正在使用来自后端应用程序的 adal4j(版本 1.2.0)来获取访问令牌,以便能够使用 PowerBI REST API 来嵌入报告(更具体地说,是 GenerateToken 方法)。我在 Azure 中注册了一个本机应用程序,并为其提供了必要的权限。我可以使用用户名/密码组合获取访问令牌,如下所示:
然后使用令牌成功地对 API 进行身份验证,并最终显示嵌入式报告。但是,就我而言,我当然想使用客户端凭据(客户端 ID、客户端密码)而不是用户帐户。我可以再次获取令牌,如下所示:
客户端 ID 是注册的原生应用程序的应用程序 ID,客户端密钥是通过向应用程序添加密钥来定义的。再次,我获得了令牌,但现在我无法再使用它来针对 API 进行身份验证(HTTP 403,没有任何进一步的细节)。
所以我的问题是,这是一个应该首先工作的有效场景,和/或我只是错过了 Azure 或使用 adal4j 中的一条技术信息?
编辑:下面是委派应用权限的屏幕截图。
java - 使用手动下载的依赖项运行 Maven 构建
抱歉,如果这是一个简单的解决方法,我是 Java 和 Maven 的新手,并且正在努力让它工作。
我正在尝试在我的工作机器上实现ADAL4J 示例。不幸的是,由于各种安全原因,我的工作机器无法访问 Maven 存储库,并且无法暂时连接到下载和所需的包。
我已经在我的个人机器上启动并运行了示例,通过 Maven 生成了一个依赖项列表并手动将它们下载到我的工作机器(jar 文件)上,但这就是我卡住的地方。
如何配置 Maven 构建过程以使用本地 jar 文件,而不是尝试从 Maven 远程 repo 下载它们?
编辑:忘了提一下,任何解决方案都将与 VSTS 一起部署,它也无法访问 Maven 存储库,因此任何引用独立于 Maven 存储库的依赖项的方式都必须能够与构建过程捆绑在一起(它当前生成一个 WAR 文件)并部署到远程 Tomcat 服务器。
java - Microsoft Graph API 访问令牌验证失败 (java)
我正在尝试设置一个本机 Java 应用程序,该应用程序将利用 MS Graph 的 API 在使用 ADAL4j 进行身份验证后访问用户 OneDrive。我正在使用这个库来获取我的访问令牌。到目前为止,我有这个代码:
当我运行它时,我输入帐户凭据,然后打印访问令牌、刷新令牌、ID 令牌和过期时间。然后,我使用 chromes “Advanced Rest Client”插件来测试身份验证令牌(下面的屏幕截图)。
然后我得到了屏幕截图底部显示的访问令牌验证错误。我不明白令牌不起作用的原因。我在 Azure AD 中注册的应用程序上设置了权限,并且用户已经授予了该应用程序的权限。我唯一能想到的可能是没有指定范围,但我不确定这是问题所在。如果是我如何指定它们?
java - Azure AD OAuth SSO 与 Spring 启动应用程序的集成
我正在使用 Spring Cloud(Eureka、Zuul)开发一些微服务。
我想将 Azure AD OAuth2 SSO 集成到我的应用程序中。我搜索了几篇博客和文章,但没有找到任何 Azure AD 教程。
请告诉我如何做到这一点。
java - ADAL4j java - 使用带有用户名和密码的刷新令牌来获取访问令牌
我正在使用 java 后端服务器连接到启用 Azure AD 的 API。我可以通过以下 java 代码获取访问令牌。
请注意,API 提供者当前不支持客户端凭据。
我的问题是,使用上面代码中收到的刷新令牌来获取新的访问令牌。
ADAL4j java 库似乎没有任何方法支持这一点。 java库的文档
但是在 .NET 库中有一些方法,例如,
用于在不提供任何凭据的情况下刷新访问令牌。
为什么 Java 库中没有提供这些方法?有什么限制吗?什么是可能的解决方法?
提前致谢。