Tilslut IdentityServer med OpenID Connect

FoxIDs kan tilsluttes en IdentityServer med OpenID Connect og dermed autentificere slutbrugere i en IdentityServer.

Det er muligt at tilslutte en IdentityServer klient og læse claims fra ID token eller vælge en mere kompleks case hvor claims læses fra access token.

Sample IdentityServerOidcOpSample er konfigureret i FoxIDs test-corp med autentificeringsmetode navnet identityserver_oidc_op_sample. Du kan teste login (brugernavn alice og adgangskode alice) ved hjælp af IdentityServerOidcOpSample og AspNetCoreOidcAuthorizationCodeSample samples. Ved at klikke OIDC IdentityServer Log in i AspNetCoreOidcAuthorizationCodeSample applikationen. IdentityServerOidcOpSample sample er konfigureret med Implicit Flow for at muliggøre lokal test, brug Authorization Code Flow i produktion.

Se IdentityServer sample konfigurationen i FoxIDs Control: https://control.foxids.com/test-corp Få read adgang med brugeren reader@foxids.com og password gEh#V6kSw og vælg derefter Production miljøet og fanen Authentication.

Konfigurer IdentityServer

Dette afsnit beskriver, hvordan du konfigurerer en forbindelse med OpenID Connect Authorization Code flow og PKCE, som er det anbefalede OpenID Connect flow.

1 - Start med at oprette en OpenID Connect autentificeringsmetode i FoxIDs Control Client

  1. Tilføj navnet

Læs redirect URL'er

Det er nu muligt at læse Redirect URL og Post logout redirect URL.

2 - Gå derefter til IdentityServer konfigurationen og opret klienten

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,
    }
};

Kode fra IdentityServerOidcOpSample sample konfiguration.

3 - Gå tilbage til FoxIDs autentificeringsmetoden i FoxIDs Control Client

  1. Tilføj IdentityServer authority
  2. Tilføj profile og email scopes (muligvis andre eller flere scopes)
  3. Tilføj IdentityServer klientens client secret værdi som client secret
  4. Vælg show advanced
  5. Vælg use claims from ID token
  6. Tilføj de claims der overføres fra autentificeringsmetoden til applikationsregistreringerne. F.eks. email, email_verified, name, given_name, family_name, role og evt. access_token claim for at overføre IdentityServer access token
  7. Klik create

Det var det.

Den nye autentificeringsmetode kan nu vælges som en tilladt autentificeringsmetode i en applikationsregistrering. Applikationsregistreringen kan læse claims fra autentificeringsmetoden. Det er muligt at tilføje access_token claim for at inkludere IdentityServer access token som en claim i det udstedte access token.

Læs claims fra access token

Hvis du vil læse claims fra access token skal du tilføje en API resource og API scope. Og lade klienten bruge det nye scope.

1 - I IdentityServer konfigurationen

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");
}

Du kan fjerne AlwaysIncludeUserClaimsInIdToken = true fra klienten.

KODE fra IdentityServerOidcOpSample sample konfiguration.

2 - Gå derefter til FoxIDs Control Client

  1. Tilføj API scope some.api.access som et scope i FoxIDs autentificeringsmetode klienten
  2. Læs claims fra access token ved ikke at vælge use claims from ID token

Dit privatliv

Vi bruger cookies til at gøre din oplevelse på vores websites bedre. Klik på 'Acceptér alle cookies' for at acceptere brugen af cookies. For at fravælge ikke-nødvendige cookies, klik på 'Kun nødvendige cookies'.

Besøg vores privatlivspolitik for mere