Authentifizierung
OAuth 2.0 Client Credentials
Der empfohlene Weg für Service-to-Service Kommunikation:
hostBuilder.UseExternalTaskWorkers((context, options) =>
{
options.AuthenticateUsingOAuth20ClientCredentials();
options.ConfigureWorkers(context.Configuration.GetSection("ProcessCubeEngine"));
});{
"OAuth20ClientCredentialsLoginSettings": {
"AuthorityUrl": "https://auth.example.com",
"ClientId": "mein-client",
"ClientSecret": "geheim",
"Scopes": "engine"
}
}OAuth 2.0 Resource Owner Password Credentials
options.AuthenticateUsingOAuth20ResourceOwnerPasswordCredentials();Azure Client Credentials
options.AuthenticateUsingAzureClientCredentials();Standalone-Authentifizierung
Ohne Hosting-Extension kann die Authentifizierung direkt über einen IIdentityAccessor konfiguriert werden:
using ProcessCube.Engine.Identities;
// Eigenen IIdentityAccessor implementieren
public class SimpleIdentityAccessor : IIdentityAccessor
{
public SimpleIdentityAccessor(IIdentity identity) => Identity = identity;
public IIdentity Identity { get; }
public CancellationToken HasChanged => CancellationToken.None;
}
// Verwendung
IIdentityAccessor identityAccessor = new SimpleIdentityAccessor(
new SimpleIdentity { UserId = "user-id", Token = "bearer-token" });
IProcessInstancesClient client = ClientFactory.CreateProcessInstancesClient(engineUrl, identityAccessor);Identitätssystem
Konzepte
| Typ | Beschreibung |
|---|---|
IIdentity | Trägt ein Bearer-Token für die API-Authentifizierung |
IIdentityAccessor | Liefert die aktuelle Identität und signalisiert Änderungen über HasChanged |
AnonymousIdentity | Wird verwendet, wenn kein IIdentityAccessor angegeben wird |
TokenIdentityAccessor | Wird von den OAuth-Erweiterungen automatisch mit erneuerten Tokens versorgt |
Nächste Schritte
- External Task Workers — Worker mit Authentifizierung
- Erweiterte Konfiguration — Worker-Settings und Health Checks