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
IdentityServerOidcOpSampleer konfigurert i FoxIDstest-corpmed autentiseringsmetode navnetidentityserver_oidc_op_sample. Du kan teste login (brukernavnaliceog passordalice) ved å brukeIdentityServerOidcOpSampleogAspNetCoreOidcAuthorizationCodeSamplesamples ved å klikkeOIDC IdentityServer Log iniAspNetCoreOidcAuthorizationCodeSampleapplikasjonen.IdentityServerOidcOpSamplesample 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.comog passordgEh#V6kSwog velg deretterProductionmiljøet og fanenAuthentication.
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
- Legg til navnet

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
- Legg til IdentityServer authority
- Legg til profile og email scopes (mulige andre eller flere scopes)
- Legg til IdentityServer klientens client secret verdi som client secret
- Velg show advanced
- Velg use claims from ID token
- 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
- 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
- Legg til API scope
some.api.accesssom et scope i FoxIDs autentiseringsmetode klienten - Les claims fra access token ved å ikke velge use claims from ID token