客户机密的用途是什么?

时间:2018-01-24 09:29:46

标签: identityserver4

我们正在使用EntityFramework Core来存储配置数据。什么是商店客户机密与客户一起使用?或者我们可以稍后添加/修改客户机密码吗?

/mnt/c/path/to/git

2 个答案:

答案 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和机密来运营(通常这意味着特定域)。