Oświadczenia
Oświadczenia są przetwarzane najpierw w metodzie uwierzytelniania, a następnie w rejestracji aplikacji, gdzie można zdecydować, które oświadczenia są przekazywane do następnego kroku oraz wykonywać transformacje oświadczeń i zadania oświadczeń.
Wszystkie porównania oświadczeń są wrażliwe na wielkość liter.
Proces oświadczeń zaczyna się w metodzie uwierzytelniania, gdy użytkownik się uwierzytelnia. Tam można wykonywać transformacje oświadczeń i zadania oświadczeń oraz skonfigurować, które oświadczenia mają być przekazane do następnego kroku. Następnie proces oświadczeń kontynuuje się w rejestracji aplikacji, gdzie również można wykonywać transformacje oświadczeń i konfigurować, które oświadczenia mają zostać wystawione dla aplikacji / API.
W scenariuszu Client Credentials Grant proces oświadczeń jest wykonywany tylko w rejestracji aplikacji. To samo dotyczy transformacji oświadczeń i konfiguracji, które oświadczenia mają zostać wystawione dla aplikacji / API.
Dla wartości używanych wewnątrz FoxIDs wybierz _local: dla jednego zestawu transformacji, _internal: dla bieżącego przepływu uwierzytelniania wraz z transformacjami aplikacji lub _session: dla późniejszych logowań w przeglądarce przez tę samą metodę. Te zarezerwowane claimy nie są wystawiane aplikacjom. Zobacz Claimy lokalne, wewnętrzne i sesyjne, w tym sposób kopiowania wartości sesyjnej do claimu wewnętrznego na potrzeby transformacji aplikacji.
Metoda uwierzytelniania
W metodach uwierzytelniania OpenID Connect i SAML 2.0 oświadczenia są przekazywane, gdy dodasz je do listy Forward claims. Wszystkie oświadczenia są przekazywane, jeśli dodasz wildcard * do listy Forward claims.
Poniższe oświadczenia identyfikują ostatnio używaną metodę uwierzytelniania. Są domyślnie przekazywane i można je odczytać w rejestracji aplikacji oraz wykorzystać w transformacjach oświadczeń i zadaniach oświadczeń:
auth_methodzawiera nazwę metody uwierzytelniania, która jest unikalna w danym środowisku.auth_method_typezawiera typ metody uwierzytelniania:login,oidc,oauth2,saml2,wsfed,env_linklubext_login.auth_profile_methodzawiera nazwę wybranego profilu metody uwierzytelniania. To oświadczenie jest dołączane, gdy używany jest profil.
Oświadczenie sub oraz tokeny otrzymane z zewnętrznego Identity Provider są zagnieżdżane z symbolem pionowej kreski (|) po nazwie metody uwierzytelniania.
Przykłady:
- Zewnętrzny
subo wartościafeda2a3-c08b-4bbb-ab77-35138dd2ef2dotrzymuje zagnieżdżoną wartośćthe-auth-method|afeda2a3-c08b-4bbb-ab77-35138dd2ef2d - Zewnętrzny access token o wartości
eyJhG.cRwczov...nNjb3B.lIjoijest dodawany w oświadczeniuaccess_tokenz wartościąthe-auth-method|eyJhG.cRwczov...nNjb3B.lIjoi - Jeśli zewnętrzny OpenID Provider zwróci refresh token, można go przekazać w oświadczeniu
refresh_tokenz zagnieżdżoną wartościąthe-auth-method|refresh-token-value
Rejestracja aplikacji
W rejestracjach aplikacji OpenID Connect, OAuth 2.0 i SAML 2.0 oświadczenia są wystawiane dla aplikacji / API przez dodanie ich do listy Issue claims. Wszystkie oświadczenia są wystawiane dla aplikacji / API, jeśli dodasz wildcard * do listy Issue claims.
Rejestracja aplikacji OpenID Connect może rozróżniać, czy oświadczenie jest wystawiane tylko w access tokenie, czy również w ID tokenie.
Rejestracje aplikacji OpenID Connect i OAuth 2.0 mogą również przenosić oświadczenia przez scope. Odbywa się to poprzez dodanie oświadczenia lub oświadczeń do listy Voluntary claims danego scope. Oświadczenia są wtedy wystawiane, jeśli aplikacja klienta zażąda tego scope.
Rejestracja aplikacji OpenID Connect może w oświadczeniach dobrowolnych scope również rozróżniać, czy oświadczenie jest wystawiane tylko w access tokenie, czy także w ID tokenie.
Typy wartości claims
Typy wartości claims JWT, w tym obiekty JSON, tablice, wartości logiczne i liczby, są zachowywane, gdy claims są kopiowane przez transformację Map lub przekazywane przez sesje, Extended UI i granty OAuth. OpenID Connect UserInfo zwraca te wartości z odpowiednimi typami JSON.
Transformacje tworzące nowy tekst, takie jak mapowanie regex i konkatenacja, tworzą wartości tekstowe.
Mapowanie claims JWT/SAML zachowuje typy wartości, takie jak wartości logiczne i liczby. Przy mapowaniu z JWT na SAML wartości JSON są przekazywane jako tekst w atrybutach tekstowych. Przy mapowaniu z SAML na JWT wartości tekstowe zawierające prawidłowe obiekty lub tablice JSON stają się claims JSON.
Impersonowane tożsamości
Metoda uwierzytelniania może wybrać innego użytkownika za pomocą transformacji Impersonation. Transformacje aplikacji otrzymują wtedy claims użytkownika docelowego i claim act identyfikujący pierwotnie uwierzytelnionego użytkownika. Claims _impersonate: przygotowują wybór w transformacjach metody uwierzytelniania; lokalne pomocnicze claims zachowują swoje zarezerwowane nazwy pod tym prefiksem.
W JWT act jest obiektem JSON, na przykład {"sub":"original-user"}. Jego domyślne mapowanie SAML to http://schemas.foxids.com/ws/identity/claims/act, które można zastąpić w mapowaniach claims środowiska. Wybierz zmapowany claim w Issue claims aplikacji SAML lub użyj *, aby wydać tekst JSON. Gdy atrybut SAML zawierający ten tekst zostaje zmapowany z powrotem na act, FoxIDs wydaje go jako obiekt JSON w JWT.
Chronione oświadczenia
FoxIDs zarządza oświadczeniami sterującymi sesjami, ważnością tokenów i kierowaniem między metodami uwierzytelniania. Tych chronionych oświadczeń nie można konfigurować jako wyników transformacji oświadczeń, używać w niestandardowych mapowaniach oświadczeń JWT/SAML ani przypisywać im wartości statycznych.
Nazwy chronionych oświadczeń JWT to:
sid,iss,aud,exp,nbf,iatiauth_time.client_id,azp,scope,nonce,at_hashic_hash.auth_method,auth_method_type,auth_profile_methodiauth_method_issuer.
Chronione są również odpowiadające im typy oświadczeń SAML dotyczące indeksu sesji, czasu uwierzytelnienia, identyfikatora klienta i metody uwierzytelniania. Wbudowane mapowania protokołów FoxIDs pozostają dostępne.
Transformacje mogą odczytywać chronione oświadczenia i kopiować ich wartości do niestandardowych oświadczeń. Chronione oświadczenie można również wybrać na liście oświadczeń do przekazania lub wystawienia bez podawania wartości statycznych.
Te same ograniczenia dotyczą niestandardowych oświadczeń użytkowników wewnętrznych i zewnętrznych, początkowych oświadczeń użytkownika dzierżawy, oświadczeń węzłów struktury dostępu, oświadczeń wyjściowych dynamicznego interfejsu użytkownika oraz statycznych oświadczeń aplikacji i zakresów.
Chronione oświadczenia zwrócone przez Claims API, API walidacji Extended UI, External Login API lub Directory Connector API są odrzucane. Istniejące chronione oświadczenia w przepływie są zachowywane. Wybrane chronione oświadczenia mogą być przesyłane do tych API jako dane wejściowe.