如何为 IdentityServer4 创建一个 client_secret?
How to create a client_secret for IdentityServer4?
我正在使用 IdentityServer4 创建身份验证服务器。
我正在创建一个将使用资源所有者密码凭据访问的客户端。
但我想知道 client_id 和 client_secret 应该是什么。
Should the client_id be a human-readable name of the client for e.g. app name or it should be a random number or string?
The client_secret is a string but what should be its value? A UUID? a random string? base64 string?
我浏览了 IdentityServer4 和 OpenId 文档,但找不到任何指导。
这是他们在文档中提供的示例。
new Client
{
ClientId = "client",
// no interactive user, use the clientid/secret for authentication
AllowedGrantTypes = GrantTypes.ClientCredentials,
// secret for authentication
ClientSecrets =
{
new Secret("secret".Sha256())
},
// scopes that client has access to
AllowedScopes = { "api1" }
}
正如您在示例中看到的,他们设置了一个人性化的 client_id。
- client_id:是每个客户端的public标识符。在授权服务器处理的所有客户端中,它必须是 唯一的 。它是 public 但最好不要被第三方猜到。
示例:
Github: 6779ef20e75817b79602
Google: 292085223830.apps.googleusercontent.com
Instagram: f2a1ed52710d4533bde25be6da03b6e3
Windows Live: 00000000400ECB04
- client_secret:只被客户端和授权服务器知道。它必须是随机的,不可猜测。生成的最佳方法是使用加密 安全库。您应该避免使用常见的 UUID 库。
阅读更多关于 IdentityServer4 的秘密here
我正在使用 IdentityServer4 创建身份验证服务器。
我正在创建一个将使用资源所有者密码凭据访问的客户端。
但我想知道 client_id 和 client_secret 应该是什么。
Should the client_id be a human-readable name of the client for e.g. app name or it should be a random number or string?
The client_secret is a string but what should be its value? A UUID? a random string? base64 string?
我浏览了 IdentityServer4 和 OpenId 文档,但找不到任何指导。
这是他们在文档中提供的示例。
new Client
{
ClientId = "client",
// no interactive user, use the clientid/secret for authentication
AllowedGrantTypes = GrantTypes.ClientCredentials,
// secret for authentication
ClientSecrets =
{
new Secret("secret".Sha256())
},
// scopes that client has access to
AllowedScopes = { "api1" }
}
正如您在示例中看到的,他们设置了一个人性化的 client_id。
- client_id:是每个客户端的public标识符。在授权服务器处理的所有客户端中,它必须是 唯一的 。它是 public 但最好不要被第三方猜到。 示例:
Github: 6779ef20e75817b79602
Google: 292085223830.apps.googleusercontent.com
Instagram: f2a1ed52710d4533bde25be6da03b6e3
Windows Live: 00000000400ECB04
- client_secret:只被客户端和授权服务器知道。它必须是随机的,不可猜测。生成的最佳方法是使用加密 安全库。您应该避免使用常见的 UUID 库。
阅读更多关于 IdentityServer4 的秘密here