Azure AD'de kapsam Graph API olmadığında, özel bir talep nasıl eklenir ve erişim belirtecinin bir parçasıyla aynı şey nasıl alınır?
Bir Azure AD web uygulaması oluşturdum. Şimdi access_token'ımı aşağıdaki API'yi kullanarak alıyorum,
İLETİ https://login.microsoftonline.com/{Directory (tenant) ID }/oauth2/v2.0/token
password:pass
client_id:id
resource:https://graph.microsoft.com
grant_type:password
client_secret:secret
sername:userName
scope: https://rbsessence.onmicrosoft.com/0a7c94a0-0c4e-4f95-ba06-XXXX/.default
Cevap şöyle görünüyor:
"token_type": "Bearer",
"scope": "https://rbsessence.onmicrosoft.com/0a7c94a0-0c4e-4f95-ba06-XXXXX/myTestRole https://rbsessence.onmicrosoft.com/0a7c94a0-0c4e-4f95-ba06-XXXXXX/user_impersonation https://rbsessence.onmicrosoft.com/0a7c94a0-0c4e-4f95-ba06-XXXXX/.default",
"expires_in": 3599,
"ext_expires_in": 3599, "access_token": "acessToken"
Şimdi access_token'i aynı Azure AD istemcisi ile yapılandırılmış bir üçüncü taraf uygulamasına geçiriyorum. Artık üçüncü taraf, adla özel bir talebin "policy":"readwrite"
access_token'ın bir parçası olarak iletilmesini bekliyor. Aynı şeyi nasıl başarabilirim?
Yanıtlar
Lütfen aşağıdaki adımlara bakın (Microsoft Graph işlemini Microsoft Graph Explorer'da zaman kazanmak için yapabilirsiniz .):
ExtensionProperty oluşturun (burada yeni oluşturulmuş bir Azure AD uygulamasını kullanabilirsiniz):
Post https://graph.microsoft.com/v1.0/applications/{object id of the Azure AD application}/extensionProperties
{"name":"policy","dataType":"string","targetObjects":["User"]}
Adlı bir uzantı özelliği oluşturacaktır extension_{client id of the Azure AD application}_policy
.
İkinci olarak, hesabınız için uzantı mülkünü güncelleyebilirsiniz:
Patch https://graph.microsoft.com/v1.0/me
{"extension_6d8190fbf1fe4bc38a5a145520221989_policy":"readwrite"}
Ardından bir ClaimMappingPolicy oluşturun :
Post https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies
{"definition":["{\"ClaimsMappingPolicy\":{\"Version\":1,\"IncludeBasicClaimSet\":\"true\", \"ClaimsSchema\": [{\"Source\":\"user\",\"ExtensionID\":\"extension_6d8190fbf1fe4bc38a5a145520221989_policy\",\"JwtClaimType\":\"policy\"}]}}"],"displayName":"ExtraClaimsAllen1Example","isOrganizationDefault":true}
ClaimMappingPolicy öğesini bir servicePrincipal'e atayın . Lütfen buradaki servicePrincipal'in üçüncü taraf uygulamanızı temsil eden kurumsal uygulama olduğunu unutmayın. Senin durumunda öyle 0a7c94a0-0c4e-4f95-ba06-XXXX
.
Post https://graph.microsoft.com/v1.0/servicePrincipals/{obeject id of the servicePrincipal which represents your third party application}/claimsMappingPolicies/$ref
{"@odata.id":"https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/{policy id from the previous step}"}
ServicePrincipal'i Azure Portal'dan bulabilirsiniz -> Azure Active Directory -> Uygulama kayıtları -> üçüncü taraf Azure AD uygulamanızı bulun -> Genel Bakış -> ilişkili hizmet sorumlusunun adına tıklayın.


Şimdi üçüncü taraf Azure AD uygulamasının bildirim dosyasına geri dönün. acceptMappedClaims
Doğru ve accessTokenAcceptedVersion
2 olarak ayarlayın .

Ardından, ROPC hibe akışıyla üçüncü taraf uygulaması için bir erişim belirteci talep ettiğimizde, özel hak talebini alabiliriz.
