Logo
  • Home
  • Overview packages
  • Concepts and terminology

Tutorials

  • Require authentication by default
  • Handling token expiration
  • Security middlewares overview
  • Server to server communication
    • Overview
    • Client credentials token request from a Web host
    • Manual client credential token request
    • Service calling multiple external APIs

Code lab

  • Client credentials flow (server to server)
    • Using IHttpClientFactory and Duende AccessToken Management
    • Bearer token request using client assertion
    • Bearer token request using shared secret
    • DPoP token request
    • Manual token request with Duende IdentityModel
FHI authentication and authorization extensions
  • Code lab
  • Client credentials flow (server to server)
  • Bearer token request using shared secret
  • Edit on GitHub

Bearer token request using shared secret¶

This example demonstrates how to manually request a bearer token using the OAuth 2.0 client credentials flow with shared secret.

For a detailed explanation of the code flow, see the tutorial.

Note! Be careful with new HttpClient(), it is only for demo purposes.

In [ ]:
Copied!
#!csharp

using System.Net.Http;
using System.Net.Http.Headers;
using System.Collections.Generic;
using System.Text.Json;

using var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://demo.duendesoftware.com/connect/token")
{
    Content = new FormUrlEncodedContent(new Dictionary<string, string>
    {
        ["grant_type"] = "client_credentials",
        ["client_id"] = "m2m",
        ["client_secret"] = "secret",
        ["scope"] = "api"
    })
};

var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();

Console.WriteLine($"Bearer token response: {content}");
#!csharp using System.Net.Http; using System.Net.Http.Headers; using System.Collections.Generic; using System.Text.Json; using var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https://demo.duendesoftware.com/connect/token") { Content = new FormUrlEncodedContent(new Dictionary { ["grant_type"] = "client_credentials", ["client_id"] = "m2m", ["client_secret"] = "secret", ["scope"] = "api" }) }; var response = await client.SendAsync(request); var content = await response.Content.ReadAsStringAsync(); Console.WriteLine($"Bearer token response: {content}");
Previous Next

Built with MkDocs using a theme provided by Read the Docs.
GitHub « Previous Next »