Verbind IdentityServer met OpenID Connect
FoxIDs kan met een IdentityServer worden verbonden via OpenID Connect en daardoor eindgebruikers authenticeren in een IdentityServer.
Het is mogelijk om een IdentityServer client te verbinden en claims uit het ID token te lezen of een complexere case te kiezen waarin claims uit het access token worden gelezen.
De sample
IdentityServerOidcOpSampleis geconfigureerd in FoxIDstest-corpmet de authenticatiemethode naamidentityserver_oidc_op_sample. Je kunt login testen (gebruikersnaamaliceen wachtwoordalice) met deIdentityServerOidcOpSampleen deAspNetCoreOidcAuthorizationCodeSamplesamples door opOIDC IdentityServer Log inte klikken in deAspNetCoreOidcAuthorizationCodeSampleapplicatie. DeIdentityServerOidcOpSamplesample is geconfigureerd met Implicit Flow om lokale tests mogelijk te maken, gebruik Authorization Code Flow in productie.
Bekijk de IdentityServer sample configuratie in FoxIDs Control: https://control.foxids.com/test-corp Vraag read toegang aan met gebruiker
reader@foxids.comen wachtwoordgEh#V6kSwen selecteer daarna deProductionomgeving en het tabbladAuthentication.
IdentityServer configureren
Dit hoofdstuk beschrijft hoe je een verbinding configureert met OpenID Connect Authorization Code flow en PKCE, wat de aanbevolen OpenID Connect flow is.
1 - Begin met het maken van een OpenID Connect authenticatiemethode in FoxIDs Control Client
- Voeg de naam toe

Het is nu mogelijk om Redirect URL en Post logout redirect URL te lezen.
2 - Ga daarna naar de IdentityServer configuratie en maak de 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,
}
};
Code uit de IdentityServerOidcOpSample sample configuratie.
3 - Ga terug naar de FoxIDs authenticatiemethode in FoxIDs Control Client
- Voeg de IdentityServer authority toe
- Voeg profile en email scopes toe (mogelijk andere of meer scopes)
- Voeg de client secret waarde van de IdentityServer client toe als client secret
- Selecteer show advanced
- Selecteer use claims from ID token
- Voeg de claims toe die worden overgedragen van de authenticatiemethode naar de applicatieregistraties. Bijv. email, email_verified, name, given_name, family_name, role en eventueel de access_token claim om het IdentityServer access token door te geven
- Klik create
Dat is alles.
De nieuwe authenticatiemethode kan nu worden geselecteerd als toegestane authenticatiemethode in een applicatieregistratie. De applicatieregistratie kan de claims lezen uit de authenticatiemethode. Het is mogelijk om de access_token claim toe te voegen om het IdentityServer access token op te nemen als claim in het uitgegeven access token.
Claims uit access token lezen
Als je claims uit het access token wilt lezen, moet je een API resource en API scope toevoegen. En de client het nieuwe scope laten gebruiken.
1 - In de IdentityServer configuratie
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");
}
Je kunt AlwaysIncludeUserClaimsInIdToken = true uit de client verwijderen.
Code uit de IdentityServerOidcOpSample sample configuratie.
2 - Ga daarna naar FoxIDs Control Client
- Voeg de API scope
some.api.accesstoe als scope in de FoxIDs authenticatiemethode client - Lees claims uit het access token door use claims from ID token niet te selecteren