我有一个与Asp.net Core API通信的Angular应用程序。这是一个公共应用程序,表示用户未指定用户名和密码即可使用它。
但是我想使用IdentityServer4保护API免受直接操纵。当查看IS4上的各种凭证流时,客户端凭证看起来很合适。但是,那里的所有帖子都谈论授权代码流。
这是走下去的最佳途径还是一个坏主意?我该怎么办?
答案 0 :(得分:1)
这里的主要问题是“信任的质量”。通常,根本不可能使公共js客户端受信任。任何人都可以在浏览器中打开控制台,复制请求,将其粘贴到curl或邮递员中,然后调用api。但是,如果您只想阻止直接访问 get 方法而在标头中没有承载令牌,那么仅 Client Credentials 绰绰有余。否则,您必须实施一些特殊的操作,例如完全 custom grant ,或更简单的CustomTokenRequestValidator
,这些操作将从常规流程(包括客户凭据)中调用,并且可以在其中执行其他一些检查(两种方法均引用了here)。