【问题标题】:Can ADAL be used with AD FS instead of Azure AD?ADAL 能否与 AD FS 而不是 Azure AD 一起使用?
【发布时间】:2020-02-02 19:04:48
【问题描述】:

我已成功使用 ADAL library for Android 登录 Azure AD。我需要连接到 AD FS 而不是 Azure AD。 AD FS 不是云联合的。

我为 ADAL.js 找到了这个示例,该示例显然显示了如何针对 AD FS 进行身份验证: https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/development/single-page-application-with-ad-fs

  1. Android 版本也可以连接到 AD FS,还是只能在 ADAL 的 JavaScript 版本中实现?
  2. 如果可能,如何注册应用程序以及在auth_config.json 文件中放入什么? (任何示例将不胜感激)

【问题讨论】:

    标签: android active-directory azure-active-directory adal msal


    【解决方案1】:

    您使用的是 ADAL 还是 MSAL? auth_config.json 文件仅与 MSAL 相关。 ADAL 可以通过在 AD FS > 应用程序组文件夹中将应用程序注册为“本机应用程序”直接针对 AD FS 进行身份验证。您必须拥有管理员帐户或足够的权限才能进行此注册。从概念上讲,这类似于您链接的 JS 文档,但是它使用 Authorization Code Grant Flow 而不是使用 Implicit Grant Flow。不幸的是,还没有针对 Android 的明确文档。如果您的 AD FS 环境是云联合的,您可以关注 docs to use MSAL

    【讨论】:

    • 我正在使用 MSAL,它是 ADAL (v1) 的较新 v2 版本。我不知道该使用哪一个,所以我选择了最新版本。我需要连接的 AD FS 不是云联合的。我应该使用 v1 吗?显然 v2 适用于工作帐户和个人帐户,而 v1 仅适用于工作帐户。
    • 建议使用 MSAL,因为它是最新且受支持的,而且 v2 为各种类型的帐户提供一个端点是正确的。但是,目前要将 MSAL 与 AD FS 一起使用,您必须是云联合的。 ADAL 可以通过具有适当权限的门户与 AD FS 连接。
    • 年龄越大越好。好的,这回答了问题 #1。至于#2,我读过official github sample in ADAL,他们使用的是ADAL v1.14。 ADAL v2 alpha 具有完全不同的AuthenticationContext.acquireToken API,看起来更像 MSAL。我应该使用哪个版本?您将如何配置 AD FS URL?这是我需要覆盖的权限参数吗?
    【解决方案2】:

    是的,ADAL 可以与 ADFS 一起使用。您需要使用管理控制台的应用程序组文件夹在 ADFS 中注册应用程序。例如:overviewADFS setup details

    【讨论】:

    • 所有这些步骤都适用于 AD 管理员。我只是一个客户端开发人员。我需要的是在客户端配置库。在 ADAL for Android 中,它是使用 JSON 文件完成的。我必须提供几个字段,例如client_idredirect_uri(我假设它可以是本机的任意字符串)和authorities。最后一个字段是最复杂的,它包含typeaudience 以及其中的typetenant_id。我不知道如何填写这些字段,我必须向广告人员索取这些信息。是否有任何适用于 Android 的示例?
    • Alternate details on setting up an ADFS application group。您将需要服务器上的管理员来执行此操作。这类似于在 AAD 中创建应用注册。
    • AAD 和 AD FS 之间的唯一区别应该是 MetadataEndpoint = ConfigurationManager.AppSettings["ida:AdfsMetadataEndpoint"]。该值类似于https://sts.mycompany.com/adfs/.well-known/openid-configuration
    • @MisterSmith 您能否使用 ADAL 实现 ADFS。从 Android 的角度来看,为了成功进行身份验证,我们需要执行哪些操作?如果可能的话你能分享一些代码sn-ps吗?
    猜你喜欢
    • 2017-01-09
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多