Zakresy OAuth
Zakresy określają, do czego token dostępu jest uprawniony. API Altium 365 weryfikuje zakresy przy każdym żądaniu – token bez wymaganego zakresu dla danej operacji otrzyma błąd autoryzacji.
Zakresy są przypisywane przez platformę na podstawie kontekstu, w którym token został wydany. Nie wybiera się ich ręcznie, ale można się z nimi spotkać podczas analizowania tokenów i pracy z API. Zrozumienie struktury zakresów pomaga interpretować, do czego token jest uprawniony, oraz rozumieć granice dostępu.
Zakresy w tokenie JWT
Tokeny dostępu są tokenami JWT i można je zdekodować, aby sprawdzić ich deklaracje. Atrybut scope zawiera listę wszystkich zakresów, z którymi token został wydany. Na przykład token wydany do dostępu do Workspace wygląda następująco:
{
"scope": [
"openid",
"profile",
"a365:workspace:a9a01426-ac92-480e-9f80-97fe0f8ba344"
]
}
Zakres a365:workspace:{workspace-id} koduje zarówno obszar dostępu, jak i konkretny Workspace, dla którego token jest ważny.
Konwencja nazewnictwa
Zakresy OAuth w Altium mają następujący wzorzec:
area[:resource][.action]
-
area– szeroki domenowy obszar platformy (np.workspace,global,supply) -
resource– opcjonalnie; konkretny ograniczony kontekst lub domena danych w obrębie obszaru (np.design,library,app) -
action– opcjonalnie; typ operacji (np.read,write,execute)
Kilka zasad stojących za tym nazewnictwem:
-
Nazwy obszarów są oparte na domenach, a nie na produktach.
workspacezamiasta365,supplyzamiastoctopart. -
Nazwy zasobów są zgodne z ograniczonymi kontekstami i ustalonym słownictwem domenowym.
-
Zakresy są zorientowane na dane, a nie na funkcjonalność.
Zakres |
Znaczenie |
|
Dostęp do odczytu danych projektowych w Workspace |
|
Tworzenie rejestracji aplikacji i zarządzanie nimi |
|
Dostęp do odczytu danych o łańcuchu dostaw |
Standardowe zakresy OIDC
Tokeny mogą również zawierać standardowe zakresy OIDC używane do zarządzania tożsamością i sesją:
Zakres |
Przeznaczenie |
|
Wymagany dla przepływów uwierzytelniania OIDC |
|
Dostęp do podstawowych informacji o profilu użytkownika |
|
Dostęp do danych o przynależności użytkownika do grup |
|
Pozwala na wydanie tokenu odświeżania |
Zakresy Workspace
Dostęp do danych Workspace jest obecnie reprezentowany jako pojedynczy zakres a365:workspace:{workspace-id}, obejmujący wszystkie zasoby Workspace. Platforma zmierza w kierunku bardziej szczegółowego modelu, w którym dostęp może być ograniczony do konkretnych ograniczonych kontekstów:
Zakres |
Obejmuje |
|
Projekty PCB, schematy, warianty, wydania |
|
Komponenty, symbole, footprinty, dane części |
|
Zestawienia materiałowe, pozycje BOM |
|
Komentarze, zadania, adnotacje |
|
Członkostwo i grupy Workspace |
|
Wnioski i analitykę Workspace |
|
Integracje PLM |
|
Definicje i wykonania przepływów pracy |
|
Zarządzanie wymaganiami |
Każdy szczegółowy zakres obsługuje akcje .read i .write. Ten bardziej szczegółowy model jest wdrażany stopniowo – dopasowuje zakresy do modelu bounded context model w API, dzięki czemu można przyznać integracji dostęp wyłącznie do danych, których rzeczywiście potrzebuje.