我是azure活动目录(AAD)的新手,到目前为止,我已经在azure AD中创建了企业应用程序并设置了此应用程序,我为Single sign-on option
选择了集成的Windows auth(IWA)。我在此配置了app proxy,pre-authentication
设置为AAD
,internal URL
是我的基于java的Web应用程序URL。
另一方面,AAD连接器以联合身份安装为ADFS。
现在的流程是:当我点击User access URL
(企业应用程序的URL)时,它会对域验证提出质疑,并且在成功验证后,它会重定向到我的内部部署AD表单。成功验证ADFS后,它会重定向到我的Web应用程序。
现在我收到的回复是SAML响应。
我的问题是如何使用java读取此SAML响应,AFA我发现ADAL是一种方法。 here是我找到的示例项目。
但是在我的案例中没有发现这个有用。是否有任何其他方式来阅读此响应或任何修改。
问题可能很广泛:那么同样的任何建议或参考链接?
更新:
我的申请没有直接收到SAML
回复。通过app proxy收到的回复不是SAML
。或者我们可以在应用代理发送的响应中添加一些自定义标头。请查看下面的图片以便更好地理解
UPDATE2:
是否可以通过azure app proxy发送自定义标头?
目前正在接收标题
看起来您的设置可能没有问题,但目前Azure AD应用程序代理的限制是,它无法将SAML令牌传递给SSO的内部Web应用程序。
请查看下面的链接,看起来它是Azure AD团队的计划项目,您可以尝试通过Microsoft支持进行确认,并从中获取有关可能的解决方法的详细信息。
我希望这有帮助!
更新:以下是我从Azure AD反馈团队获得的响应中的一篇文章
第1部分:在应用程序代理中配置应用程序
步骤1:添加新的企业应用程序,并选择“本地应用程序”选项。使用作为应用程序标识符的内部URL以及您希望用户在外部使用时使用的外部URL填写应用程序信息。确保选择包含可以访问应用程序的连接器的连接器组 - 如果您只按照第0部分中的步骤操作并且尚未创建新的连接器组,则正确的组为“默认”。
步骤2:通过“用户和组”菜单将用户分配到应用程序
第2部分:配置SAML应用程序
第1步:添加另一个应用程序,但这次选择非库应用程序
步骤2:由于用户是通过Application Proxy应用程序分配的,因此无需在此处分配。在属性菜单中,关闭“需要用户分配”字段。
步骤3:在相应的菜单中配置单点登录设置。选择“基于SAML的登录”。提供应用程序的应用程序标识符。将回复URL作为应用程序代理外部URL(在第1部分,步骤1中配置)。选择用户标识符的类型并添加令牌的签名证书。您的应用程序现在可以使用了。它可以通过Application Proxy外部URL访问,也可以通过访问面板访问。
ADAL是用于OpenID Connect而非SAML的库。
看看Spring Security或OpenSAML的代码 - 包括开源代码和Java代码。
从本质上讲,它只是XML。
还有online tools会给你一些提示。