【问题标题】:How to change my Azure AD app to confidential client? (not public client)如何将我的 Azure AD 应用程序更改为机密客户端? (非公共客户)
【发布时间】:2018-02-27 22:37:09
【问题描述】:

来自文档:Configurable token lifetimes in Azure Active Directory (Public Preview)

提到“机密客户”,刷新令牌是“until-revoked”。

机密 客户端是可以安全存储客户端密码的应用程序 (秘密)。他们可以证明请求来自客户端 应用程序,而不是来自恶意行为者。例如,一个网络应用程序是 机密客户端,因为它可以在网络上存储客户端机密 服务器。它没有暴露。因为这些流更安全, 颁发给这些流的刷新令牌的默认生命周期是 直到撤销,不能使用政策更改,也不会被 在自愿重置密码时被撤销。

所以,我的 Azure AD 应用程序是 Web 应用程序,那么,如何将我的 Azure AD 应用程序更改为“机密客户端”?我在 Azure AD 中找不到任何应用设置来设置“机密客户端”或“公共客户端”。

谢谢。

【问题讨论】:

    标签: azure oauth azure-active-directory


    【解决方案1】:

    关于[机密客户][1]

    机密 能够维护其凭据机密性的客户端(例如,在具有安全性的服务器上实现的客户端) 限制访问客户端凭据),或能够安全 使用其他方式进行客户端身份验证。

    本规范是围绕以下客户资料设计的:

    网络应用程序

    网络应用程序是在网络服务器上运行的机密客户端。 资源所有者通过呈现的 HTML 用户界面访问客户端 在资源所有者使用的设备上的用户代理中。客户端 凭据以及颁发给客户端的任何访问令牌都是 存储在 Web 服务器上,不会暴露给 资源所有者。

    这意味着 Native Application 和基于用户代理的应用程序是公共客户端,但 Web 应用程序是机密客户端。


    那么,如何将我的 Azure AD 应用更改为“机密客户端”?

    答案很明显:如果您创建的应用程序是Web APP/Web API,它只是一个机密客户端。否则,它是一个公共客户端。这取决于您创建的应用类型。

    希望这会有所帮助! [1]:https://www.rfc-editor.org/rfc/rfc6749#section-2.1

    【讨论】:

    • 谢谢,我还有一个问题:对于我的机密客户,我假设我可以使用 ADAL v3 库中的 AcquireTokenSilentAsync 函数来始终获取有效令牌? (使用此永久刷新令牌,旧令牌过期时会自动获取新令牌)
    • 嗨,@BoxVery。只是为了 SO 的规则,你最好打开一个新问题,你可以发布更多关于你的场景的细节,我们可以在那里讨论。
    【解决方案2】:

    Azure 门户中有一项设置可将应用程序公开为机密。默认情况下,它设置为否,这意味着应用程序是机密的。

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 2016-06-06
      • 2023-03-24
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-29
      • 2021-04-18
      • 1970-01-01
      相关资源
      最近更新 更多