昨天提到了 Access Policy Enforcement 粗略的三種層級,今天繼續來看看 Access Policy Enforcement 的三個重要階段,分別為
前面提到的 authorization 是談「取得授權」,這裡的 authorization 指的是如何「設計授權」。以使用者為主體來說,常見的設計有兩種
User Profile Attributes 指的是授權的設計和使用者的 identity 有關,譬如根據角色劃分權限的 Role-based Access Control (RBAC) 或是根據屬性劃分的 Arttribute-based Access Control (ABAC)。
以角色劃分權限的例子,就譬如公司當中根據不同的職位,設計不同的權限,公司職員能夠做的事情,基本上就根據他們的職位而定。
而以屬性劃分的例子,像是以居住地區來區分不同的權限,住在 A 區的居民能夠免費使用 A 區的公共設施,其他區的居民可能就要另外付費。
而 Transactional User Attributes 則是根據使用者行動當下的環境狀況,來區分權限。譬如使用者只能在指定地區使用服務、只能在週末使用優惠券等等。
上述提到的授權設計(或規則),可以透過 ID Token 送到 Client
當中,接著 Client
就可以透過 ID Token 識別使用者身份,以及適用的權限。如果要更多的資訊,Client
可以藉由 access token 來向 user info endpoint 來取得更多的資訊。
最後,當使用者要執行任何行動之前,系統都需要再次進行檢查:
OpenID Provider
最後才能讓使用者實際執行行動