Ich habe fast herausgefunden, wie die verschiedenen Teile einer Authentifizierungs- und Autorisierungsserver-Architektur funktionieren. Ich denke wirklich, dass IdentityServer eine großartige Software ist.
Ich versuche meine Entdeckungen zusammenzufassen, um eine Basis für meine Fragen zu finden.
Wenn alles, was ich geschrieben habe, mehr und weniger korrekt ist, hier sind meine Fragen:
Nehmen wir an, dass ich in meinem Ressourcenserver eine Aktion mit einem ResourceAuthorize-Attribut wie folgt geschützt habe:
[ResourceAuthorize ("Lesen", "Aufträge")]
In meinem AuthorizationManager überprüfe ich das Vorhandensein eines Claims "order_read" oder eines Claims "api". Dies sind zwei verschiedene Bereiche, die in meinem AuthorizationServer definiert sind, einer für "Order Reading" und der letzte für einen vollständigen API-Zugriff. Der erste kann von Drittkunden gestellt werden, während der zweite nicht. Ist das eine gute Übung?
Ich kann nicht verstehen, was mein Klient mit dem id_token machen soll. Sollte ich das Problem ignorieren, da ich den OIDC-Token-Manager der js-Bibliothek verwende? Werden die Sicherheitskontrollen von dieser Bibliothek durchgeführt?
Danke für Ihre Klarstellungen!
Marco
Ja, du hast das Wesentliche davon. Wie für Ihre Fragen:
Wie sind Ansprüche in asp.net-Identitätstabellen definiert?
Das liegt an dir. IdentityServer fordert keine Identitätsverwaltungsbibliothek an. Mit dem Erweiterungspunkt IUserService
überbrücken Sie diese Lücke. Wir haben eine Starter-Version von IUserService
, aber es ist ein code-basiertes NuGet, so dass Sie es ändern können, um wirklich das zu tun, was Sie brauchen.
Ich kann nicht verstehen, was mein Klient mit dem id_token machen soll
Es wird hauptsächlich verwendet, um zur Abmeldezeit an IdentityServer zurückzusenden (um die Abmeldeanforderung zu authentifizieren).
Wenn meine Anwendung den Access Token präsentiert, wird die ClaimsIdentity generiert.
Es gibt Middleware (AccessTokenValidation), um das Zugriffstoken zu validieren. Das Ergebnis sind die Ansprüche aus dem Token, die dann in ein ClaimsIdentity
umgewandelt werden und dann für jede nachgeschaltete Verarbeitung (wie Ihren Web-API-Code) verfügbar gemacht werden.
Was bedeutet die Tabelle "ClientClaims"?
Die Client
-Konfiguration hat eine Claims
-Eigenschaft, wenn Sie im Auftrag des Clients Ansprüche stellen möchten. Überprüfen Sie die Dokumentation: Ссылка
Nehmen wir an, dass in meinem Ressourcenserver eine Aktion mit einem ResourceAuthorize-Attribut wie diesem
geschützt ist
Dies hat nichts mit IdentityServer zu tun und ist Teil der IdentityModel-Bibliothek. ResourceAuthorize ist ein Framework für die Verwendung des Benutzers, der Ressource und der Aktion, die bei der Entscheidung über das Autorisierungsergebnis berücksichtigt werden.
Tags und Links entity-framework identityserver3 asp.net-identity-2