gpt4 book ai didi

java - 使用 OAuth2.0 或 Azure Active Directory 保护 REST API

转载 作者:行者123 更新时间:2023-12-02 06:48:27 24 4
gpt4 key购买 nike

我有一个 REST API,可以从 Web 应用程序中调用它来获取结果。我有一个客户端只要求我的 API,但我无法在没有任何安全性的情况下公开我的 API。显然,我也必须在我的应用程序中使用它,到目前为止,API 并不安全,我希望我的客户端使用有效的凭据来使用我的 API,无论是 OAuth 2.0、JWT、证书还是一些额外的机制。我怎样才能实现这个目标,任何使用 Azure 的 Java 工作示例都可以,并且它不应该妨碍我现有的 WebApp,因为它使用 API 来达到自己的目的。提前致谢。

最佳答案

我尝试这样做,甚至完成了任务,但最终发现它对我的情况没有提供太多值(value)。就我而言,API 是通过长时间运行的后台任务访问的,而人工登录是不切实际的。现在应用程序无法登录Azure,必须通过浏览器应用程序来完成,该浏览器应用程序受到各种可能的方式保护以防止自动登录。除此之外,Microsoft 针对此类任务的解决方案是 shared secret-protected token这本质上意味着应用程序和 Azure 共享一个 secret (由 Azure 生成的密码)。这与您存储和检查密码的情况没有太大区别。

除此之外,还有 Azure Active Directory 和 Azure Active Directory v2.0 的问题。这有点令人困惑,因为两种解决方案都基于 OAuth2.0 token ,但 Azure AD v2.0 确实是一个非常不同的野兽。首先,在撰写此答案时,Azure AD v2.0 token 无法解码,它们只能由 Microsoft 服务使用。因此,如果您想知道登录的用户是谁,您需要将 token 传递给 Graph API,并且假设您有登录的用户。对于 Azure AD, token 可以由您的应用程序解码和验证,see this demonstration application, how to do it

总而言之,我建议仅当您为其提供登录服务的应用程序是用户在登录后与之交互的面向用户的应用程序时,才使用 Azure token 保护您的 API。如果它是长时间运行的服务器类型任务,则使用 Azure AD 保护它是毫无意义的。

关于java - 使用 OAuth2.0 或 Azure Active Directory 保护 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43201584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com