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
IdentityServerOidcOpSamplejest skonfigurowany w FoxIDstest-corpz nazwą metody uwierzytelnianiaidentityserver_oidc_op_sample.
Możesz przetestować logowanie (nazwa użytkownikaalice, hasłoalice) używając przykładówIdentityServerOidcOpSampleiAspNetCoreOidcAuthorizationCodeSamplesamples. KliknijOIDC IdentityServer Log inw aplikacjiAspNetCoreOidcAuthorizationCodeSample.
PrzykładIdentityServerOidcOpSamplejest 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żytkownikiemreader@foxids.comi hasłemgEh#V6kSw, a następnie wybierz środowiskoProductioni 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
- Dodaj nazwę

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
- Dodaj authority IdentityServer
- Dodaj zakresy profile i email (opcjonalnie inne lub więcej zakresów)
- Dodaj wartość client secret klienta IdentityServer jako client secret
- Wybierz show advanced
- Wybierz używanie claimów z tokenu ID
- 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
- 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
- Dodaj zakres API
some.api.accessjako zakres w kliencie metody uwierzytelniania FoxIDs - Odczytuj claimy z access tokenu, nie wybierając używania claimów z tokenu ID