我们正在使用EntityFramework Core来存储配置数据。什么是商店客户机密与客户一起使用?或者我们可以稍后添加/修改客户机密码吗?
/mnt/c/path/to/git
答案 0 :(得分:1)
在以编程方式请求令牌时,您将需要秘密才能访问Token Endpoint。
例如,您可以使用IdentityModel库:
var client = new TokenClient(
doc.TokenEndpoint,
"client_id",
"secret");
var response = await client.RequestClientCredentialsAsync("scope");
var token = response.AccessToken;
答案 1 :(得分:0)
虽然Gavin Sutherland的回答解释了如何使用客户机密,但我相信问题更多的是它们存在的原因。基本上,将客户端ID和客户端密钥视为用户名/密码,使特定客户端应用程序能够启动OpenID Connect请求(使用其他IdentityServer Client
配置元素来定义允许哪些请求。)
您可以更改机密,但同步IdentityServer和客户端应用程序之间的秘密是一个手动过程。 (这不像某些关键的轮换场景,你可以在一段时间内激活多个秘密,在所有客户端更新后删除旧的秘密,如果这就是你的想法。)
如果您查看任何OIDC / OAuth2第三方身份提供商(Google,Facebook等),他们都会通过发布与特定客户相关的客户ID和机密来运营(通常这意味着特定域)。