我有一个公共(public) API,我想使用 Identity Server 3 来保护它的安全。
我有一个 MVC 应用程序和一个 Javascript 应用程序,我想确保只有这些客户端才能访问 API,无论用户/资源所有者是否已登录或已识别。使用 MVC 应用程序中的客户端凭据流很容易做到这一点,但使用隐式流似乎不可能。 ( http://oauthlib.readthedocs.io/en/latest/oauth2/grants/implicit.html ) <- 依赖于所识别的资源所有者。
有人知道这是否可行吗?我正在使用 oidc-token-manager。
非常感谢。
M。
最佳答案
只有在客户端“保密”的情况下,您才能安全地依赖该客户端的身份。这意味着客户端可以安全地存储其客户端 key 。
这对于基于服务器的应用程序来说是正确的(例如客户端信用流从服务器到服务器,或者由服务器调用的基于代码的流)。
对于超出您“控制”范围的客户端(例如 SPA 或桌面/移动应用程序),这是不可能的。
IdentityServer 始终包含 client_id
声明 - 但上述警告适用。
关于javascript - 隐式流和身份服务器 3 : Is it possible to grant a JavaScript client an access token without having the user log in?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38080709/