Mit IdentityServer über OpenID Connect verbinden
FoxIDs kann mit einem IdentityServer über OpenID Connect verbunden werden und damit Endbenutzer in einem IdentityServer authentifizieren.
Es ist möglich, einen IdentityServer client anzubinden und claims aus dem ID token zu lesen oder einen komplexeren Fall zu wählen, in dem claims aus dem access token gelesen werden.
Das sample
IdentityServerOidcOpSampleist in FoxIDstest-corpmit dem Authentifizierungsmethoden Namenidentityserver_oidc_op_samplekonfiguriert. Sie können den Login (Benutzernamealiceund Passwortalice) mit denIdentityServerOidcOpSampleundAspNetCoreOidcAuthorizationCodeSamplesamples testen, indem SieOIDC IdentityServer Log inin derAspNetCoreOidcAuthorizationCodeSampleApplikation anklicken. DasIdentityServerOidcOpSamplesample ist mit Implicit Flow konfiguriert, um lokale Tests zu ermöglichen, verwenden Sie in der Produktion Authorization Code Flow.
Sehen Sie sich die IdentityServer sample Konfiguration in FoxIDs Control an: https://control.foxids.com/test-corp Erhalten Sie read Zugriff mit dem Benutzer
reader@foxids.comund dem PasswortgEh#V6kSwund wählen Sie anschließend dieProductionUmgebung und die RegisterkarteAuthentication.
IdentityServer konfigurieren
Dieses Kapitel beschreibt, wie Sie eine Verbindung mit OpenID Connect Authorization Code flow und PKCE konfigurieren, was der empfohlene OpenID Connect flow ist.
1 - Beginnen Sie mit der Erstellung einer OpenID Connect Authentifizierungsmethode in FoxIDs Control Client
- Fügen Sie den Namen hinzu

Es ist nun möglich, Redirect URL und Post logout redirect URL zu lesen.
2 - Gehen Sie dann zur IdentityServer Konfiguration und erstellen Sie den 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 aus der IdentityServerOidcOpSample sample Konfiguration.
3 - Gehen Sie zurück zur FoxIDs Authentifizierungsmethode in FoxIDs Control Client
- Fügen Sie die IdentityServer authority hinzu
- Fügen Sie profile und email scopes hinzu (mögliche andere oder weitere scopes)
- Fügen Sie den client secret Wert des IdentityServer client als client secret hinzu
- Wählen Sie show advanced
- Wählen Sie use claims from ID token
- Fügen Sie die claims hinzu, die von der Authentifizierungsmethode an die Applikationsregistrierungen übertragen werden. Z.B. email, email_verified, name, given_name, family_name, role und ggf. access_token claim, um das IdentityServer access token zu übertragen
- Klicken Sie create
Das war's.
Die neue Authentifizierungsmethode kann nun als zulässige Authentifizierungsmethode in einer Applikationsregistrierung ausgewählt werden. Die Applikationsregistrierung kann die claims aus der Authentifizierungsmethode lesen. Es ist möglich, den access_token claim hinzuzufügen, um das IdentityServer access token als claim im ausgegebenen access token zu inkludieren.
Claims aus access token lesen
Wenn Sie claims aus dem access token lesen möchten, müssen Sie eine API resource und API scope hinzufügen. Und den client das neue scope verwenden lassen.
1 - In der IdentityServer Konfiguration
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");
}
Sie können AlwaysIncludeUserClaimsInIdToken = true vom client entfernen.
Code aus der IdentityServerOidcOpSample sample Konfiguration.
2 - Gehen Sie dann zu FoxIDs Control Client
- Fügen Sie das API scope
some.api.accessals scope in den FoxIDs Authentifizierungsmethoden client hinzu - Lesen Sie claims aus access token, indem Sie use claims from ID token nicht auswählen