问题标签 [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 - Azure AD 身份验证重定向循环
我有一个与 Azure AD 集成的 Java Web 应用程序。现在,当我在本地运行应用程序时,一切正常。
但是当我将 WAR 文件部署到 Azure 应用服务时,身份验证重定向似乎陷入了无限循环。
该应用程序在 login.microsoftonline.com 和 mysite.azurewebsites.net 之间循环运行。
我在博客文章中读到 .Net 中的 OWIN cooke 会发生这种情况,但不确定 Java 是否也是如此。
所有流量仅通过 HTTPS,但问题仍然存在。
Azure 门户中是否有任何设置可以克服这个问题?
spring - 使用两个用于移动和 Web 的 azure AD 应用注册
我有一个直接从 azure login 获取令牌的移动应用程序。我有一个在 spring boot 中使用 adal4j 的服务。我无法使用移动生成的令牌来验证 spring 服务。因为我为移动和网络服务使用了两种不同的天蓝色应用程序注册。有没有办法做到这一点?
java - 使用有效 JWT 令牌通过 Graph API 读取邮件时出现 403 禁止错误
我需要通过 Graph API 从 Outlook 邮箱中读取邮件。我正在编写的应用程序是一个预定的批处理作业,没有用户交互。由于合规性原因,我无法使用应用程序权限。应用程序不能访问租户上的所有邮箱。我为共享允许邮箱的技术用户使用委派权限来实现这一目标。我能够通过 ADAL4J 获得 JWT 访问令牌并成功调用了一些 API,但是每当我尝试读取邮箱时,即使是技术用户邮箱,我都会收到 403 禁止。
我从这个官方 [sample] ( https://github.com/Azure-Samples/active-directory-java-native-headless/ ) 开始。在 Azure 中设置我的应用程序后,此示例立即工作。然后我将 Graph 调用更改为“ https://graph.microsoft.com/v1.0/me/messages“突然我得到了 403 Forbidden。为了避免权限问题,我将 Azure AD 中可用的所有委派权限添加到应用程序中,并为所有内容提供了管理员同意。不幸的是,这并没有改变任何内容。当我检查令牌的内容时,我看到了 scp 字段包含所有权限.奇怪的是我实际上可以写邮箱.我可以通过Graph API写入草稿文件夹.但是当我获取返回的消息ID并尝试查询我刚刚创建的同一条消息时,我再次得到403禁止。
获取令牌
调用消息端点:
java - 使用 rbac 服务主体进行身份验证导致 403 受众验证失败。观众不匹配
使用 rbac 服务主体进行身份验证导致 403 受众验证失败。观众不匹配
我正在尝试授予应用程序对 blob 存储容器的访问权限,但具有最低要求的权限(读/写)
使用 azure cli 我已执行以下步骤来尝试此操作:
从此我保存以下属性以供我的应用程序使用:
- TENANT_ID="$(az account show --output tsv --query tenantId)"
- CLIENT_ID="$(az ad sp list --spn ${AZ_SERVICE_PRINCIPAL_NAME} - -output tsv --query [0].appId)"
- 客户端密码:${APP_CLIENT_SECRET}
- 资源:${AZ_SERVICE_PRINCIPAL_NAME}
- 存储帐户名称:${STORAGE_ACCOUNT_NAME}
- 容器名称:${BLOB_STORAGE_CONTAINER}
使用 com.microsoft.azure:adal4j 我获得了一个令牌:
使用 AuthenticationResult 和 com.microsoft.azure:azure-storage-blob 中的 accessToken 我尝试获取 blob:
这会导致 StorageException:
我很确定问题是在 acquireToken() 上传递给 adal4j 的 AZ_SERVICE_PRINCIPAL_NAME 但我不知道正确的值是什么。我尝试在租户 AD 和服务主体上使用 CLIENT_ID 和其他属性。
dynamics-crm - Dynamics 365 - 未过期的许可证密钥?服务器 2 服务器身份验证
我们有一个需要使用 Dynamics Web API 的 Java 应用程序。
现在我们正在使用非交互式用户身份验证方法。(我们有一个 Active Directory 用户,该用户设置为非交互式电子邮件和密码)。
这工作正常,但似乎令牌过期(当然应该这样做)。
我们想知道是否有一种 API 密钥方法——它不会过期?
我们知道“服务器 2 服务器身份验证”,在 Azure 中注册应用程序并创建具有 Dynamics Web Api 权限的密钥,但这也只会让我们获得一个过期的令牌,对吗?
感谢您的澄清!
java - 用于活动导向器通用 MFA 身份验证的 JDBC 连接
我需要使用支持 MFA 的 Active directory-universal 连接到 sql server。首先,我们可以使用 JDBC 连接字符串连接到它吗?因为它是一种用于身份验证的交互模式,与 Active Directory 集成和 Active Directory 密码不同,我认为使用 JDBC 连接是不可能的。如果我的假设是正确的,那么它是否需要.Net Framework?。任何链接或评论都会有所帮助。请帮忙。提前致谢。
azure - 我想使用 spring mvc 获取电子邮件或使用 azure 和 1.6 v 启动
我正在尝试通过我的应用程序使用 azure 获取电子邮件。我无法将 adal4j 配置到 Spring MVC 应用程序。我尝试更新到 java 1.8 仍然存在问题。方法 2-另外,我使用以下属性执行了一个单独的启动应用程序,发现回复 URL 问题。我尝试了不同版本的 java 的 Spring boot。我还尝试了 java 1.6 和 1.8 的 Spring 版本消息:AADSTS50011:指定的回复 url在请求中与为应用程序配置的回复 url 不匹配
以下是应用程序配置详细信息 -
我无法将 adal4j 配置到 Spring MVC 应用程序。我尝试更新到 java 1.8 仍然存在问题。
com.microsoft.azure
阿达尔4j
1.6.0
java - 使用 ADAL4J 的 OneDrive 身份验证
Java的Active Directory 身份验证库(ADAL4J) 允许使用以下(简化的)代码通过访问令牌对Microsoft Graph API进行身份验证:
以上适用于 Graph 的某些部分(例如,用于访问Office 365
帐户),但不适用于OneDrive
,它返回没有适当授权的访问令牌。
通过POSTMAN获取访问令牌按预期工作,具有以下参数:
更具体地说,在POSTMAN中运行上述命令会返回一个具有附加范围的访问令牌,包括https://graph.microsoft.com/Files.ReadWrite.All
. Java
在调用上述方法的应用程序中使用该访问令牌确实有效,例如,它列出了用作 REST 路径authenticate()
的根目录的内容。/me/drive/root/children
但是,如果使用该authenticate()
方法返回的访问令牌,则会返回错误OneDrive
。me
如果使用特定租户 ID 而不是common
在 authorizationUrl 中,则从路径中删除用户名 ( ) 仅返回 1 个文件名。
似乎没有办法在其中添加范围值,ADAL4J
并且许多其他变体要么导致错误,要么导致返回 1 个文件(可能来自不同的上下文)。
有没有办法通过 ADAL4J 为 OneDrive 获取完全授权的访问令牌?
java - com.microsoft.sqlserver.jdbc.SQLServerException:MSI 令牌失败:无法从 MSI 端点获取令牌
我想使用带有 MSI(托管服务标识)身份验证的应用服务 API(Java)访问 Azure SQL 数据库。
我正在尝试找出如何将 Azure sql 与用于 Java 的 Azure App 服务的 MSI 连接起来。
这是我正在使用的连接字符串。
jdbc:sqlserver://mysqldb.database.windows.net:1433;database=TestDB;Authentication=ActiveDirectoryMsi;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
这是我使用的步骤:
- 创建 AAD 组
- 将 Azure Web 应用的 MI(托管标识)添加到此 AAD 组
- 将此组作为 Active Directory 管理员添加到 Azure SQL Server
为该组创建用户并赋予角色。
/li>JDBC 驱动程序的连接字符串。
azure - Azure AD 重定向到登录 URL 而不是重定向 URL
我正在将 Azure AD 登录身份验证集成到我的 Web 应用程序中。我在 azure 开发门户中创建了一个帐户并注册了我的应用程序详细信息。在 Azure 门户中的应用注册期间提供了以下详细信息。我为登录 URL 提供了我的 Web 应用程序的登录 URL
登录 URL -> https://my-sample-app/my.dashboard/
重定向网址是 -> https://my-sample-app/my.dashboard/azureLogin.html?
现在,当我登录到 portal.office.com 并使用我的凭据登录时,我可以在 office 365 登录页面中看到我的 Web 应用程序图标。当我选择我的网络应用程序图标时,我将被重定向到我的网络应用程序的登录页面,而不是重定向到应用程序注册期间提供的重定向 URL。
最初我没有提供登录 URL,但是一旦我在没有提供的情况下进行了测试,我得到了“为应用程序提供了未定义的登录 URL”错误。所以我为登录 URL 字段提供了我的 Web 应用程序的登录 URL,现在我正在重定向到我的 Web 应用程序的登录页面,而不是提到的重定向 URL
我使用 ADAL 库来获取访问令牌。下面是代码。
我确定问题不在于代码。请告知我在这里缺少的东西