需要IdentityServer3指导

时间:2016-04-29 04:22:13

标签: identityserver3

我有一个客户端拥有OpenIdConnect(OIDC)令牌的场景。 OIDC是从外部OIDC提供商发出的,我不是OIDC提供商,只是它的下游消费者。

目标是让客户端交换所说的OIDC令牌,用于临时凭证或accessstoken,这将使他们能够访问更具体的资源。

就我而言,OIDC代表一个用户。客户端具有ClientId / Secret,用于建立服务2服务信任。最后,我想要的东西看起来很像CustomGrant令牌请求。

static TokenResponse GetCustomGrantToken()
{
        var client = new TokenClient(
           token_endpoint,
           "custom_grant_client",
           "cd19ac6f-3bfa-4577-9579-da32fd15788a");

        var customParams = new Dictionary<string, string>
        {
            { "some_custom_parameter", "some_value" }
        };

        var result = client.RequestCustomGrantAsync("custom", "read", customParams).Result;
        return result;
}

我的customParams将包含我的用户的OIDC。

问题:我可以从GetCustomGrantToken调用中获取令牌,但后续Webapi调用无法通过授权。即Identity.isAuthenticated为false。

如果我获得了clientcredential令牌,那么一切正常。

static TokenResponse GetClientToken()
    {
        var client = new TokenClient(
            token_endpoint,
            "silicon",
            "F621F470-9731-4A25-80EF-67A6F7C5F4B8");

        return client.RequestClientCredentialsAsync("api1").Result;
    }

如果CustomGrantToken工作,我会将我的用户帐户信息放入索赔中,从而在后续的WebApi调用中为我提供上下文。

任何方向都会受到赞赏。

0 个答案:

没有答案