Connect to IdentityServer with OpenID Connect

FoxIDs puo essere collegato a un IdentityServer con OpenID Connect e quindi autenticare utenti finali in un IdentityServer.

E possibile collegare sia un client IdentityServer e leggere i claim dall'ID token sia selezionare un caso piu complesso in cui i claim vengono letti dall'access token.

Il sample IdentityServerOidcOpSample e configurato nel FoxIDs test-corp con il nome del metodo di autenticazione identityserver_oidc_op_sample.
Puoi testare il login, username alice e password alice, usando i sample IdentityServerOidcOpSample e AspNetCoreOidcAuthorizationCodeSample, facendo clic su OIDC IdentityServer Log in nell'applicazione AspNetCoreOidcAuthorizationCodeSample.
Il sample IdentityServerOidcOpSample e configurato con Implicit Flow per consentire il test locale; in produzione usa Authorization Code Flow.

Dai un'occhiata alla configurazione sample IdentityServer in FoxIDs Control: https://control.foxids.com/test-corp
Ottieni accesso in lettura con l'utente reader@foxids.com e la password gEh#V6kSw, poi seleziona l'ambiente Production e la scheda Authentication.

Configure IdentityServer

Questo capitolo descrive come configurare una connessione con OpenID Connect Authorization Code flow e PKCE, che e il flusso OpenID Connect raccomandato.

1 - Inizia creando un metodo di autenticazione OpenID Connect in FoxIDs Control Client

  1. Aggiungi il nome

Read the redirect URLs

Ora e possibile leggere Redirect URL e Post logout redirect URL.

2 - Poi vai nella configurazione IdentityServer e crea il 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,
    }
};

Codice preso dalla configurazione sample IdentityServerOidcOpSample sample.

3 - Torna al metodo di autenticazione FoxIDs in FoxIDs Control Client

  1. Aggiungi l'authority di IdentityServer
  2. Aggiungi gli scope profile ed email, eventualmente altri o ulteriori scope
  3. Aggiungi il valore client secret del client IdentityServer come client secret
  4. Seleziona show advanced
  5. Seleziona l'uso dei claim dall'ID token
  6. Aggiungi i claim che verranno trasferiti dal metodo di autenticazione alle registrazioni applicative. Ad esempio email, email_verified, name, given_name, family_name, role e possibilmente il claim access_token per trasferire l'access token IdentityServer
  7. Fai clic su create

E tutto, hai finito.

Il nuovo metodo di autenticazione puo ora essere selezionato come metodo di autenticazione consentito in una registrazione applicativa.
La registrazione applicativa puo leggere i claim dal metodo di autenticazione. E possibile aggiungere il claim access_token per includere l'access token IdentityServer come claim nell'access token emesso.

Read claims from access token

Se vuoi leggere i claim dall'access token devi aggiungere una API resource e un API scope, e fare in modo che il client usi il nuovo scope.

1 - Nella configurazione IdentityServer

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

Puoi rimuovere AlwaysIncludeUserClaimsInIdToken = true dal client.

Codice preso dalla configurazione sample IdentityServerOidcOpSample sample.

2 - Poi vai in FoxIDs Control Client

  1. Aggiungi l'API scope some.api.access come scope nel client del metodo di autenticazione FoxIDs
  2. Leggi i claim dall'access token non selezionando l'uso dei claim dall'ID token
La tua privacy

La tua privacy

Usiamo i cookie per migliorare la tua esperienza sui nostri siti. Fai clic sul pulsante 'Accetta tutti i cookie' per acconsentire all'uso dei cookie. Per rifiutare i cookie non essenziali, fai clic su 'Solo cookie necessari'.

Visita la nostra pagina di Informativa sulla privacy per saperne di più