Gibt es eine Einschränkung in IdentityServer, dass Bereiche nur zu einer einzigen ApiResource gehören können?IdentityServer 4: Sind Scopes einzigartig für die ApiResource?
Es scheint mir, dass IdentityServer eine Liste von Zielgruppen erstellt, die die Liste der zulässigen Bereiche verwenden, um die ApiResources nachzuschlagen, zu denen sie gehören, und dass jeder Bereich nur zu einer einzigen ApiResource gehört.
haben wir folgenden Satz von ApiResources und Geltungsbereiche definiert:
ApiResource Scopes
------------------------------
api/Orders api/Orders
api/Products api/Producs
, die einen schönen Satz von Aud (ience) und Umfang Werte in unserer JWT produeces:
aud:
api/Orders
api/Products
scope:
api/Orders
api/Products
Wenn jedoch Wir haben den Fehler gemacht, die Konfiguration zu verpfuschen, indem wir den gleichen Bereich für beide ApiResources wiederverwendet haben, die Dinge wurden ein bisschen komisch:
ApiResource Scopes
------------------------------
api/Orders api/Products
api/Products api/Products
Wir endete mit auf den Punkt:
aud:
api/Orders
scope:
api/Products
Es scheint, dass die Art und Weise die Liste der Zielgruppen aufgebaut wird durch den Aufruf IResourceStore.GetAllResources()
ist (was wir den vollständigen Katalog von ApiResources und ihre zugehörigen Bereiche abzurufen implementiert), und dann ergreift die erste ApiResource, die einem gegebenen erlaubten Bereich entspricht, was gut funktionieren sollte, solange keine anderen ApiResources denselben Gültigkeitsbereich haben. :)
-S
Danke! Wir ändern unsere Konfigurationsstruktur, um doppelte Bereiche zu vermeiden. –