Konfigurowanie opcjonalnych oświadczeń
Tokeny zwracane przez firmę Microsoft Entra są przechowywane mniejsze, aby zapewnić optymalną wydajność przez klientów, którzy ich żądają. W związku z tym kilka oświadczeń nie jest już obecnych w tokenie domyślnie i musi zostać poproszonych o podanie w szczególności dla poszczególnych aplikacji.
Opcjonalne oświadczenia dla aplikacji można skonfigurować za pomocą interfejsu użytkownika lub manifestu aplikacji centrum administracyjnego firmy Microsoft Entra.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Ukończenie przewodnika Szybki start: rejestrowanie aplikacji
Konfigurowanie opcjonalnych oświadczeń w aplikacji
- Zaloguj się do centrum administracyjnego firmy Microsoft Entra co najmniej jako administrator aplikacji w chmurze.
- Przejdź do aplikacji tożsamości>> Rejestracje aplikacji.
- Wybierz aplikację, dla której chcesz skonfigurować opcjonalne oświadczenia na podstawie scenariusza i żądanego wyniku.
- W obszarze Zarządzanie wybierz pozycję Konfiguracja tokenu.
- Wybierz Dodaj opcjonalne roszczenie.
- Wybierz typ tokenu, który chcesz skonfigurować, na przykład Access.
- Wybierz opcjonalne oświadczenia do dodania.
- Wybierz Dodaj.
Obiekt optionalClaims
deklaruje opcjonalne oświadczenia żądane przez aplikację. Aplikacja może skonfigurować opcjonalne oświadczenia zwracane w tokenach identyfikatorów, tokenach dostępu i tokenach SAML 2. Aplikacja może skonfigurować inny zestaw opcjonalnych oświadczeń, które mają być zwracane w każdym typie tokenu.
Nazwisko | Pisz | Opis |
---|---|---|
idToken |
Kolekcja | Opcjonalne oświadczenia zwrócone w tokenie identyfikatora JWT. |
accessToken |
Kolekcja | Opcjonalne oświadczenia zwrócone w tokenie dostępu JWT. |
saml2Token |
Kolekcja | Opcjonalne oświadczenia zwrócone w tokenie SAML. |
Jeśli jest obsługiwane przez określone oświadczenie, możesz również zmodyfikować zachowanie opcjonalnego oświadczenia przy użyciu additionalProperties
pola .
Nazwisko | Pisz | Opis |
---|---|---|
name |
Edm.String | Nazwa opcjonalnego oświadczenia. |
source |
Edm.String | Źródło (obiekt katalogu) oświadczenia. Istnieją wstępnie zdefiniowane oświadczenia i oświadczenia zdefiniowane przez użytkownika z właściwości rozszerzenia. Jeśli wartość źródłowa ma wartość null, oświadczenie jest wstępnie zdefiniowanym opcjonalnym oświadczeniem. Jeśli wartość źródłowa jest użytkownikiem, wartość we właściwości name jest właściwością rozszerzenia z obiektu użytkownika. |
essential |
Edm.Boolean | Jeśli wartość ma wartość true, oświadczenie określone przez klienta jest konieczne, aby zapewnić bezproblemowe środowisko autoryzacji dla określonego zadania żądanego przez użytkownika końcowego. Wartość domyślna to false. |
additionalProperties |
Kolekcja (Edm.String) | Inne właściwości oświadczenia. Jeśli właściwość istnieje w tej kolekcji, modyfikuje zachowanie opcjonalnego oświadczenia określonego we właściwości name. |
Konfigurowanie opcjonalnych oświadczeń rozszerzenia katalogu
Oprócz standardowego opcjonalnego zestawu oświadczeń można również skonfigurować tokeny w celu uwzględnienia rozszerzeń programu Microsoft Graph. Aby uzyskać więcej informacji, zobacz Dodawanie niestandardowych danych do zasobów przy użyciu rozszerzeń.
Ważne
Tokeny dostępu są zawsze generowane przy użyciu manifestu zasobu, a nie klienta. W żądaniu ...scope=https://graph.microsoft.com/user.read...
zasób jest interfejsem API programu Microsoft Graph. Token dostępu jest tworzony przy użyciu manifestu interfejsu API programu Microsoft Graph, a nie manifestu klienta. Zmiana manifestu aplikacji nigdy nie powoduje, że tokeny interfejsu API programu Microsoft Graph wyglądają inaczej. Aby sprawdzić, czy accessToken
zmiany zostały wprowadzone, zażądaj tokenu dla aplikacji, a nie innej aplikacji.
Opcjonalne oświadczenia obsługują atrybuty rozszerzenia i rozszerzenia katalogu. Ta funkcja jest przydatna do dołączania większej liczby informacji o użytkowniku, których aplikacja może używać. Na przykład inne identyfikatory lub ważne opcje konfiguracji ustawione przez użytkownika. Jeśli manifest aplikacji żąda rozszerzenia niestandardowego, a użytkownik MSA loguje się do aplikacji, te rozszerzenia nie są zwracane.
Formatowanie rozszerzenia katalogu
Podczas konfigurowania opcjonalnych oświadczeń rozszerzenia katalogu przy użyciu manifestu aplikacji użyj pełnej nazwy rozszerzenia (w formacie: extension_<appid>_<attributename>
). Jest <appid>
to stripped wersja identyfikatora appId (lub identyfikatora klienta) aplikacji żądającej oświadczenia.
W JWT te oświadczenia są emitowane w następującym formacie nazwy: extn.<attributename>
. W tokenach SAML te oświadczenia są emitowane w następującym formacie identyfikatora URI: http://schemas.microsoft.com/identity/claims/extn.<attributename>
Konfigurowanie opcjonalnych oświadczeń grup
Napiwek
Kroki opisane w tym artykule mogą się nieznacznie różnić w zależności od portalu, od którego zaczynasz.
W tej sekcji opisano opcje konfiguracji w ramach opcjonalnych oświadczeń dotyczących zmiany atrybutów grupy używanych w oświadczeniach grupy z domyślnego identyfikatora obiektu grupy do atrybutów zsynchronizowanych z lokalnej usługi Active Directory systemu Windows. Opcjonalne oświadczenia dla aplikacji można skonfigurować za pomocą witryny Azure Portal lub manifestu aplikacji. Opcjonalne oświadczenia grupy są emitowane tylko w JWT dla podmiotów zabezpieczeń użytkowników. Jednostki usługi nie są uwzględniane w opcjonalnych oświadczeniach grupy emitowanych w zestawie JWT.
Ważne
Liczba grup emitowanych w tokenie jest ograniczona do 150 dla asercji SAML i do 200 dla JWT, uwzględniając grupy zagnieżdżone. Aby uzyskać więcej informacji na temat limitów grup i ważnych zastrzeżeń dotyczących oświadczeń grup z atrybutów lokalnych, zobacz Konfigurowanie oświadczeń grup dla aplikacji.
Wykonaj następujące kroki, aby skonfigurować opcjonalne oświadczenia grup w witrynie Azure Portal:
- Wybierz aplikację, dla której chcesz skonfigurować opcjonalne oświadczenia.
- W obszarze Zarządzanie wybierz pozycję Konfiguracja tokenu.
- Wybierz pozycję Dodaj oświadczenie grup.
- Wybierz typy grup, które mają być zwracane (grupy zabezpieczeń lub role katalogu, Wszystkie grupy i/lub grupy przypisane do aplikacji):
- Opcja Grupy przypisane do aplikacji obejmuje tylko grupy przypisane do aplikacji. Opcja Grupy przypisane do aplikacji jest zalecana dla dużych organizacji ze względu na limit liczby grup w tokenie. Aby zmienić grupy przypisane do aplikacji, wybierz aplikację z listy Aplikacje dla przedsiębiorstw. Wybierz pozycję Użytkownicy i grupy , a następnie dodaj użytkownika/grupę. Wybierz grupy, które chcesz dodać do aplikacji z obszaru Użytkownicy i grupy.
- Opcja Wszystkie grupy obejmuje pozycje SecurityGroup, DirectoryRole i DistributionList, ale nie grupy przypisane do aplikacji.
- Opcjonalnie: wybierz właściwości określonego typu tokenu, aby zmodyfikować wartość oświadczenia grup, aby zawierała atrybuty grupy lokalnej lub zmienić typ oświadczenia na rolę.
- Wybierz pozycję Zapisz.
Wykonaj następujące kroki, aby skonfigurować opcjonalne oświadczenia grup za pomocą manifestu aplikacji:
Wybierz aplikację, dla której chcesz skonfigurować opcjonalne oświadczenia.
W obszarze Zarządzanie wybierz pozycję Manifest.
Dodaj następujący wpis przy użyciu edytora manifestu:
Prawidłowe wartości to:
- "Wszystkie" (ta opcja obejmuje pozycje SecurityGroup, DirectoryRole i DistributionList)
- "SecurityGroup"
- "DirectoryRole"
- "ApplicationGroup" (ta opcja obejmuje tylko grupy przypisane do aplikacji)
Na przykład:
"groupMembershipClaims": "SecurityGroup"
Domyślnie identyfikatory obiektów grupy są emitowane w wartości oświadczenia grupy. Aby zmodyfikować wartość oświadczenia tak, aby zawierała atrybuty grupy lokalnej lub zmienić typ oświadczenia na rolę, użyj
optionalClaims
konfiguracji w następujący sposób:Ustaw opcjonalne oświadczenia konfiguracji nazwy grupy.
Jeśli chcesz, aby grupy w tokenie zawierały atrybuty grupy lokalnej w sekcji opcjonalnych oświadczeń, określ, do którego typu tokenu ma zostać zastosowane opcjonalne oświadczenie. Należy również określić nazwę żądanego oświadczenia opcjonalnego i wszelkie inne żądane właściwości.
Można wymienić wiele typów tokenów:
idToken
dla tokenu identyfikatora OIDCaccessToken
dla tokenu dostępu OAuthSaml2Token
dla tokenów SAML.
Typ
Saml2Token
dotyczy zarówno tokenów formatu SAML1.1, jak i SAML2.0.Dla każdego odpowiedniego typu tokenu zmodyfikuj oświadczenie grup, aby użyć
optionalClaims
sekcji w manifeście. SchematoptionalClaims
jest następujący:{ "name": "groups", "source": null, "essential": false, "additionalProperties": [] }
Schemat opcjonalnych oświadczeń Wartość name
Musi być groups
source
Nie używany. Pomiń lub określ wartość null. essential
Nie używany. Pomiń lub określ wartość false. additionalProperties
Lista innych właściwości. Prawidłowe opcje to sam_account_name
, ,netbios_domain_and_sam_account_name
dns_domain_and_sam_account_name
emit_as_roles
i .cloud_displayname
Tylko jeden
additionalProperties
zsam_account_name
elementówdns_domain_and_sam_account_name
,netbios_domain_and_sam_account_name
jest wymagany. Jeśli istnieje więcej niż jeden, zostanie użyty pierwszy i inne zignorowane. Możesz również dodaćcloud_displayname
polecenie , aby emitować nazwę wyświetlaną grupy chmury. Ta opcja działa tylko wtedy, gdygroupMembershipClaims
jest ustawiona wartośćApplicationGroup
.Niektóre aplikacje wymagają informacji o grupie użytkownika w oświadczeniu roli. Aby zmienić typ oświadczenia z oświadczenia grupy na oświadczenie roli, dodaj
emit_as_roles
doadditionalProperties
. Wartości grupy są emitowane w oświadczeniu roli.Jeśli
emit_as_roles
jest używany, wszystkie role aplikacji skonfigurowane przez użytkownika (lub aplikację zasobów) nie są przypisane do oświadczenia roli.
W poniższych przykładach przedstawiono konfigurację manifestu dla oświadczeń grupy:
Emituj grupy jako nazwy grup w tokenach dostępu OAuth w dnsDomainName\sAMAccountName
formacie.
"optionalClaims": {
"accessToken": [
{
"name": "groups",
"additionalProperties": [
"dns_domain_and_sam_account_name"
]
}
]
}
Emituj nazwy grup, które mają być zwracane w netbiosDomain\sAMAccountName
formacie jako oświadczenia ról w tokenach SAML i OIDC ID.
"optionalClaims": {
"saml2Token": [
{
"name": "groups",
"additionalProperties": [
"netbios_domain_and_sam_account_name",
"emit_as_roles"
]
}
],
"idToken": [
{
"name": "groups",
"additionalProperties": [
"netbios_domain_and_sam_account_name",
"emit_as_roles"
]
}
]
}
Emituj nazwy grup w formacie sam_account_name
dla lokalnych grup synchronizowanych i cloud_display
nazw grup w chmurze w tokenach SAML i OIDC id dla grup przypisanych do aplikacji.
"groupMembershipClaims": "ApplicationGroup",
"optionalClaims": {
"saml2Token": [
{
"name": "groups",
"additionalProperties": [
"sam_account_name",
"cloud_displayname"
]
}
],
"idToken": [
{
"name": "groups",
"additionalProperties": [
"sam_account_name",
"cloud_displayname"
]
}
]
}
Przykład opcjonalnych oświadczeń
Istnieje wiele opcji aktualizowania właściwości konfiguracji tożsamości aplikacji w celu włączenia i skonfigurowania opcjonalnych oświadczeń:
- Możesz użyć witryny Azure Portal
- Możesz użyć manifestu.
- Istnieje również możliwość zapisania aplikacji korzystającej z interfejsu API programu Microsoft Graph w celu zaktualizowania aplikacji. Typ OptionalClaims w przewodniku dokumentacji interfejsu API programu Microsoft Graph może pomóc w konfigurowaniu opcjonalnych oświadczeń.
W poniższym przykładzie witryna Azure Portal i manifest są używane do dodawania opcjonalnych oświadczeń do tokenów dostępu, identyfikatora i języka SAML przeznaczonych dla aplikacji. Różne opcjonalne oświadczenia są dodawane do każdego typu tokenu, który aplikacja może odbierać:
- Tokeny identyfikatorów zawierają nazwę UPN dla użytkowników federacyjnych w pełnym formularzu (
<upn>_<homedomain>#EXT#@<resourcedomain>
). - Tokeny dostępu, które inni klienci żądają dla tej aplikacji, obejmują
auth_time
oświadczenie. - Tokeny SAML zawierają
skypeId
rozszerzenie schematu katalogu (w tym przykładzie identyfikator aplikacji dla tej aplikacji toab603c56068041afb2f6832e2a17e237
). Token SAML uwidacznia identyfikator Skype'a jakoextension_ab603c56068041afb2f6832e2a17e237_skypeId
.
Konfigurowanie oświadczeń w witrynie Azure Portal:
- Wybierz aplikację, dla której chcesz skonfigurować opcjonalne oświadczenia.
- W obszarze Zarządzanie wybierz pozycję Konfiguracja tokenu.
- Wybierz pozycję Dodaj opcjonalne oświadczenie, wybierz typ tokenu identyfikatora , wybierz pozycję upn z listy oświadczeń, a następnie wybierz pozycję Dodaj.
- Wybierz pozycję Dodaj opcjonalne oświadczenie, wybierz typ tokenu dostępu , wybierz pozycję auth_time z listy oświadczeń, a następnie wybierz pozycję Dodaj.
- Na ekranie przeglądu konfiguracji tokenu wybierz ikonę ołówka obok pozycji upn, wybierz przełącznik Uwierzytelniony zewnętrznie, a następnie wybierz pozycję Zapisz.
- Wybierz pozycję Dodaj opcjonalne oświadczenie, wybierz typ tokenu SAML , wybierz pozycję extn.skypeID z listy oświadczeń (dotyczy tylko wtedy, gdy utworzono obiekt użytkownika Microsoft Entra o nazwie skypeID ), a następnie wybierz pozycję Dodaj.
Skonfiguruj oświadczenia w manifeście:
Wybierz aplikację, dla której chcesz skonfigurować opcjonalne oświadczenia.
W obszarze Zarządzanie wybierz pozycję Manifest , aby otworzyć wbudowany edytor manifestu.
Manifest można edytować bezpośrednio przy użyciu tego edytora. Manifest jest zgodny ze schematem jednostki Aplikacja i automatycznie formatuje manifest po zapisaniu. Nowe elementy są dodawane do
optionalClaims
właściwości ."optionalClaims": { "idToken": [ { "name": "upn", "essential": false, "additionalProperties": [ "include_externally_authenticated_upn" ] } ], "accessToken": [ { "name": "auth_time", "essential": false } ], "saml2Token": [ { "name": "extension_ab603c56068041afb2f6832e2a17e237_skypeId", "source": "user", "essential": true } ] }
Po zakończeniu aktualizowania manifestu wybierz pozycję Zapisz , aby zapisać manifest.
Ograniczenie
Aplikacja może wydać maksymalną liczbę 10 atrybutów rozszerzenia jako opcjonalne oświadczenia.