Verbind IdentityServer met OpenID Connect

FoxIDs kan met een IdentityServer worden verbonden via OpenID Connect en daardoor eindgebruikers authenticeren in een IdentityServer.

Het is mogelijk om een IdentityServer client te verbinden en claims uit het ID token te lezen of een complexere case te kiezen waarin claims uit het access token worden gelezen.

De sample IdentityServerOidcOpSample is geconfigureerd in FoxIDs test-corp met de authenticatiemethode naam identityserver_oidc_op_sample. Je kunt login testen (gebruikersnaam alice en wachtwoord alice) met de IdentityServerOidcOpSample en de AspNetCoreOidcAuthorizationCodeSample samples door op OIDC IdentityServer Log in te klikken in de AspNetCoreOidcAuthorizationCodeSample applicatie. De IdentityServerOidcOpSample sample is geconfigureerd met Implicit Flow om lokale tests mogelijk te maken, gebruik Authorization Code Flow in productie.

Bekijk de IdentityServer sample configuratie in FoxIDs Control: https://control.foxids.com/test-corp Vraag read toegang aan met gebruiker reader@foxids.com en wachtwoord gEh#V6kSw en selecteer daarna de Production omgeving en het tabblad Authentication.

IdentityServer configureren

Dit hoofdstuk beschrijft hoe je een verbinding configureert met OpenID Connect Authorization Code flow en PKCE, wat de aanbevolen OpenID Connect flow is.

1 - Begin met het maken van een OpenID Connect authenticatiemethode in FoxIDs Control Client

  1. Voeg de naam toe

Lees redirect URLs

Het is nu mogelijk om Redirect URL en Post logout redirect URL te lezen.

2 - Ga daarna naar de IdentityServer configuratie en maak de client

yield return new Client
{
    ClientId = "some_identityserver_app",

    AllowedGrantTypes = GrantTypes.Code,
    RequirePkce = true,
    ClientSecrets =
    {
        new Secret("BpCbINKwxELM ... eVpMClM84Rr0".Sha256())
    },

    AlwaysIncludeUserClaimsInIdToken = true,

    RedirectUris = { "https://foxids.com/test-corp/-/(some_identityserver_app)/oauth/authorizationresponse" },
    PostLogoutRedirectUris = { "https://foxids.com/test-corp/-/(some_identityserver_app)/oauth/endsessionresponse" },

    AllowedScopes = new List<string>
    {
        IdentityServerConstants.StandardScopes.OpenId,
        IdentityServerConstants.StandardScopes.Profile,
        IdentityServerConstants.StandardScopes.Email,
    }
};

Code uit de IdentityServerOidcOpSample sample configuratie.

3 - Ga terug naar de FoxIDs authenticatiemethode in FoxIDs Control Client

  1. Voeg de IdentityServer authority toe
  2. Voeg profile en email scopes toe (mogelijk andere of meer scopes)
  3. Voeg de client secret waarde van de IdentityServer client toe als client secret
  4. Selecteer show advanced
  5. Selecteer use claims from ID token
  6. Voeg de claims toe die worden overgedragen van de authenticatiemethode naar de applicatieregistraties. Bijv. email, email_verified, name, given_name, family_name, role en eventueel de access_token claim om het IdentityServer access token door te geven
  7. Klik create

Dat is alles.

De nieuwe authenticatiemethode kan nu worden geselecteerd als toegestane authenticatiemethode in een applicatieregistratie. De applicatieregistratie kan de claims lezen uit de authenticatiemethode. Het is mogelijk om de access_token claim toe te voegen om het IdentityServer access token op te nemen als claim in het uitgegeven access token.

Claims uit access token lezen

Als je claims uit het access token wilt lezen, moet je een API resource en API scope toevoegen. En de client het nieuwe scope laten gebruiken.

1 - In de IdentityServer configuratie

public IEnumerable<ApiResource> GetApiResources()
{
    yield return new ApiResource("some.api", "Some API")
    {
        UserClaims = new[] { "email", "email_verified", "family_name", "given_name", "name", "role" },

        Scopes = new List<string>
        {
            "some.api.access"
        }
    };
}

public IEnumerable<ApiScope> GetApiScopes()
{
    yield return new ApiScope("some.api.access", "Some API scope");
}

Je kunt AlwaysIncludeUserClaimsInIdToken = true uit de client verwijderen.

Code uit de IdentityServerOidcOpSample sample configuratie.

2 - Ga daarna naar FoxIDs Control Client

  1. Voeg de API scope some.api.access toe als scope in de FoxIDs authenticatiemethode client
  2. Lees claims uit het access token door use claims from ID token niet te selecteren

Uw privacy

We gebruiken cookies om uw ervaring op onze websites te verbeteren. Klik op de knop 'Alle cookies accepteren' om akkoord te gaan met het gebruik van cookies. Om niet-noodzakelijke cookies te weigeren, klikt u op 'Alleen noodzakelijke cookies'.

Bezoek onze privacyverklaring voor meer informatie