Koble til IdentityServer med OpenID Connect

FoxIDs kan kobles til en IdentityServer med OpenID Connect og dermed autentisere sluttbrukere i en IdentityServer.

Det er mulig å koble til en IdentityServer klient og lese claims fra ID token eller velge et mer komplekst tilfelle hvor claims leses fra access token.

Sample IdentityServerOidcOpSample er konfigurert i FoxIDs test-corp med autentiseringsmetode navnet identityserver_oidc_op_sample. Du kan teste login (brukernavn alice og passord alice) ved å bruke IdentityServerOidcOpSample og AspNetCoreOidcAuthorizationCodeSample samples ved å klikke OIDC IdentityServer Log in i AspNetCoreOidcAuthorizationCodeSample applikasjonen. IdentityServerOidcOpSample sample er konfigurert med Implicit Flow for å muliggjøre lokal testing, bruk Authorization Code Flow i produksjon.

Se IdentityServer sample konfigurasjonen i FoxIDs Control: https://control.foxids.com/test-corp Få read tilgang med brukeren reader@foxids.com og passord gEh#V6kSw og velg deretter Production miljøet og fanen Authentication.

Konfigurer IdentityServer

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

1 - Start med å opprette en OpenID Connect autentiseringsmetode i FoxIDs Control Client

  1. Legg til navnet

Les redirect URL-er

Det er nå mulig å lese Redirect URL og Post logout redirect URL.

2 - Gå deretter til IdentityServer konfigurasjonen og opprett 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 konfigurasjon.

3 - Gå tilbake til FoxIDs autentiseringsmetoden i FoxIDs Control Client

  1. Legg til IdentityServer authority
  2. Legg til profile og email scopes (mulige andre eller flere scopes)
  3. Legg til IdentityServer klientens client secret verdi som client secret
  4. Velg show advanced
  5. Velg use claims from ID token
  6. Legg til claims som overføres fra autentiseringsmetoden til applikasjonsregistreringene. F.eks. email, email_verified, name, given_name, family_name, role og eventuelt access_token claim for å overføre IdentityServer access token
  7. Klikk create

Det var det.

Den nye autentiseringsmetoden kan nå velges som en tillatt autentiseringsmetode i en applikasjonsregistrering. Applikasjonsregistreringen kan lese claims fra autentiseringsmetoden. Det er mulig å legge til access_token claim for å inkludere IdentityServer access token som en claim i det utstedte access token.

Les claims fra access token

Hvis du vil lese claims fra access token må du legge til en API resource og API scope. Og la klienten bruke det nye scopet.

1 - I IdentityServer konfigurasjonen

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 konfigurasjon.

2 - Gå deretter til FoxIDs Control Client

  1. Legg til API scope some.api.access som et scope i FoxIDs autentiseringsmetode klienten
  2. Les claims fra access token ved å ikke velge use claims from ID token

Ditt personvern

Vi bruker cookies for å gjøre opplevelsen av nettstedene våre bedre. Klikk på 'Godta alle cookies' for å samtykke til bruk av cookies. For å reservere deg mot ikke-nødvendige cookies, klikk på 'Kun nødvendige cookies'.

Besøk vår personvernerklæring for mer