gpt4 book ai didi

postman - 对于使用混合授权类型的客户端,IdentityServer4 的有效 grant_type 值是什么?

转载 作者:行者123 更新时间:2023-12-03 06:35:41 27 4
gpt4 key购买 nike

我使用的是 IdentityServer4 包的 1.0.0 版。

"IdentityServer4": "1.0.0"

我创建了一个客户端
new Client
{
ClientId = "MobleAPP",
ClientName = "Moble App",
ClientUri= "http://localhost:52997/api/",
AllowedGrantTypes = GrantTypes.HybridAndClientCredentials,

ClientSecrets =
{
new Secret("SecretForMobleAPP".Sha256())
},

AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"api"
},
AllowOfflineAccess = true
}

和范围/ApiResources
public static IEnumerable<ApiResource> GetApiResources()
{
return new List<ApiResource>
{

new ApiResource("api", "My API")

};
}

使用以下用户/TestUser
public static List<TestUser> GetUsers()
{
return new List<TestUser>
{

new TestUser
{
SubjectId = "2",
Username = "bob",
Password = "password",

Claims = new []
{
new Claim(JwtClaimTypes.Name, "Bob Smith")
}
}
};
}

我正在尝试测试我从 Postman 设置的 IdentityServer 并确定 grant_type 键值对的可能值。

当我将 grant_type 设置为 client_credentials 并且不确定 grant_type 值是否还有其他选项时,我可以成功连接。

Working Postman configuration with grant_type set to client_credentials

最佳答案

简答
client_credentials是唯一grant_type您可以使用的值 直接针对 token 端点 使用混合和客户端凭据授予类型时。

更长的答案

客户端凭据授权类型是唯一一种允许您直接访问 token 端点的类型,这就是您在 Postman 示例中所做的。在这种情况下,身份验证是针对客户端本身完成的 - 即您注册的应用程序。

当您使用混合授权类型时,将针对最终用户(使用您的应用程序的用户)进行身份验证。在这种情况下,您不能直接点击端点 token ,但您必须发出 authorization request到身份服务器。

当您这样做时,您将不会使用 grant_type参数但 response_type参数,以指示 IdentityServer 您期望返回的内容。response_type 的可能值当您使用混合授权类型时可以找到 in IdentityServer constants - 它们是字典中的最后 3 项:

  • code id_token ,这将返回一个授权码和一个身份 token
  • code token ,返回授权码和访问 token
  • code id_token token ,返回授权码、身份 token 和访问 token

  • 获得授权代码后,您将能够通过点击 token 端点将其交换为访问 token 和刷新 token 。

    关于postman - 对于使用混合授权类型的客户端,IdentityServer4 的有效 grant_type 值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579804/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com