Połącz z IdentityServer za pomocą OpenID Connect

FoxIDs można połączyć z IdentityServer przy użyciu OpenID Connect, aby uwierzytelniać użytkowników końcowych w IdentityServer.

Możesz podłączyć klienta IdentityServer i odczytywać claimy z tokenu ID albo wybrać bardziej złożony wariant, w którym claimy są odczytywane z access tokenu.

Przykład IdentityServerOidcOpSample jest skonfigurowany w FoxIDs test-corp z nazwą metody uwierzytelniania identityserver_oidc_op_sample.
Możesz przetestować logowanie (nazwa użytkownika alice, hasło alice) używając przykładów IdentityServerOidcOpSample i AspNetCoreOidcAuthorizationCodeSample samples. Kliknij OIDC IdentityServer Log in w aplikacji AspNetCoreOidcAuthorizationCodeSample.
Przykład IdentityServerOidcOpSample jest skonfigurowany z Implicit Flow dla testów lokalnych; w produkcji używaj Authorization Code Flow.

Zobacz konfigurację przykładu IdentityServer w FoxIDs Control: https://control.foxids.com/test-corp
Uzyskaj dostęp do odczytu użytkownikiem reader@foxids.com i hasłem gEh#V6kSw, a następnie wybierz środowisko Production i kartę Authentication.

Skonfiguruj IdentityServer

Ten rozdział opisuje, jak skonfigurować połączenie z przepływem OpenID Connect Authorization Code i PKCE, który jest zalecanym przepływem OpenID Connect.

1 - Zacznij od utworzenia metody uwierzytelniania OpenID Connect w FoxIDs Control Client

  1. Dodaj nazwę

Read the redirect URLs

Teraz możesz odczytać Redirect URL i Post logout redirect URL.

2 - Następnie przejdź do konfiguracji IdentityServer i utwórz klienta

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

Kod z konfiguracji przykładu IdentityServerOidcOpSample.

3 - Wróć do metody uwierzytelniania FoxIDs w FoxIDs Control Client

  1. Dodaj authority IdentityServer
  2. Dodaj zakresy profile i email (opcjonalnie inne lub więcej zakresów)
  3. Dodaj wartość client secret klienta IdentityServer jako client secret
  4. Wybierz show advanced
  5. Wybierz używanie claimów z tokenu ID
  6. Dodaj claimy, które będą przekazywane z metody uwierzytelniania do rejestracji aplikacji, np. email, email_verified, name, given_name, family_name, role oraz ewentualnie claim access_token, aby przekazywać access token IdentityServer
  7. Kliknij create

To wszystko, gotowe.

Nowa metoda uwierzytelniania może zostać wybrana jako dozwolona metoda uwierzytelniania w rejestracji aplikacji.
Rejestracja aplikacji może odczytywać claimy z metody uwierzytelniania. Można dodać claim access_token, aby uwzględnić access token IdentityServer jako claim w wystawianym access tokenie.

Odczyt claimów z access tokenu

Jeśli chcesz odczytywać claimy z access tokenu, musisz dodać zasób API i zakres API, a następnie pozwolić klientowi używać nowego zakresu.

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

Możesz usunąć AlwaysIncludeUserClaimsInIdToken = true z klienta.

Kod z konfiguracji przykładu IdentityServerOidcOpSample.

2 - Następnie przejdź do FoxIDs Control Client

  1. Dodaj zakres API some.api.access jako zakres w kliencie metody uwierzytelniania FoxIDs
  2. Odczytuj claimy z access tokenu, nie wybierając używania claimów z tokenu ID

Twoja prywatność

Używamy plików cookie, aby poprawić korzystanie z naszych stron internetowych. Kliknij przycisk „Akceptuj wszystkie pliki cookie”, aby wyrazić zgodę na ich użycie. Aby zrezygnować z nieistotnych plików cookie, kliknij „Tylko niezbędne pliki cookie”.

Odwiedź naszą politykę prywatności, aby dowiedzieć się więcej