Kullanıcı onayı isteme
Önemli
Haziran 2022'de Bing Ads için çok faktörlü kimlik doğrulamasını zorunlu kıldık. Bu gereksinimle uyumlu olmak için yine de kod değişikliği yapmanız gerekebilir. Microsoft Advertising, Ekim ayının başlarında teknik uygulama denetimleri gerçekleştiriyor.
Bu blog gönderisinde uyumluluğu sağlamak için gerçekleştirmeniz gereken adımlar özetlenmiştir.
Daha fazla bilgi için çok faktörlü kimlik doğrulama gereksinimi kılavuzuna bakın.
Bir uygulamayı kaydettikten sonra Microsoft Advertising hesabını yönetmeniz için kullanıcı onayı almanız gerekir.
İpucu
Sorun giderme yardımı için Yaygın OAuth hataları kılavuzuna bakın.
Önemli
Uygulamanızın Microsoft Advertising hesaplarını yönetmesi için her kullanıcıdan sorulmalı ve bir web tarayıcısı denetimi aracılığıyla en az bir kez onay verilmelidir. Bu standart bir OAuth 2.0 akışıdır ve OAuth 2.0 belirtiminin Yetkilendirme Kodu Verme bölümünde ayrıntılı olarak tanımlanır.
Yetkilendirme kodu akışı, istemcinin kullanıcıyı uç noktaya yönlendirmesiyle /authorize
başlar. Bu istekte istemci, kullanıcıdan alması gereken izinleri gösterir:
Not
Aşağıdaki your_client_idAzure portal - Uygulama kayıtları portalının uygulamanızı atadığı uygulama (istemci) kimliğiyle değiştirin.
// Line breaks for legibility only
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=your_client_id
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fads.microsoft.com%2Fmsads.manage
&state=12345
- Aşağıdaki URL'yi kopyalayıp tarayıcınıza yapıştırarak bu örnek kullanıcı onayı isteğini yürütebilirsiniz.
Not
Aşağıdaki URL'deki your_client_idAzure portal - Uygulama kayıtları portalının uygulamanızı atadığı uygulama (istemci) kimliğiyle değiştirin.
<https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=your_client_id&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F&response_mode=query&scope=openid%20offline_access%20https%3A%2F%2Fads.microsoft.com%2Fmsads.manage&state=12345>
- Microsoft hesabı kimlik bilgilerinizle oturum açın ve uygulamanıza Microsoft Advertising hesaplarınızı yönetmek için onay verin.
- Oturum açtıktan sonra tarayıcınızın adres çubuğundaki bir
code
ile adresine yönlendirilmesihttps://localhost/myapp/
gerekir. Sayfadaki hata iletisini yoksayabilirsiniz. - Ardından , erişim ve yenileme belirteçleri almak için kodu kullanacaksınız.
Microsoft kimlik platformu uç noktası, kullanıcının sorgu parametresinde belirtilen izinlere onay verdiğinden scope
de emin olur. Kullanıcı bu izinlerden herhangi birini onaylamadıysa, kullanıcıdan gerekli izinleri onaylamasını ister. Bu kılavuz öncelikli olarak aracılığıyla Microsoft Advertising hesaplarını scope=https://ads.microsoft.com/msads.manage
yönetmeye odaklanmış olsa da, Microsoft kimlik platformundaki izinler ve onay hakkında daha fazla ayrıntı burada verilmiştir.
Kullanıcı kimlik doğrulaması yapıp onay verdikten sonra Microsoft kimlik platformu uç noktası, parametresinde response_mode
belirtilen yöntemi kullanarak belirtilen konumunda redirect_uri
uygulamanıza bir yanıt döndürür. Örneğin geri çağırma URI'sinde, kullanıcı uygulamanızın Microsoft Advertising hesaplarını yönetmesi için izin vermişse aşağıdaki gibi bir yetkilendirme kodu bulunur: http://localhost/myapp/?code=CodeGoesHere& state=12345.
Kullanıcı uygulamanıza Microsoft Advertising hesaplarını yönetmek için izin verdiyse, sonraki adımda kodu hemen kullanmanız gerekir. Yetkilendirme kodunun kısa süresi (yaklaşık 5 dakika) değiştirilebilir. Kullanıcı Microsoft Advertising hesaplarını yönetmek için uygulama izinlerinizi reddettiyse, geri çağırma URI'sinde aşağıdaki gibi bir hata ve hata açıklaması alanı bulunur: http://localhost/myapp/?error=access_denied& error_description=ERROR_DESCRIPTION&state=ClientStateGoesHere. OAuth hataları hakkında daha fazla ayrıntı için bkz. Yaygın OAuth Hataları ve Kimlik Doğrulaması ve yetkilendirme hata kodları.
Aşağıdaki tabloda, Bing Ads API istemcilerinin onay isteğine ekleyebilecekleri parametreler yer almaktadır. İsteğe bağlı parametreler hakkında ek ayrıntılar için Microsoft kimlik platformu OAuth 2.0 yetkilendirme kodu akışı belgelerine bakın.
Parametre | Gerekli/İsteğe Bağlı | Açıklama |
---|---|---|
client_id |
Gerekli | Azure portalı - Uygulama kayıtları portalının uygulamanızı atadığı uygulama (istemci) kimliği. |
code_challenge |
Önerilen | Kod Değişimi (PKCE) için Proof Key aracılığıyla yetkilendirme kodu vermelerin güvenliğini sağlamak için kullanılır. Dahil edilirse code_challenge_method gereklidir. Daha fazla bilgi için bkz. PKCE RFC. Bu özellik artık yerel uygulamalar, SPA'lar ve web uygulamaları gibi gizli istemciler gibi tüm uygulama türleri için önerilir. |
code_challenge_method |
Önerilen | parametresi için kodlamak code_verifier için code_challenge kullanılan yöntem. Aşağıdaki değerlerden biri olabilir:- plain - S256 Dışlanırsa, code_challenge varsa düz metin code_challenge olarak kabul edilir. Microsoft kimlik platformu hem hem S256 de plain 'i destekler. Daha fazla bilgi için bkz. PKCE RFC. |
prompt |
opsiyonel | Uygulamanızın gerektirdiği kullanıcı etkileşimi türünü gösterir. Desteklenen değerler şunlardır: - prompt=login , kullanıcıyı bu istekte kimlik bilgilerini girmeye zorlar ve çoklu oturum açmayı olumsuz algılar.- prompt=none "oturum açma" ifadesinin tersidir, yani kullanıcıya herhangi bir etkileşimli istem sunulmamasını sağlar. İstek çoklu oturum açma yoluyla sessizce tamamlanamazsa Microsoft kimlik platformu uç noktası interaction_required hatası döndürür.- prompt=consent kullanıcı oturum açtığında OAuth onayı iletişim kutusunu tetikler ve kullanıcıdan uygulamaya izin vermesini ister.- prompt=select_account çoklu oturum açmayı kesintiye uğratacak ve oturumdaki tüm hesapları veya hatırlanan hesapları listeleyerek hesap seçimi deneyimini ya da tamamen farklı bir hesap kullanmayı seçme seçeneğini sağlayacaktır. |
redirect_uri |
Gerekli | Kimlik doğrulama yanıtlarının uygulamanız tarafından gönderilip alınabildiği uygulamanızın redirect_uri. Url kodlanmış olması dışında portalda kaydettiğiniz redirect_uris biriyle tam olarak eşleşmelidir. Yerel & mobil uygulamaları için varsayılan değerini https://login.microsoftonline.com/common/oauth2/nativeclient kullanmanız gerekir. |
response_mode |
Önerilen | Elde edilen belirteci uygulamanıza geri göndermek için kullanılacak yöntemi belirtir. Aşağıdakilerden biri olabilir: - query - fragment - form_post query yeniden yönlendirme URI'nizde sorgu dizesi parametresi olarak kodu sağlar. Örtük akışı kullanarak bir kimlik belirteci istiyorsanız OpenID belirtiminde belirtilen şekilde kullanamazsınızquery . Yalnızca kodu istiyorsanız , fragment veya form_post kullanabilirsinizquery .
form_post yeniden yönlendirme URI'nize kodu içeren bir POST yürütür. Daha fazla bilgi için bkz. OpenID Connect protokolü. |
response_type |
Gerekli | Yetkilendirme kodu akışı için içermelidir code . |
scope |
Gerekli | Kullanıcının onay vermesini istediğiniz alanla ayrılmış kapsam listesi . Kullanıcıdan Microsoft Advertising erişimi istemeyi eklemeyi https://ads.microsoft.com/msads.manage unutmayın. Yanıta bir yenileme belirteci eklendiğinden emin olmak için dahil edin offline_access . |
state |
Önerilen | İstekte bulunan ve belirteç yanıtında da döndürülecek bir değer. İstediğiniz içeriğin bir dizesi olabilir. Rastgele oluşturulan benzersiz bir değer genellikle siteler arası istek sahteciliği saldırılarını önlemek için kullanılır. Bu değer, kimlik doğrulama isteği gerçekleşmeden önce kullanıcının uygulamadaki durumuyla ilgili bilgileri de (örneğin, üzerinde bulunduğu sayfa veya görünüm) kodlayabilir. |
tenant |
Gerekli |
{tenant} İstek yolundaki değer, uygulamada kimlerin oturum açabileceğini denetlemek için kullanılabilir. Uygulamanızın hem MSA kişisel hesaplarını hem de Azure AD iş veya okul hesaplarını desteklediğinden emin olmak için Bing Ads API kimlik doğrulaması için kiracı olarak kullanmanızı common öneririz.Uygulamanızın başka bir kiracı gerektirmesi durumunda daha fazla bilgi için bkz. Microsoft kimlik platformu uç noktaları . |