我是天蓝色活动目录(AAD)的新手,到目前为止,我已经在天蓝色AD中创建了企业应用程序,并且对该应用程序进行了设置,我为Single sign-on option
选择了集成的Windows auth(IWA)。我已经在其中配置了应用程序代理,并且pre-authentication
设置为AAD
,而internal URL
是基于Java的Web应用程序URL。
在另一侧,以联合身份验证(ADFS)的形式安装AAD连接器。
现在的流程是:当我点击User access URL
(企业应用程序的URL)时,它会挑战域验证,并在成功验证后将其重定向到我的本地AD表单。成功验证ADFS后,它会重定向到我的Web应用。
现在我收到的响应是SAML响应。
我的问题是如何使用java读取此SAML响应,我发现ADAL是这样做的一种方法。 here是我发现的示例项目。
但是在我看来,这没有用。是通过其他任何方式读取此响应或进行任何修改。
问题可能很广泛:那么是否有相同的建议或参考链接?
更新:
我的应用程序未直接收到SAML
响应。通过应用代理接收的响应不是SAML
。或者我们可以添加一些自定义标头作为应用代理发送的响应。请在下面找到图片以更好地了解
Update2:
是否可以发送自定义标头以响应Azure应用代理发送的邮件?
当前接收的标头是
答案 0 :(得分:1)
看起来您的设置可能没有问题,但是当前对Azure AD应用程序代理有一个限制,即它无法将SAML令牌传递给内部Web应用程序进行SSO。
请查看下面的链接,这似乎是Azure AD团队的计划中项目,您可以尝试与Microsoft支持确认这一点,并从中获取有关可能的解决方法的详细信息。
我希望这会有所帮助!
应用程序代理-SAML作为SSO选项 https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/33318022-app-proxy-saml-as-sso-option
他们在这里提到这项工作已经开始,并且甚至提出了解决方法并分享联系信息以询问更多详细信息。
启用SAML令牌以通过Azure应用程序代理流到内部站点 https://feedback.azure.com/forums/374982-azure-active-directory-application-requests/suggestions/19204666-enable-saml-tokens-to-flow-through-azure-applicati
这一个人更详细地解释了问题
更新:这是我从Azure AD反馈团队收到的回复中的内容
第1部分:在应用程序代理中配置应用程序
步骤1:添加一个新的企业应用程序,然后选择“本地应用程序”选项。使用作为应用程序标识符的内部URL以及您希望用户在外部时使用的外部URL填写应用程序信息。确保选择包含可访问应用程序的连接器的连接器组-如果您仅遵循第0部分中的步骤并且尚未创建新的连接器组,则正确的组为“默认”。
第2步:通过“用户和组”菜单将用户分配给应用程序
第2部分:配置SAML应用
第1步:添加另一个应用程序,但是这次选择“非图库应用程序”
第2步:由于用户是通过Application Proxy应用程序分配的,因此无需在此处分配用户。在属性菜单中,关闭“需要用户分配”字段。
步骤3:在相应菜单中配置“单点登录”设置。选择“基于SAML的登录”。提供您的应用程序的应用程序标识符。将Reply URL作为Application Proxy外部URL(在第1部分,第1步中配置)。选择用户标识符的类型,并添加令牌的签名证书。 您的应用程序现在可以使用了。可以通过应用程序代理外部URL或通过访问面板来访问它。
答案 1 :(得分:0)
ADAL是用于OpenID Connect而非SAML的库。
看看Spring Security或OpenSAML的代码-开源和Java。
本质上,它只是XML。
还有online tools会给您一些提示。